В статистике алгоритм k -ближайших соседей ( k -NN ) — это непараметрический метод обучения с учителем, впервые разработанный Эвелин Фикс и Джозефом Ходжесом в 1951 году [1] и позже расширенный Томасом Ковером . [2] Используется для классификации и регрессии . В обоих случаях входные данные состоят из k ближайших обучающих примеров в наборе данных . Результат зависит от того, используется ли k -NN для классификации или регрессии:
k -NN — это тип классификации , при котором функция аппроксимируется только локально, а все вычисления откладываются до вычисления функции. Поскольку этот алгоритм для классификации опирается на расстояние, если объекты представляют разные физические единицы или имеют совершенно разные масштабы, то нормализация обучающих данных может значительно повысить их точность. [3]
Как для классификации, так и для регрессии полезным методом может быть присвоение весов вкладам соседей, чтобы более близкие соседи вносили больший вклад в среднее значение, чем более удаленные. Например, обычная схема взвешивания состоит в присвоении каждому соседу веса 1/ d , где d — расстояние до соседа. [4]
Соседи выбираются из набора объектов, для которых известен класс (для классификации k -NN) или значение свойства объекта (для регрессии k -NN). Это можно рассматривать как обучающую выборку для алгоритма, хотя явного этапа обучения не требуется.
Особенностью алгоритма k -NN является то, что он чувствителен к локальной структуре данных.
Предположим, у нас есть пары, принимающие значения в , где Y — метка класса X , так что для (и распределения вероятностей ). Учитывая некоторую норму и точку , пусть будет переупорядочение обучающих данных так, что .
Обучающие примеры представляют собой векторы в многомерном пространстве признаков, каждый из которых имеет метку класса. Фаза обучения алгоритма состоит только из сохранения векторов признаков и меток классов обучающих выборок.
На этапе классификации k — определяемая пользователем константа, а немаркированный вектор (запросная или тестовая точка) классифицируется путем присвоения метки, которая наиболее часто встречается среди k обучающих выборок, ближайших к этой точке запроса.
Обычно используемой метрикой расстояния для непрерывных переменных является евклидово расстояние . Для дискретных переменных, например, для классификации текста, можно использовать другую метрику, например, метрику перекрытия (или расстояние Хэмминга ). Например, в контексте данных микрочипов экспрессии генов k -NN использовался с коэффициентами корреляции, такими как Пирсон и Спирмен, в качестве метрики. [5] Часто точность классификации k -NN можно значительно повысить, если метрику расстояния изучить с помощью специализированных алгоритмов, таких как анализ ближайших соседей с большим запасом или анализ компонентов окрестности .
Недостаток базовой классификации «голосованием большинства» возникает, когда распределение классов искажается. То есть примеры более частого класса имеют тенденцию доминировать в предсказании нового примера, поскольку они имеют тенденцию быть общими среди k ближайших соседей из-за их большого количества. [6] Одним из способов решения этой проблемы является взвешивание классификации с учетом расстояния от контрольной точки до каждого из ее k ближайших соседей. Класс (или значение в задачах регрессии) каждой из k ближайших точек умножается на вес, пропорциональный обратной величине расстояния от этой точки до контрольной точки. Другой способ преодолеть перекос — абстрагировать представление данных. Например, в самоорганизующейся карте (СОМ) каждый узел является представителем (центром) кластера одинаковых точек независимо от их плотности в исходных обучающих данных. Затем K -NN можно применить к SOM.
Лучший выбор k зависит от данных; как правило, большие значения k уменьшают влияние шума на классификацию [7] , но делают границы между классами менее четкими. Хороший k можно выбрать с помощью различных эвристических методов (см. оптимизацию гиперпараметров ). Особый случай, когда класс прогнозируется как класс ближайшей обучающей выборки (т. е. когда k = 1), называется алгоритмом ближайшего соседа.
Точность алгоритма k -NN может быть серьезно снижена из-за присутствия зашумленных или нерелевантных признаков или из-за того, что масштабы признаков не соответствуют их важности. Много исследовательских усилий было потрачено на выбор или масштабирование признаков для улучшения классификации. Особенно популярный подход [ нужна цитация ] — использование эволюционных алгоритмов для оптимизации масштабирования функций. [8] Другой популярный подход заключается в масштабировании функций путем взаимной информации обучающих данных с обучающими классами. [ нужна цитата ]
В задачах двоичной (двухклассовой) классификации полезно выбрать нечетное число k , поскольку это позволяет избежать равенства голосов. Одним из популярных способов выбора эмпирически оптимального k в этой ситуации является метод начальной загрузки. [9]
Самый интуитивно понятный классификатор типа ближайшего соседа — это один классификатор ближайшего соседа, который присваивает точку x классу ее ближайшего соседа в пространстве признаков, то есть .
Поскольку размер набора обучающих данных приближается к бесконечности, один классификатор ближайшего соседа гарантирует частоту ошибок, не превышающую вдвое частоту ошибок Байеса (минимально достижимую частоту ошибок с учетом распределения данных).
Классификатор k -ближайших соседей можно рассматривать как присвоение k ближайших соседей веса , а всем остальным - 0 . Это можно обобщить на взвешенные классификаторы ближайших соседей. То есть, где i- му ближайшему соседу присвоен вес , с . Аналогичный результат о сильной согласованности взвешенных классификаторов ближайших соседей также справедлив. [10]
Обозначим через взвешенный ближайший классификатор с весами . С учетом условий регулярности, которые в асимптотической теории являются условными переменными, требующими допущений для дифференциации параметров по некоторым критериям. На классовых распределениях избыточный риск имеет следующее асимптотическое разложение [11] для констант и где и .
Оптимальная схема взвешивания , которая уравновешивает два термина на изображении выше, задается следующим образом: set , for и for .
При оптимальных весах доминирующим членом асимптотического разложения избыточного риска является . Аналогичные результаты верны при использовании классификатора ближайших соседей в пакетах .
k -NN является частным случаем «баллонной» оценки плотности ядра с переменной полосой пропускания и однородным ядром . [12] [13]
Наивную версию алгоритма легко реализовать путем вычисления расстояний от тестового примера до всех сохраненных примеров, но для больших обучающих наборов она требует больших вычислительных ресурсов. Использование алгоритма приблизительного поиска ближайшего соседа делает k- NN вычислительно доступным даже для больших наборов данных. За прошедшие годы было предложено множество алгоритмов поиска ближайших соседей; они обычно направлены на сокращение количества фактически выполняемых дистанционных оценок.
k- NN имеет некоторые сильные результаты по согласованности . Поскольку объем данных приближается к бесконечности, двухклассный алгоритм k- NN гарантированно дает коэффициент ошибок, не хуже, чем вдвое превышающий коэффициент байесовских ошибок (минимально достижимый коэффициент ошибок с учетом распределения данных). [2] Различные улучшения скорости k -NN возможны за счет использования графов близости. [14]
Для многоклассовой классификации k- NN Ковер и Харт (1967) доказывают верхнюю границу частоты ошибок: где - частота ошибок Байеса (которая является минимально возможной частотой ошибок), - асимптотическая частота ошибок k- NN, а M - количество классов в задаче. Эта граница является точной в том смысле, что как нижняя, так и верхняя границы достижимы при некотором распределении. [15] Поскольку коэффициент байесовских ошибок приближается к нулю, этот предел уменьшается до «не более чем в два раза превышающего коэффициент байесовских ошибок».
Существует множество результатов по частоте ошибок k классификаторов ближайших соседей. [16] Классификатор k -ближайших соседей сильно (то есть для любого совместного распределения на ) непротиворечив при условии, что он расходится и сходится к нулю при .
Обозначим k классификатор ближайших соседей, основанный на обучающем наборе размера n . При определенных условиях регулярности избыточный риск дает следующее асимптотическое разложение [11] для некоторых констант и .
Выбор предлагает компромисс между двумя членами на приведенном выше изображении, для которого ошибка -ближайшего соседа сходится к ошибке Байеса с оптимальной ( минимаксной ) скоростью .
Эффективность классификации K-ближайших соседей часто можно значительно улучшить за счет ( контролируемого ) обучения метрике. Популярными алгоритмами являются анализ компонентов окрестности и ближайший сосед с большим запасом . Алгоритмы обучения контролируемых метрик используют информацию метки для изучения новой метрики или псевдометрики .
Когда входные данные для алгоритма слишком велики для обработки и есть подозрение, что они избыточны (например, одни и те же измерения в футах и метрах), тогда входные данные будут преобразованы в сокращенный набор представлений объектов (также называемый вектором объектов). ). Преобразование входных данных в набор признаков называется извлечением признаков . Если извлеченные функции тщательно выбраны, ожидается, что набор функций извлечет соответствующую информацию из входных данных, чтобы выполнить желаемую задачу, используя это уменьшенное представление вместо полноразмерных входных данных. Извлечение признаков выполняется на необработанных данных перед применением алгоритма k -NN к преобразованным данным в пространстве признаков .
Пример типичного вычислительного конвейера компьютерного зрения для распознавания лиц с использованием k -NN, включая этапы предварительной обработки извлечения признаков и уменьшения размеров (обычно реализуемые с помощью OpenCV ):
Для многомерных данных (например, с числом измерений более 10) уменьшение размерности обычно выполняется перед применением алгоритма k -NN, чтобы избежать эффектов проклятия размерности . [17]
Проклятие размерности в контексте k -NN по сути означает, что евклидово расстояние бесполезно в больших размерностях, поскольку все векторы почти равноудалены от вектора поискового запроса (представьте себе несколько точек, лежащих более или менее на круге с точкой запроса в центре; расстояние от запроса до всех точек данных в пространстве поиска практически одинаковое).
Извлечение признаков и уменьшение размерности можно объединить за один этап с использованием методов анализа главных компонентов (PCA), линейного дискриминантного анализа (LDA) или канонического корреляционного анализа (CCA) в качестве этапа предварительной обработки с последующей кластеризацией по k -NN по признаку. векторы в пространстве уменьшенной размерности. Этот процесс также называется низкоразмерным встраиванием . [18]
Для наборов данных очень большой размерности (например, при выполнении поиска по сходству в видеопотоках в реальном времени, данных ДНК или многомерных временных рядах ) выполняется быстрый приблизительный поиск k -NN с использованием хэширования с учетом местоположения , «случайных проекций», [19] " эскизы» [20] или другие методы многомерного поиска по сходству из набора инструментов VLDB могут быть единственным возможным вариантом.
Фактически правила ближайшего соседа неявно вычисляют границу решения . Также возможно вычислить границу решения явно и сделать это эффективно, так что сложность вычислений является функцией сложности границы. [21]
Сокращение данных — одна из важнейших проблем при работе с огромными наборами данных. Обычно для точной классификации необходимы только некоторые точки данных. Эти данные называются прототипами и их можно найти следующим образом:
Обучающий пример, окруженный примерами других классов, называется выбросом класса. Причины выбросов класса включают в себя:
Выбросы класса с k -NN создают шум. Их можно обнаружить и отделить для будущего анализа. Учитывая два натуральных числа, k > r > 0, обучающий пример называется ( k , r )NN-выбросом класса, если его k ближайших соседей включают более r примеров других классов.
Сжатый ближайший сосед (CNN, алгоритм Харта ) — алгоритм, предназначенный для сокращения набора данных для классификации k -NN. [22] Он выбирает набор прототипов U из обучающих данных, так что 1NN с U может классифицировать примеры почти так же точно, как 1NN делает со всем набором данных.
Учитывая обучающий набор X , CNN работает итеративно:
Используйте U вместо X для классификации. Примеры, не являющиеся прототипами, называются «поглощенными» точками.
Эффективно сканировать обучающие примеры в порядке убывания соотношения границ. [23] Граничное соотношение обучающего примера x определяется как
где ‖ xy ‖ — расстояние до ближайшего примера y, имеющего цвет, отличный от цвета x , а ‖ x'-y ‖ — расстояние от y до ближайшего примера x' с той же меткой, что и x .
Граничное соотношение находится в интервале [0,1], поскольку ‖ x'-y ‖ никогда не превышает ‖ xy ‖ . Такое упорядочение отдает предпочтение границам классов для включения в множество прототипов U. Точка с меткой, отличной от x, называется внешней по отношению к x . Расчет коэффициента границы иллюстрирует рисунок справа. Точки данных помечены цветами: начальная точка — x , а ее метка — красная. Внешние точки синие и зеленые. Ближайшая к x внешняя точка — это y . Ближайшая к y красная точка — это x' . Граничное соотношение a ( x ) = ‖ x'-y ‖ / ‖ xy ‖ является атрибутом начальной точки x .
Ниже представлена иллюстрация CNN в виде серии рисунков. Есть три класса (красный, зеленый и синий). Рис. 1: изначально в каждом классе 60 баллов. На рис. 2 показана карта классификации 1NN: каждый пиксель классифицируется по 1NN с использованием всех данных. На рис. 3 представлена карта классификации 5NN. Белые области соответствуют неклассифицированным регионам, в которых голосование 5NN привязано (например, если среди 5 ближайших соседей есть две зеленые, две красные и одна синяя точки). На рис. 4 показан сокращенный набор данных. Крестики — это классы-выбросы, выбранные по правилу (3,2)NN (все три ближайших соседа этих экземпляров принадлежат другим классам); квадраты — прототипы, а пустые кружки — поглощенные точки. В левом нижнем углу показаны номера классов-выбросов, прототипов и поглощенных баллов для всех трех классов. Количество прототипов в этом примере варьируется от 15% до 20% для разных классов. На рис. 5 видно, что карта классификации 1NN с прототипами очень похожа на карту с исходным набором данных. Цифры были созданы с использованием апплета Mirkes. [23]
В регрессии k -NN алгоритм k - NN используется для оценки непрерывных переменных. Один из таких алгоритмов использует средневзвешенное значение k ближайших соседей, взвешенное по обратной величине их расстояния. Этот алгоритм работает следующим образом:
Расстояние до k -го ближайшего соседа также можно рассматривать как оценку локальной плотности и, таким образом, также является популярным показателем выбросов при обнаружении аномалий . Чем больше расстояние до k -NN, тем ниже локальная плотность, тем больше вероятность, что точка запроса является выбросом. [24] Несмотря на свою простоту, эта модель выбросов, наряду с другим классическим методом интеллектуального анализа данных, локальным фактором выбросов , работает довольно хорошо по сравнению с более поздними и более сложными подходами, согласно крупномасштабному экспериментальному анализу. [25]
Матрица путаницы или «матрица соответствия» часто используется как инструмент проверки точности классификации k -NN. Также могут быть применены более надежные статистические методы, такие как тест отношения правдоподобия . [ как? ]