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

Этот алгоритм не работает, когда данные зашумлены и нет четких различий между группами. Алгоритм ближайшего соседства не делает никаких предположений о базовом распределении данных. Алгоритм KNN использует либо Евклидово расстояние / Манхэттенское расстояние (есть несколько других методов для измерения расстояния), чтобы найти соседей. Компромисс смещения и дисперсии решается путем выбора подходящего значения K (в большинстве случаев K представляет собой квадратный корень из числа обучающих примеров).

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

Перед применением алгоритма необходимо масштабировать все переменные. Например, если свежесть и цвет измеряются по шкале от 1 до 10, то значение другой переменной также следует измерять по той же шкале (от 1 до 10). Для масштабирования можно использовать нормализацию минимум-максимум и стандартизацию z-показателя.

Мин-макс Норма = X -мин (X) / Диапазон

z-оценка стойки = X-среднее (X) /S.D (X)

Примечание. Евклидово расстояние можно применять только к числовым данным. Итак, номинальные переменные должны быть преобразованы в числовую форму (фиктивное кодирование). Технику преобразования не следует применять к фиктивным кодированным переменным. При этом, применяя эту модель к набору данных, уникальная переменная (например, атрибут ID) должна быть исключена из анализа. В противном случае возникает проблема переоборудования.

Шаги по использованию KNN:

  1. После прочтения набора данных убедитесь, что уникальная переменная (ID) должна быть удалена.
  2. Целевая переменная должна быть преобразована в коэффициент, если она имеет символьный формат.
  3. Примените масштабирование к тем переменным, которые не находятся в одном масштабе (имеют резкие различия в статистике summary ()). Эта функция R будет удобна. = ›Normalize‹ - function (x) {
    return ((x - min (x)) / (max (x) -min (x)))
  4. Используя lapply (), примените преобразование ко всем переменным.
  5. Разделите данные на тренировочные и тестовые. Создавайте тестовые и обучающие метки, включая целевую переменную.
  6. Запустите алгоритм KNN. = ›Knn (поезд, тест, класс, K)
  7. Оцените производительность модели с помощью CrossTable.

Вы можете найти приложение KNN для классификации в моем Github!

Взгляните на расстояние Минковского и его применение.