Классическое машинное обучение

k-NN

Метод k ближайших соседей

классикаОстаётся бейзлайном и основой векторного поиска, но как финальную модель берут редко.

Ленивый алгоритм: предсказание — это голосование k ближайших объектов обучающей выборки.

Ключевые тезисы

  • Обучения нет, вся стоимость переносится на инференс.
  • Требует масштабирования признаков и разумного выбора метрики расстояния.
  • Сильно страдает от проклятия размерности: в высоких размерностях все точки равноудалены.

Подробный разбор

3 подтем — раскройте любую, чтобы увидеть объяснение, формулы, примеры и интерактивные графики.

1

Алгоритм и выбор k

Ленивое обучение: вся работа откладывается до момента предсказания.

  1. Посчитать расстояние от нового объекта до всех объектов обучающей выборки.
  2. Взять ближайших.
  3. Для классификации — голосование большинством, для регрессии — среднее их ответов.

Малое даёт изрезанную границу и переобучение (при модель просто запоминает выборку), большое — слишком гладкую и недообучение. обычно берут нечётным, чтобы избежать ничьих в бинарной задаче.

k3
голоса за класс 11 из 3
предсказаниекласс 0
до ближайшего соседа0.050
Меняйте k и двигайте объект: при k=1 граница рваная, при k=11 — гладкая, а отдельные выбросы перестают влиять
2

Метрики расстояния

Результат k-NN целиком определяется тем, что вы назвали «близким».

Считаем руками

, . Манхэттенское расстояние: . Евклидово: .

  • Косинусное — для текстов и эмбеддингов, когда важно направление, а не длина.
  • Хэмминга — для бинарных и категориальных векторов.
  • Махаланобиса — учитывает корреляции признаков.
На практике

Масштабирование обязательно: без него признак «доход» полностью определит расстояние, а «возраст» станет невидимым.

3

Сложность и быстрый поиск соседей

Почему наивный k-NN не доживает до продакшена и что с этим делают.

Наивное предсказание стоит на объект: при миллионе объектов и сотне признаков это сотни миллионов операций на один запрос.

СтруктураИдеяКогда работает
KD-дереворекурсивное разбиение по осям
Ball-дереворазбиение на шарысредние размерности
LSHхеширование: близкие объекты → одна корзинавысокие размерности
HNSWмногослойный граф соседствастандарт для векторного поиска

LSH через случайные проекции: берут случайный вектор и кодируют объект битом . Несколько таких битов дают хеш, а близкие объекты с большой вероятностью получают одинаковый код.

Связанные темы

Метрические и ядровые методы

SVM65%

Метод опорных векторов · Классическое машинное обучение

Ищет гиперплоскость с максимальным зазором между классами; ядровой трюк добавляет нелинейность без явного перехода в новое пространство.

k-Means65%

k-средних · Классическое машинное обучение

Разбивает объекты на k кластеров, минимизируя суммарное расстояние до центроидов.

Distance65%

Расстояние · Математический справочник

Мера непохожести объектов — основа кластеризации, k-NN и поиска.

Norm65%

Норма · Математический справочник

Мера длины вектора; выбор нормы определяет геометрию задачи.

Normalization & Standardization65%

Нормализация и стандартизация · Данные

Приведение признаков к сопоставимым масштабам, без которого расстояния, градиенты и регуляризация работают некорректно.

Metric spaces65%

Метрические пространства · Топологический анализ данных

Множество с функцией расстояния. Любой TDA-пайплайн начинается с выбора метрики.