Для многих проектов машинного обучения мы начинаем с классификатора k Nearest Neighbor. Это идеальный начальный классификатор, поскольку у нас обычно достаточно времени для расчета всех расстояний, а количество параметров ограничено (k, метрика расстояния и весовые коэффициенты).
Однако это часто приводит к тому, что мы придерживаемся классификатора knn, поскольку в дальнейшем в проекте нет места для переключения на другой классификатор. Что было бы хорошей причиной, чтобы попробовать новый классификатор. Очевидными являются ограничения памяти и времени, но есть ли случаи, когда другой классификатор может реально повысить точность?
Ответы:
k-NN обобщает в очень ограничительном смысле. Он просто использует гладкость априоров (или допущение непрерывности). Это предположение подразумевает, что шаблоны, близкие в пространстве признаков, скорее всего, принадлежат к одному и тому же классу. K-NN не может восстановить функциональную закономерность в распределении паттернов.
Таким образом, он требует репрезентативных обучающих выборок, которые могут быть чрезвычайно большими, особенно в случае пространств пространственных объектов с большими размерами. Хуже того, эти образцы могут быть недоступны. Следовательно, он не может выучить инварианты. Если шаблоны могут подвергаться некоторым преобразованиям без изменения их меток, а обучающая выборка не содержит шаблонов, преобразованных всеми допустимыми способами, k-NN никогда не распознает преобразованные шаблоны, которые не были представлены во время обучения. Это верно, например, для смещенных или повернутых изображений, если они не представлены в некоторой инвариантной форме перед запуском k-NN. k-NN не может даже абстрагироваться от несущественных особенностей.
Еще один несколько искусственный пример. Представьте, что паттерн, принадлежащий разным классам, периодически распределяется (например, в соответствии с синусом - если он меньше 0, то паттерны принадлежат одному классу, а он больше, чем паттерны принадлежат другому классу). Тренировочный набор конечен. Таким образом, он будет расположен в конечной области. За пределами этого региона ошибка распознавания будет 50%. Можно представить логистическую регрессию с периодическими базисными функциями, которые в этом случае будут работать намного лучше. Другие методы смогут изучить другие закономерности в распределении шаблонов и хорошо их экстраполировать.
Итак, если кто-то подозревает, что доступный набор данных не является репрезентативным, и должна быть достигнута инвариантность к некоторым преобразованиям шаблонов, то это тот случай, когда нужно выйти за пределы k-NN.
источник
Если вы будете ограничены вычислительной сложностью, то деревья решений (Quinal, 1986) сложно превзойти (особенно, когда среда предлагает прямое преобразование модели DT в набор
if
операторов - например, Accord.NET ).Для данных больших размеров понятие расстояния, на котором основан k-NN, становится бесполезным (Kriegel, Kröger, Zimek, 2009) (также: статья в Википедии ). Поэтому другие классификаторы, такие как SVM (Corter, Vapnik, 1995) или Random Forests (Breiman, 2001) , могут работать лучше.
Ссылки:
Кригель, Ханс-Петер; Крегер, Пир; Зимек, Артур (2009), «Кластеризация многомерных данных: исследование кластеризации подпространств, кластеризации на основе шаблонов и корреляционной кластеризации», Транзакции ACM по обнаружению знаний из данных (Нью-Йорк, Нью-Йорк: ACM) 3 (1): 1-58
Кортес, Коринна; и Вапник, Владимир Н .; "Сети опорных векторов", Машинное обучение, 20, 1995
Лео Брейман. 2001. Случайные леса. Мах. Учить. 45, 1 (октябрь 2001 г.), 5-32.
JR Quinlan. 1986. Индукция деревьев решений. Мах. Учить. 1, 1 (март 1986 г.), 81-106.
источник
КНН полезен для больших выборок данных
Однако его недостатки:
Обычно это эффективно только в том случае, если данные об обучении велики, а обучение очень быстрое.
источник