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

Машины опорных векторов (SVM).

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

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

Этот метод является непараметрическим, что означает, что он не делает никаких предположений о базовом распределении данных. Это довольно полезно, так как в реальном мире большая часть практических данных не подчиняется типичным сделанным теоретическим предположениям. 2. Он основан на экземплярах, что означает, что алгоритм явно не изучает модель. Вместо этого он предпочитает запоминать обучающие экземпляры, которые впоследствии используются в качестве «знаний» для фазы прогнозирования. Это означает, что только когда будет сделан запрос к нашей базе данных (т. е. когда мы попросим ее предсказать метку с учетом входных данных), алгоритм будет использовать обучающие экземпляры для выдачи ответа. Он не использует точки обучающих данных для какого-либо обобщения, т.е. его этап обучения очень минимален, или мы можем сказать, что он не использует явный этап обучения. Это означает, что фаза обучения проходит довольно быстро. Отсутствие обобщения означает, что KNN хранит все данные обучения. Все данные обучения
необходимы на этапе тестирования.

KNN — принимает решение на основе всего набора обучающих данных (в лучшем случае их подмножества). Этап обучения также является дорогостоящим. Затратно как по времени, так и по памяти. В худшем случае может потребоваться больше времени, поскольку существует вероятность того, что все точки данных будут учитываться при принятии решения. Поскольку все обучающие данные хранятся, требуется больше памяти. Каждые обучающие данные состоят из набора векторов и метки класса, связанной с каждым вектором.

В простейшем случае это будет либо +, либо — (для положительных или отрицательных классов). Но KNN может одинаково хорошо работать с произвольным количеством классов. KNN предполагает, что данные находятся в пространстве признаков. Точнее, точки данных находятся в метрическом пространстве. Данные могут быть скалярами или даже многомерными векторами. Пример: оценка плотности с использованием KNN. Для оценки плотности в точке x поместите гиперкуб с центром в x и продолжайте увеличивать его размер, пока не будут захвачены k соседей. Теперь оцените плотность по формуле, где n — общее количество гиперкубов, а V — объем гиперкуба. Обратите внимание, что числитель по существу является константой, а плотность зависит от объема. Это означает, что объем гиперкуба мал, а результирующая плотность высока. Допустим, плотность вокруг x очень низкая. Тогда объем гиперкуба, необходимый для охвата k ближайших соседей, велик и, следовательно, отношение мало.

KNN также используется для прогнозирования структуры.

Эта статья предоставлена ​​Rajshree Neema
https://www.linkedin.com/in/rajshree-nema-77020a145/

Раджшри Нима
#include‹›
SGSITS