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

k-NN

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

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

Направления: Машинное обучение · Классический ML

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

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

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

Какую задачу решает

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

Такая ленивость даёт неожиданно сильное свойство: граница решения может быть какой угодно сложной, никаких предположений о форме зависимости не делается. Цена — вся работа переносится на предсказания, и качество целиком определяется тем, насколько осмысленна выбранная метрика расстояния.

Что делает нормализация

Объекты описаны возрастом (18–80) и доходом (20 000–500 000). Евклидово расстояние между двумя людьми почти целиком определяется разницей в доходе: 50 лет разницы в возрасте дают вклад 2500, а 50 000 разницы в доходе — 2.5 миллиарда. Фактически модель видит только один . После приведения обоих к нулевому среднему и единичной вклад становится сопоставимым, и качество на таких данных обычно подскакивает на десятки процентов. Для — не гигиена, а часть алгоритма.

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

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

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

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

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

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

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

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

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

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

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

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

Где применяется

  • Поиск похожихРекомендации «похожие товары», поиск дубликатов, подбор по фотографии.
  • поиск и Современное воплощение метода: ANN-индекс по — сердце .
  • Заполнение пропусковKNN-импьютация подставляет значение по похожим наблюдениям.
  • Быстрая проверка того, есть ли в данных вообще локальная структура.
  • Few-shot классификацияКлассы, у которых по несколько примеров: обучать нечего, а сравнивать можно.

Плюсы, минусы и альтернативы

Плюсы

  • Обучения нет: добавление данных не требует .
  • Граница решения произвольной формы, без предположений о зависимости.
  • Естественная многоклассовость и понятное объяснение: «вот похожие случаи».
  • Одинаково работает для классификации, регрессии и поиска.
  • С ANN-индексами масштабируется до миллиардов объектов.

Минусы

  • Предсказание дорого: нужно сравнить объект со всей выборкой.
  • Хранит всю обучающую выборку — память растёт с данными.
  • Разваливается в высокой размерности без .
  • Требует : без неё метрика бессмысленна.
  • Плохо переносит нерелевантные — они портят расстояние.
  • Чувствителен к дисбалансу классов: большой класс побеждает большинством.

Брать, если

  • Задача формулируется как «найди похожие».
  • Размерность невелика или есть хорошие .
  • Данные постоянно пополняются и переобучать неудобно.
  • Нужно объяснение через прецеденты.

Не брать, если

  • сотни и они сырые — расстояние перестаёт что-либо значить.
  • Жёсткие требования к при большой выборке и без ANN-индекса.
  • Много нерелевантных , отобрать которые нечем.

Чем заменяют

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

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

SVM65%

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

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

k-Means65%

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

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

Distance65%

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

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

Norm65%

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

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

Normalization & Standardization65%

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

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

Metric spaces65%

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

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

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

Глава «Классическое машинное обучение» последний раз правилась . Нашли ошибку — напишите.