Цель контролируемого обучения - предсказать результат на основе ряда входных данных. В задачах обучения с учителем можно измерить как входные, так и выходные переменные. Это семейство техник состоит из нескольких ключевых компонентов:

a) Алгоритм обучения - процедура для генерации выходных данных в ответ на входные данные в динамическом режиме, то есть отношения входов / выходов самомодифицируются на основе различий между исходными выходами и сгенерированными выходами.

б) Учитель - со статистической точки зрения, измеримая переменная результата, помогающая направлять процесс обучения.

c) Набор данных - кровь, которая циркулирует по венам машины. Набор входов и выходов, на которых должен учиться наш алгоритм.

Эта статья призвана проиллюстрировать и изучить три простых, но эффективных метода прогнозирования / классификации: Линейная модель, аппроксимирующая обычным методом наименьших квадратов, правило прогнозирования k-ближайшего соседа и наивный байесовский классификатор. Сфера применения этих приемов огромна. Я имею ввиду, ОГРОМНЫЙ. Оказывается, большое количество популярных методов, используемых сегодня, являются просто вариантами вышеперечисленных (во всяком случае, для задач малой размерности).

Давай приступим к работе.

Что нам нужно от наших данных?

Часто думают, что сила прогнозирования заложена в модели, однако следует также подчеркнуть важность качественных данных. Что означает качество? На базовом уровне, избегая формального математического определения, нам требуется набор измеримых входных переменных X = {X1, X2,…} и выходной переменной Y. Поскольку мы фокусируемся на методах, мы предполагаем, что для каждого наблюдения нашего вывода Y в наборе данных у нас есть полный набор входных данных, X, без ошибок в сбор, точность, предвзятость и т. д.

* Щелкает пальцами *

На рисунке 1 показана диаграмма рассеяния наших обучающих данных. Для каждого наблюдения у нас есть пара непрерывных входных данных, представленных цветным крестом, X = (X1, X2), и дискретной выходной переменной, G, которая определяет цвет каждого кросса - либо Лососевый, либо Васильковый. Мы называем эти две группы классами, и наша цель будет состоять в том, чтобы построить модель, которая может классифицировать любое наблюдение, то есть любую пару входных данных (x1, x2), либо в Salmon класс или класс Василек.

У нас есть набор данных, теперь давайте построим наши модели.

Линейные модели

Базовый принцип линейного моделирования (или линейной регрессии) - найти линейную комбинацию входных переменных, которая наилучшим образом предсказывает / описывает выходную переменную.

  • Как мы подходим к нашей модели?

Мы используем ключевой ингредиент c) - наш набор данных! Учитывая наборы пар (X1, X2), которые мы уже наблюдали, мы можем начать строить нашу модель, f, как некоторую комбинацию (X1, X2 ) руководствуясь разницей между исходным выводом (заданным нашими данными) и выводом, созданным f. Наша линейная комбинация должна быть достаточно гибкой, чтобы при необходимости допускать частичные (не целые) и кратные переменные. Чтобы облегчить это, создаются вспомогательные переменные - эти переменные также известны как коэффициенты регрессии.

Следовательно, «подгонка модели» эквивалентна оптимизации набора значений коэффициентов для получения ближайших оценок Y - Подождите! Я слышу, как вы кричите, что вы имеете в виду автор закрыть? Хороший вопрос, требуется метрика для количественной оценки расстояния. Общая метрика также известна как функция потерь (или функция ошибок) и пытается предоставить единственное число, которое инкапсулирует, насколько неточна конкретная модель, протестированная на наборе данных. Здесь мы будем использовать очень простой, но очень популярный метод, называемый обычным методом наименьших квадратов (или просто методом наименьших квадратов). Этот показатель суммирует квадрат разницы между оценкой нашей модели и исходным результатом (квадрат ошибки) для каждого наблюдения в нашем обучающем наборе. Минимизация этой ошибки приводит к оптимальному набору коэффициентов для нашей модели.

