Jump to content
Compvision.ru
Tlya

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

Recommended Posts

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

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

Share this post


Link to post
Share on other sites

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

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

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

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

 

 

Share this post


Link to post
Share on other sites
4 hours ago, idrua said:

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

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

Share this post


Link to post
Share on other sites
1 час назад, Nuzhny сказал:

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

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now


  • Recently Browsing   0 members

    No registered users viewing this page.

×