Brute force
Полный перебор всех объектов. Прост в реализации и часто эффективен на небольших наборах данных.
Экспериментальное сравнение brute force, KD-tree и Ball-tree в задаче классификации на наборе данных Breast Cancer.
Метод k ближайших соседей относится к алгоритмам машинного обучения с учителем. Для нового объекта алгоритм находит k наиболее близких объектов обучающей выборки и определяет класс по большинству голосов.
Главная вычислительная проблема kNN возникает на этапе предсказания: необходимо искать ближайшие объекты среди всей обучающей выборки.
Полный перебор всех объектов. Прост в реализации и часто эффективен на небольших наборах данных.
Древовидная структура, разделяющая пространство признаков. Может ускорять поиск при умеренной размерности.
Иерархически группирует объекты в области пространства. Подходит для разных метрик расстояния.
Поскольку kNN основан на расстояниях, признаки необходимо привести к сопоставимому масштабу. В работе использовалась стандартизация:
| k | Brute, мс | Ball-tree, мс | KD-tree, мс | Accuracy | F1 |
|---|---|---|---|---|---|
| 1 | 5.878555 | 6.037340 | 6.260570 | 0.959064 | 0.967136 |
| 5 | 5.299840 | 6.176430 | 6.839890 | 0.959064 | 0.968326 |
| 15 | 5.218685 | 6.586120 | 7.197855 | 0.959064 | 0.968326 |
| 25 | 5.505515 | 6.696930 | 7.601640 | 0.947368 | 0.959641 |
Поиск ближайших соседей применяется не только в классическом kNN, но и в рекомендательных системах, векторных базах данных, retrieval-системах и RAG-подходах.