2

Я извлекаю функции изображения из 10 классов по 1000 изображений. Поскольку есть 50 функций, которые я могу извлечь, я думаю о том, чтобы найти лучшую комбинацию функций для использования здесь. Обучение, проверка и тестовые наборы разделены следующим образом:kNN: обучение, тестирование и проверка

Training set = 70% 
Validation set = 15% 
Test set = 15% 

Я использую прямой выбор функций на проверке набора, чтобы найти наилучшее сочетание функций и, наконец, использовать тестовый набор для проверки общей точности. Может кто-нибудь, пожалуйста, скажите мне, правильно ли я делаю это?

ответ

8

Так Knn является исключением для общего процесса для строительства/тестирование под контролем моделей машинного обучения. В частности, модель, созданная с помощью kNN, представляет собой только доступные помеченные данные, помещенные в некоторое метрическое пространство.

Другими словами, для kNN, нет тренировочного этапа, потому что нет модели для сборки. Соответствие шаблона & Интерполяция - это все, что происходит в kNN.

Также не существует этапа валидации. Валидация измеряет точность модели против данных обучения в зависимости от количества итераций (прогресс обучения). Оверфитинг подтверждается восходящим движением этой эмпирической кривой и указывает точку, в которой обучение должно прекратиться. Другими словами, поскольку никакая модель не построена, нечего утверждать.

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

Но даже тестирование немного отличается для kNN по сравнению с другими контролируемыми методами машинного обучения. В частности, для kNN качество прогнозов, конечно, зависит от количества данных или, точнее, от плотности (количества точек на единицу объема), т. Е. Если вы собираетесь прогнозировать нечеткие значения, усредняя 2-3 ближайших к нему точек, то это помогает, если у вас есть точки, близкие к тем, которые вы хотите предсказать. Поэтому сохранить размер тестового набора небольшим, или еще лучше использовать кросс-валидацию k-fold или перекрестное валидство, которое дает вам более тщательное тестирование модели, но не ценой сокращения размер вашего соседнего населения kNN.

+2

, но поскольку мне нужно найти лучшую комбинацию функций, я не должен выполнять этот поиск в наборе валидации, а затем, наконец, проверить выбранные наилучшие функции с помощью тестового теста – klijo

+2

, если я запустил лучший алгоритм выбора функций на тестовом наборе и то получите окончательную точность, разве это не приведет к тому, что комбинация функций будет смещена в сторону тестового набора? – klijo

+1

@klijo каноническое описание kNN не включает алгоритм выбора функции или что-то в этом роде. Кроме того, я не понимаю вопроса ни в одном из ваших комментариев, но я уверен, что они не имеют ничего общего с kNN. – doug

Смежные вопросы