这确实是有关KNN算法的一个普遍问题,希望您能够帮助我理解。
我在R的库类中使用knn算法:
knn <-knn(train = X_train,test = X_test,cl = train_Y,k = 3)
运行KNN算法以对0到9之间的手写数字进行分类时(每个观察结果都是一个1024个0和1的txt文件,用于创建数字图片)。因此,它是一个具有1024个变量的数据集,每个变量可以为0或1。
我能够运行该算法,并且在K = 3(某种程度上合理)的情况下我得到了很好的结果。但是,当我遍历不同的K值寻找最佳值时,碰巧最佳K值为1或3,然后它逐渐下降。
我觉得奇怪的是,K = 1可能是一个最佳值,因为我认为仅在最近的点看应该不是最佳值是不合理的。
您能帮我解决这个问题吗?可能是因为参数use.all = TRUE吗?