Обратите внимание, что линейные модели - это метод регрессии, а не метод классификации. То есть их собственное приложение предназначено для моделирования количественных переменных, а не качественных переменных. В нашем примере необходим дополнительный слой поверх выходных данных непрерывной регрессии.

Пусть целое число 1 представляет класс лосося, а 0 - класс василькового. Теперь мы сталкиваемся с проблемой бинарной классификации и выбираем классификацию в классе лосося, если выход модели больше 0,5, иначе в классе василькового синего. Это известно как граница принятия решения. На рисунке 2 изображена наша линейная модель и ее граница принятия решения. Все точки над линией относятся к классу василькового синего, а оставшиеся точки - к классу лосося.

Таким образом, для любой координаты (X 1, X2) наша модель сразу же выделяет цвет - отлично! Цвета завершены, поведение обнаружено, работа сделана правильно? НЕПРАВИЛЬНЫЙ.

Здесь сделано ключевое структурное допущение - что лежащий в основе процесс демонстрирует глобальную линейность. Другими словами, предполагается, что Y ведет себя с постоянной скоростью изменения по отношению к X для всех X. Если эти данные были сгенерированы из двух независимых распределений, сосредоточенных вокруг разных средних, то, возможно, линейная граница решения может быть оптимальной. В этом случае нет упоминания о генерирующих распределениях. Что, если обучающие данные в каждом из двух классов получены из смеси 10 двумерных гауссовских распределений с низкой дисперсией, каждое с индивидуальными, независимо распределенными двумерными гауссовыми средними? В этом сценарии нет причин предполагать, что оптимальная граница должна быть линейной. Хотя наш визуальный осмотр показывает нам очевидные неправильные классификации по обе стороны границы, он не дает нам никаких указаний на то, насколько плохо мы понимаем лежащие в основе отношения. Это служит примером ключевой ловушки линейной регрессии - сильной зависимости от линейных структурных предположений или, выражаясь статистической терминологией, большого смещения.

Это приводит нас к другому способу классификации, который больше подходит для только что представленного сценария.

k-ближайшие-соседи (kNN)

Базовый принцип k-Nearest-Neighbors (или kNN) заключается в назначении класса на основе наиболее распространенных выходных данных из наборов наблюдений в обучающем наборе, которые находятся рядом во входном пространстве, Х.

  • Как мы подходим к модели?

