Выбор k для KNN в Matlab

В настоящее время я использую классификатор k ближайших соседей Matlab (knnclassify) для обучения и тестирования двоичных атрибутов. Аргумент значения по умолчанию для k, если он не указан, равен 1, и можно выбрать другие значения k. Я провел исследование в Интернете и в stackoverflow, но не нашел ничего подходящего для ответа на мой вопрос о том, какое значение k было бы лучше всего использовать. Есть ли встроенная функция, которая может сказать мне это для моих конкретных данных, или это просто предположение и ожидание, чтобы увидеть, какая точность получена? Любая помощь будет оценена.

Вот ссылка на документацию Matlab по knnclassify: knnclassify


person Luciano Rodriguez    schedule 20.02.2013    source источник


Ответы (1)


У вас здесь типичная проблема выбора модели. Что вам нужно, так это выбрать k, который дает вам наименьшую общую ошибку в ваших данных. Большие значения k обобщают лучше, а меньшие значения могут привести к переобучению.

Следовательно, перекрестная проверка — хороший способ выбрать этот параметр, и я нашел эту статью, что кажется разумным методом.

person Andrew Mao    schedule 20.02.2013
comment
Хорошая статья, просто жаль, что долгое время перебор различных значений k может занять много времени. Но, как вы сказали, это разумный метод. - person Luciano Rodriguez; 20.02.2013
comment
Также ознакомьтесь с графиками силуэтов en.wikipedia.org/wiki/Silhouette_(clustering) - person Dan; 20.02.2013