Это действительно общий вопрос об алгоритме KNN, который, надеюсь, вы поможете мне понять.
Я использую алгоритм knn в классе библиотеки в R:
knn <- knn (поезд = X_train, тест = X_test, cl = train_Y, k = 3)
При запуске алгоритма KNN для классификации рукописных цифр от 0 до 9 (каждое наблюдение представляет собой текстовый файл с 1024 нулями и единицами, создающими изображение числа). Итак, это набор данных с 1024 переменными, каждая из которых может иметь значение 0 или 1.
Я могу запустить алгоритм и получаю очень хорошие результаты с K = 3 (что-то разумное). Однако, когда я просматриваю различные значения K в поисках оптимального значения, бывает, что оптимальные значения K равны либо 1, либо 3, затем оно постепенно уменьшается.
Что мне кажется странным, так это тот факт, что K = 1 может быть оптимальным значением, поскольку я не считаю разумным, чтобы оптимальным значением было рассмотрение только ближайшей точки.
Вы можете мне помочь в этом вопросе? Может быть, из-за аргумента use.all = TRUE?
Это интересно. С use.all = FALSE я получаю немного худший результат, но опять же k = 1 и k = 3 являются наиболее точными. Я получаю наилучшие результаты, когда use.all = TRUE. А если ничего не поставить, то получу немного другой результат, между ИСТИНА и ЛОЖЬ. Я пробовал много раз (так как результаты могут отличаться при использовании use.all = FALSE)





«Может быть, это из-за аргумента use.all = TRUE?», - вы пробовали использовать
FALSEи вдохновили вас задать этот вопрос?