k ближайших соседей
Класс новой точки — голосование k ближайших: «скажи, кто твои соседи».
1function knn(pts: Array<[x: number, y: number, c: 0 | 1]>, q: [number, number], k: number): 0 | 1 {2 const ranked = pts3 .map((p) => ({ c: p[2], d: Math.hypot(p[0] - q[0], p[1] - q[1]) }))4 .sort((a, b) => a.d - b.d)5 .slice(0, k)6 7 const votes = ranked.filter((r) => r.c === 0).length8 return votes > k / 2 ? 0 : 1 // большинство9}Проблема
Класс новой точки — голосование k ближайших: «скажи, кто твои соседи».
Что вы видите
Все точки с расстояниями; топ-k голосуют классами A или B.
Как это работает
Ленивое обучение: никакого тренировочного этапа, только память + метрика. k маленькое — шум, большое — огрубление. Выбор метрики и k решает всё.
Пошаговый разбор
- 01
Расстояния
От точки до всех.
- 02
Топ-k
Ближайшие соседи.
- 03
Голосование
Большинство решает.
Complexity и ограничения
Сложность см. в шапке страницы.
Edge cases
- Пустой вход
Корректная тривиальная обработка.
- Вырожденный случай
Минимум работы — сразу ответ.
Где встречается в реальности
Рекомендации
Похожие товары и фильмы.
Кредитный скоринг
Профили заёмщиков.
Распознавание
Базовый классификатор признаков.
Связанные алгоритмы
«Классификация без обучения: kNN»
Тот же сценарий StepSequence в вертикальной композиции — с safe zones и записью WebM ниже на странице.
Shorts 9:16
Вертикальная композиция строится той же последовательностью шагов, что и страница: safe zones отмечены пунктиром (там живёт UI платформ), биты сценария подсвечиваются по прогрессу. Кнопка записи сохраняет WebM — детерминированная StepSequence даёт воспроизводимый ролик без монтажа.