Алгоритм k-ближайших соседей и локальные решения
Геометрическая интуиция, метрики расстояний.
Алгоритм k-ближайших соседей (k-Nearest Neighbors, kNN) – один из самых интуитивных и при этом фундаментальных алгоритмов машинного обучения. Он почти не делает предположений о данных, не обучает явную модель и опирается на простую, почти геометрическую идею: похожие объекты должны иметь похожие ответы.
Именно поэтому kNN особенно хорошо подходит для объяснения того, что такое локальные решения, почему геометрия данных важна и как выбор метрики расстояния напрямую влияет на результат.
Локальные решения вместо глобальной модели
В отличие от линейной или логистической регрессии, kNN не пытается найти одну общую формулу для всех данных. У него нет коэффициентов, весов или функции потерь в явном параметрическом виде.
Алгоритм работает иначе:
Мы сохраняем все обучающие данные.
Для нового объекта ищем k ближайших к нему примеров.
Принимаем решение, глядя только на этих соседей.
Это и есть локальное решение. Для каждой новой точки решение строится заново, исходя из её ближайшего окружения.
Можно сказать, что kNN каждый раз отвечает на вопрос:
Что обычно происходит с объектами, похожими именно на этот?

Геометрическая интуиция kNN
Рассмотрим самый простой случай – пространство из двух признаков. Каждый объект – это точка на плоскости. Тогда работа алгоритма выглядит буквально геометрически:
есть точка запроса
мы измеряем расстояния до всех остальных точек
выбираем точек с минимальным расстоянием
Для классификации чаще всего используется голосование:
Для регрессии – усреднение:
Таким образом, решение определяется формой локального "облака" точек вокруг запроса.
Метрики расстояния: как мы определяем "близость"
Ключевой вопрос kNN – что значит "ближайший"? Ответ задаётся метрикой расстояния.
Евклидово расстояние
Самая распространённая метрика:
Она хорошо работает, когда:
признаки имеют одинаковый масштаб
пространство относительно низкой размерности (см. проклятие размерности ниже)
важна геометрическая форма облаков

Манхэттенское расстояние
Иногда важнее не прямая линия, а сумма перемещений по осям:
Эта метрика часто используется, когда признаки независимы и имеют интерпретацию "стоимости шага".

Расстояние Минковского
Обобщающая форма:
при получаем евклидово расстояние
при – манхэттенское
Выбор p позволяет плавно менять форму "окрестности" точки.

Косинусное расстояние
Когда важна не длина вектора, а направление. Формально это косинусное сходство, а не расстояние.
На практике в kNN обычно используют косинусное расстояние:
Используется в задачах с текстами, эмбеддингами, рекомендациями, где абсолютные значения менее важны, чем относительные пропорции.

Выбор k, компромисс смещения и дисперсии
Параметр определяет, насколько локальным будет решение.
Малое k (например, ):
очень чувствителен к шуму
низкое смещение, высокая дисперсия
Большое k:
решения более сглаженные
выше смещение, ниже дисперсия

kNN – наглядный пример классического компромисса bias–variance.
Размерность и проклятие размерности
С ростом числа признаков возникает проблема, известная как проклятие размерности.
Интуитивно:
в высоких размерностях все точки становятся "далёкими"
различия между ближайшим и дальним соседом уменьшаются
метрики расстояния теряют выразительность
Для многих распределений в высоких размерностях наблюдается эффект, при котором отношение:
Это делает kNN менее эффективным без:
нормализации признаков
отбора признаков
снижения размерности (PCA, autoencoders)
Почему kNN важен концептуально
Несмотря на простоту и вычислительную дороговизну при прямом поиске на больших данных, kNN остаётся ключевым алгоритмом для понимания машинного обучения:
он показывает разницу между локальными и глобальными моделями
делает геометрию данных зримой
подчёркивает роль метрик и масштабов
демонстрирует компромисс bias–variance без сложной математики
kNN – это почти "честный" алгоритм. Он не прячет логику за весами и слоями, а напрямую говорит: посмотри на своих соседей.
Именно поэтому он так хорошо подходит для обучения интуиции, даже если в промышленном коде его используют не так часто.
Last updated