Выход kNN определяется как среднее арифметическое ответных переменных от k ближайших входов. Опять же, ближайший подразумевает метрику, поэтому мы будем использовать евклидово расстояние (https://en.wikipedia.org/wiki/Euclidean_distance). Вместо того, чтобы объединять весь обучающий набор, как при линейной регрессии, для данной точки X = x требуется только подмножество набора данных размером k-. По сути, этот метод рассматривает классификацию как опрос большинства и предполагает, что поведение является локально постоянным, т.е. что поведение не меняется в каждом районе.

Как и в случае с линейной моделью, мы присваиваем целочисленное значение 1 классу лосося и 0 классу василькового. Затем для любого заданного (X1, X2) выход kNN f определяется как среднее арифметическое набора из 12 двоичных чисел. Быстро замечается, что результат может не быть целым числом, и поэтому снова требуется граничное условие, чтобы доставить нам желаемый результат {Salmon, Cornflower blue}. Мы выбираем классифицировать его в класс лосося, если f больше 0,5, в противном случае - в класс василькового синего.

На рисунке 3 показана реализация k = 12. Сразу становится очевидным, что свобода от линейного структурного допущения позволяет установить более гибкую границу, которая даже учитывает области классификации лосося среди преимущественно участков василькового синего цвета. Такая гибкость является основным преимуществом метода kNN, но что произойдет, если мы изменим k?

На рисунке 4 показан частный случай алгоритма, в котором модель назначает результат исключительно на основе ближайшего наблюдения в наборе данных, то есть в случае k = 1. Обратите внимание, что в обучающем наборе нет ошибочных классификаций, которые на первый взгляд могут выглядеть великолепно, однако приводят к высокому коэффициенту ошибок для классификации / прогнозирования вне обучающего набора, особенно если набор данных, на котором была создана модель, обучено было мало.

Обратите внимание, что граница различается для разных значений k, что приводит к появлению шума и дополнительной задаче выбора k (которую мы здесь обсуждать не будем). Хотя смещение модели невелико, kNN страдает от высокой дисперсии. В качестве альтернативы модель может быть очень чувствительной к обучающим данным и может не соответствовать модели, а не описывать истинные отношения ввода / вывода.

Поскольку этот метод предполагает меньшее количество предположений в отношении данных, существует гораздо больше вариантов алгоритма. Более глубокое погружение позволит изучить влияние различных показателей расстояния, средневзвешенных значений и методов выбора параметров для k на границу принятия решения.

Наивный байесовский классификатор

Базовый принцип наивного байесовского классификатора - отнести к наиболее вероятному классу, используя наши предварительные знания, и основан на математической теореме о том, насколько мы должны доверять наблюдаемым свидетельствам (теорема Байеса - https: //en.wikipedia. org / wiki / Bayes'_theorem ).

  • Как мы подходим к модели?

Процедура для этой модели требует расчета и сравнения апостериорной вероятности , которая отражает степень, в которой, по нашему мнению, модель точно описывает Y с учетом всех входных данных. X. Это вычисление в закрытой форме, которое требует знания распределения Y (как типа распределения, так и его параметров). На самом деле это ограничивает использование этого метода - генерирующее распределение бывает известно редко, но мы также требуем, чтобы он был в некоторой степени управляемым (легко оцениваемым).

Итак, чтобы соответствовать модели Байеса для нашего примера, нам нужно знать, откуда пришли данные. Поскольку я сам моделировал данные, я могу сказать вам, что данные были сгенерированы из смеси 10 гауссовских распределений с низкой дисперсией, каждое с отдельными, независимо распределенными гауссовыми средними (как в сценарии, обсужденном ранее!).

На рисунке 5 показана граница принятия решения для этого метода.

Мы замечаем, что граница похожа на метод k = 12 kNN, несмотря на то, что, похоже, это совсем другой метод.

Теория вероятностей утверждает, что если несколько переменных никоим образом не зависят друг от друга, то вероятность их совместного наблюдения - это просто результат наблюдения каждой переменной независимо. На самом деле это предположение редко бывает верным, поскольку переменные в системах, которые мы интересуемся моделированием, часто связаны друг с другом. По этой причине этот метод наивен.

Последнее замечание

Лучшее предсказание Y в любой точке X = x - это ожидание с учетом всей доступной информации.

Мы видели, что каждый из трех методов дает решение нашей исходной проблемы классификации, но при этом они сильно различаются как процедурой, так и границей решения. Фактически, все три подкреплены приведенным выше утверждением, где лучший измеряется функцией квадратичных потерь ошибок, описанной ранее. Утверждение было доказано в теории статистических решений и известно как функция регрессии. Различия каждого метода можно довольно четко резюмировать по их интерпретации функции регрессии.

Линейные модели: Лучшее предсказание Y в любой точке X = x - это ожидание при линейной комбинации всей доступной информации.

kNN: Лучшее предсказание Y в любой точке X = x - это математическое ожидание для окрестности размера k вокруг X = x.

Наивный Байес: Лучшее предсказание Y в любой точке X = x - это ожидание с учетом всей доступной информации (при условии, что плотность генерирования известна).

Эти строительные блоки являются отличной базой для статистических выводов. Они не только просты в реализации, но и подчеркивают сложности статистического моделирования и проблемы, возникающие при моделировании реальных систем. Естественные расширения возникают по следующей линии вопросов:

  • Что происходит с производительностью этих моделей при увеличении числа входных переменных (проклятие размерности)?
  • Как мы можем сравнить относительную производительность моделей?
  • Как мы можем проверить, верны ли предположения модели? Почему эти предположения имеют значение?
  • Что, если мы повторим наш анализ с другой функцией потерь?

Отзывы и комментарии приветствуются!