Перейти к содержимому
Compvision.ru
Tlya

Для чего нужен поиск соседей (K-Nearest Neighbors)

Recommended Posts

Здравствуйте!

Можете для новичка объяснить на пальцах (простом примере) для чего можно (и нужно) применить алгоритм поиска ближайших соседей?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Нужен именно алгоритм? Вообще, это один из популярных классификаторов в области ML (обучение с учителем). И с ним можно решать абсолютно любые задачи классификации/регресии. От сортов ириса до более сложных (прогнозирование курса биткоинта ).

Для чего нужен? Лично я его использую в двух случаях.

При построение ансамблей моделей. Это когда есть до десятка простых моделей (knn — это простая модель, если что) и все они имеют низкую точность прогнозирования. А все вместе они существенно повышают качество прогнозирования. Т.е. если из 10 простых моделей 7 моделей голосуют за класс1, то это действительно  класс1. Что-то типа мудрости толпы.

Для заполнения пропущенных значений. Предположим есть датасет с пропусками (часть данных не указана). Можно заполнить средними значениями, что иногда не совсем правильно. А можно заполнить очень близкими значениями из соседей. Т.е. ищем ближайшего соседа на основании тех данных что есть. Как нашли заполняем пропуски данными из ближайшего соседа.

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
4 hours ago, idrua said:

Предположим есть датасет с пропусками (часть данных не указана). Можно заполнить средними значениями, что иногда не совсем правильно.

Правильней заполнять не средним, а медианой. Например, есть чёрный и белый цвет. Заполнить средним - серым будет совсем не правильно, а медианой (какого цвета больше) точнее.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
1 час назад, Nuzhny сказал:

Правильней заполнять не средним, а медианой. Например, есть чёрный и белый цвет. Заполнить средним - серым будет совсем не правильно, а медианой (какого цвета больше) точнее.

Согласен, если выборка упорядочена по значениям и их немного. А если нет?
Для выборки 3, 5, 5, 27, 114, 115, 1037 медиана будет числом 5. Если вместо пустоты заполнять 5, то результат будет не очень. Вот поэтому иногда и смотрят на другие фичи. Определяют ближайшего соседа по ним (кластеризацией или классификацией) и берут пустые данные из соседей.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Я полностью согласен на счёт ближайших соседей. С моей стороны была ремарка по поводу среднего значения, которое очень часто не подходит никак. Медиану же можно считать не абсолютно точно (для float-point такое вообще невозможно), а как среднее значение в небольшом окне. Грубо говоря, построить гистограмму, где бины идут с некоторой шириной (погрешность), взять максимум. Тоже не для всех случаев подходит, но почти всегда лучше среднего.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте учётную запись или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать учётную запись

Зарегистрируйтесь для создания учётной записи. Это просто!

Зарегистрировать учётную запись

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас


  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу

×