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

На приведенном выше рисунке пусть красный и синий цвета обозначают разные метки категории для задачи классификации. Красный обозначает «класс А», а синий обозначает «класс В».

Теперь наша задача состоит в том, чтобы классифицировать новую точку данных «x» среди двух классов, т. Е. Независимо от того, принадлежит ли «x» классу A или классу B, мы выполняем следующие шаги:

а. Сначала мы вычисляем евклидово расстояние между новой точкой данных «x» и всеми остальными точками данных в наборе обучающих данных.

б. После того, как мы вычислим расстояние, мы выберем «k» ближайших точек данных среди рассчитанных расстояний. Предположим, что K=3, тогда в этом случае мы выбираем x1, x2,x3 как 3 ближайших соседа.

Примечание. Здесь я случайно выбрал k=3. В алгоритме KNN «K» — это гиперпараметр, который мы узнаем с помощью настройки гиперпараметров.

в. Поскольку мы знаем метку/результат данного обучающего набора данных, мы получаем соответствующие метки x1, x2 и x3 как y1, y2, y3 соответственно.

д. После получения ярлыка мы делаем что-то под названием «Голосование большинством». Мы считаем выходные метки, так как это дискретные значения, принадлежащие либо к «классу A», либо к «классу B».

Как показано на рисунке выше, большинство выходных этикеток относится к «классу А». Таким образом, новая контрольная точка «x» классифицируется как точка «класса A».

При выборе значения «K» мы всегда должны использовать нечетное число в качестве хорошей практики, потому что, если мы используем четное число, голосование большинства может быть связано с равными значениями, как показано на рисунке (т. е. для класса A имеется равное количество голосов и класс B), и новая точка данных "x" может быть неправильно классифицирована.