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

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

KNN относится к области контролируемого обучения и находит интенсивное применение в распознавании образов, анализе данных и обнаружении вторжений.

KNN – это непараметрический алгоритм ленивого обучения. Его цель — использовать базу данных, в которой точки данных разделены на несколько классов, чтобы предсказать классификацию новой точки выборки.

  1. Первым шагом модели построения алгоритма KNN является обработка данных и их предварительная обработка перед созданием обучающих и тестовых данных.
  2. Выбор k очень важен. Небольшое значение k означает, что шум будет иметь большее влияние на результат. Большое значение делает его дорогостоящим в вычислительном отношении и противоречит основной философии, лежащей в основе KNN (то есть точки, которые находятся рядом, могут иметь аналогичные плотности или классы).

Простым подходом к выбору k является установка k = n^(1/2).

«Это во многом будет зависеть от ваших индивидуальных случаев, иногда лучше просмотреть все возможные значения k и решить для себя».»

Когда мы наносим записи данных в математическое пространство, на основе классификации у нас будут данные, как показано на рисунке. Здесь круг и треугольник — это два разных класса записей.

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

Для лучшего понимания…..
Предположим, после наблюдения и обработки данных мы получили значение k, равное 6, затем, используя алгоритм KNN, новая точка данных найдет 6 ближайших или кратчайших точек данных. .

Чтобы рассчитать расстояние между двумя точками данных в математическом пространстве, у нас есть разные формулы для расчета расстояния:

Как только мы получим k ближайших соседей, новая точка данных будет использовать метки класса ближайших соседей, чтобы определить метку класса неизвестной записи/данных.
Это делается путем голосования большинством между k ближайших соседей.

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

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

Например, алгоритм логистической регрессии изучает веса (параметры) своей модели во время обучения. Напротив, в K-NN нет времени на обучение. Хотя это может показаться очень удобным, это свойство не обходится без затрат: шаг «предсказания» в K-NN относительно дорог! Каждый раз, когда мы хотим сделать прогноз, K-NN ищет ближайших соседей во всей обучающей выборке!

Let’s Code:
«KNN относится к семейству алгоритмов контролируемого обучения. Неформально это означает, что нам дан помеченный набор данных, состоящий из обучающих наблюдений (x, y), и мы хотели бы зафиксировать взаимосвязь между x и y. Говоря более формально, наша цель состоит в том, чтобы изучить функцию h:X→Y, чтобы по невидимому наблюдению x функция h(x) могла уверенно предсказать соответствующий результат y».

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

  • Постройте модель с различными значениями k, чтобы проверить наилучшее оптимальное значение.
  • Проверьте ошибку неправильной классификации по сравнению с k для перекрестной проверки.

Найдите код Python здесь

Спасибо!
Продолжайте поддерживать