Что такое KNN?

K Nearest Neighbor - это простой алгоритм, который хранит все доступные наблюдения и классифицирует новые данные или случай на основе меры сходства. Он в основном используется для классификации точки данных на основе того, как классифицируются ее соседи.

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

«K» в KNN - это параметр, который относится к количеству ближайших соседей, которые должны быть включены в большую часть процесса голосования.

Предположим, если мы добавим в набор данных новый бокал вина. Хотелось бы узнать, красное или белое вино молодое?

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

Как выбрать значение k в алгоритме KNN?

«K» в алгоритме KNN основан на сходстве признаков. Выбор правильного значения K - это процесс, называемый настройкой параметров, и он важен для повышения точности. Найти значение k непросто.

Несколько идей по выбору значения "K"

  1. Не существует структурированного метода определения наилучшего значения «K». Нам нужно выяснить с различными значениями методом проб и ошибок, предполагая, что данные обучения неизвестны.
  2. Выбор меньших значений для K может быть шумным и иметь большее влияние на результат.

3) Большие значения K будут иметь более гладкие границы решения, что означает меньшую дисперсию, но повышенную систематическую ошибку. Кроме того, это дорого с точки зрения вычислений.

4) Другой способ выбрать K - это перекрестная проверка. Один из способов выбрать набор данных перекрестной проверки из набора данных для обучения. Возьмите небольшую часть из набора обучающих данных и назовите его набором данных проверки, а затем используйте то же самое для оценки различных возможных значений K. Таким образом, мы собираемся предсказать метку для каждого экземпляра в наборе проверки, используя с K, равным 1 , K равно 2, K равно 3 .. а затем мы смотрим, какое значение K дает нам лучшую производительность на проверочном наборе, а затем мы можем взять это значение и использовать его в качестве окончательной настройки нашего алгоритма, так что мы минимизация ошибки валидации.

5) Как правило, значение k равно k = sqrt (N), где N обозначает количество образцы в наборе обучающих данных.

6) Старайтесь сохранять значение k нечетным, чтобы избежать путаницы между двумя классами данных.

Как работает алгоритм KNN?

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

Другие методы - это методы Манхэттена, Минковского и расстояния Хэмминга. Для категориальных переменных необходимо использовать расстояние Хэмминга.

Возьмем небольшой пример. Возраст против ссуды.

Нам нужно предсказать статус Эндрю по умолчанию (Да или Нет).

Рассчитайте евклидово расстояние для всех точек данных.

При K = 5 есть два по умолчанию = N и три по умолчанию = Y из пяти ближайших соседей. Мы можем сказать, что статус по умолчанию для Эндрю - «Y», основываясь на основном совпадении 3 баллов из 5.

K-NN также является ленивым учеником, потому что он не изучает различительную функцию из обучающих данных, а вместо этого «запоминает» обучающий набор данных.

Плюсы KNN

  1. Просто реализовать
  2. Гибкость в выборе характеристик / расстояния
  3. Естественно обрабатывает мультиклассовые дела
  4. Может преуспеть на практике с достаточно репрезентативными данными

Минусы KNN

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

Ссылка:

Https://stackoverflow.com/questions/11568897/value-of-k-in-k-nearest-neighbor-algorithm