Алгоритм KNN предполагает, что подобные вещи существуют в непосредственной близости. KNN отражает идею сходства (иногда называемого расстоянием, близостью или близостью) с некоторыми математическими выражениями, которые мы, возможно, изучали в детстве, например, вычислением расстояния между точками на графике.
Алгоритм K-NN предполагает сходство между новым случаем/данными и доступными случаями и помещает новый случай в категорию, наиболее похожую на доступные категории.
Есть несколько показателей расстояния, которые мы можем вычислить для измерения близости. Вот три основных типа показателей расстояния:
- Евклидово расстояние:
2. Манхэттенское расстояние:
3. Расстояние Минковского:
Алгоритм K-NN:
- Выберите количество соседей K (значение по умолчанию: 5).
- Возьмите K ближайших соседей новой точки данных, используя любую метрику расстояния, описанную выше.
- Среди K соседей подсчитайте количество точек данных в каждой категории.
- Назначьте новую точку данных категории, в которой мы насчитали наибольшее количество соседей.
Вот о чем следует помнить:
- Когда мы уменьшаем значение K до 1, наши прогнозы становятся менее стабильными. Просто задумайтесь на минутку, представьте, что K=1, и у нас есть точка запроса, окруженная несколькими красными и одним зеленым, но зеленый — единственный ближайший сосед. Разумно было бы подумать, что точка запроса, скорее всего, красная, но поскольку K=1, KNN неправильно предсказывает, что точка запроса зеленая.
- И наоборот, по мере того, как мы увеличиваем значение K, наши прогнозы становятся более стабильными из-за голосования большинства / усреднения и, следовательно, с большей вероятностью делают более точные прогнозы (до определенного момента). В конце концов, мы начинаем наблюдать растущее число ошибок. Именно в этот момент мы знаем, что слишком далеко задвинули значение K.
- В тех случаях, когда мы получаем большинство голосов (например, выбираем режим в задаче классификации) среди меток, мы обычно делаем K нечетным числом, чтобы иметь возможность разрешения конфликтов.
Преимущества K-ближайших соседей:
- Алгоритм прост и легко реализуем.
- Нет необходимости строить модель, настраивать несколько параметров или делать дополнительные предположения.
- Алгоритм универсальный. Его также можно использовать для классификации, регрессии и поиска.
- Простота реализации для многоклассовых задач.
Недостатки K-ближайших соседей:
- Алгоритм становится значительно медленнее по мере увеличения количества примеров и/или предикторов/независимых переменных.
- Масштабирование объектов или однородные данные необходимы для вычисления и сравнения расстояний между точками данных.
- Оптимальный выбор K или ближайших соседей важен для классификации новой точки данных.
- Склонен к пропущенным значениям.
Реализация.Перейдите по следующей ссылке, чтобы узнать о реализации K-ближайших соседей в Python и R: