KNN算法中K是 咋决定的

上边说得都很好,我总结一下:靠经(xia)验(meng),也就是把这东西又变成一个art… 这其实也是knn之类被人诟病的一点。当然的确有一些思路,比如上边提到的各种。
■网友
可以试试用 Rough set来确定一个K
■网友
经验就是k=3,上限k=sqrt(n)
■网友
正好也遇到这个问题,看到research gate上也有人讨论,很有意思。先看你需要提取什么信息进行分析,K值到底取多少合适貌似没有定论。采用的方法各种,有人用Cross Validation,有人用贝叶斯,还有的用bootstrap,链接:https://www.researchgate.net/post/How_can_we_find_the_optimum_K_in_K-Nearest_Neighbor
■网友
已故的 Peter Hall 教授在这方面做过一些很重要的工作,比如以下两篇文章:
Hall, P., \u0026amp; Samworth, R. J. (2005). Properties of bagged nearest neighbour classifiers. Journal of the Royal Statistical Society: Series B (Statistical Methodology), 67(3), 363–379.
Hall, P., Park, B. U., \u0026amp; Samworth, R. J. (2008). Choice of neighbor order in nearest-neighbor classification. The Annals of Statistics, 36(5), 2135–2152.
这里简单说一下每篇文章的内容(符号和原文略有不同),具体还是要参考原文。
第一篇文章探讨的是 KNN算法中K是 咋决定的
-NN 分类器(classifier)。对于每一个测试样本点(testing data point), KNN算法中K是 咋决定的
-NN 用离它最近的训练样本点(testing data point)的类别(class label)作为对该测试样本点类别的预测。然而 KNN算法中K是 咋决定的
-NN 在样本量 KNN算法中K是 咋决定的
趋于无穷的时候是不具有一致性(consistency)的——也就是说 KNN算法中K是 咋决定的
-NN 的精度不会收敛到(理论上最优的)贝叶斯分类器(Bayes classifier)的精度。一般的改进方法是利用 bagging,也就是利用原始的训练数据集产生若干 bootstrap 样本(bootstrap resample),从每一个 bootstrap 数据集中训练出一个 KNN算法中K是 咋决定的
-NN 分类器,然后用这些分类器进行投票。Leo Breiman 告诉我们,一般来说对于不稳定的分类器(比如分类树以及这里的 KNN算法中K是 咋决定的
-NN),bagging 产生的集成分类器(aggregated classifier)比单个分类器的精度要高。然而 Hall \u0026amp; Samworth (2005) 指出,如果 bootstarp 样本的样本量过大,那么 bagging 产生的集成分类器仍然不具有一致性。这时候就需要做 subsampling,也就是 bootstrap 样本的样本量 KNN算法中K是 咋决定的
需要小于原始数据集的样本量 KNN算法中K是 咋决定的
。不仅如此,为了使得集成分类器具有一致性, KNN算法中K是 咋决定的
和 KNN算法中K是 咋决定的
必须要满足
当 KNN算法中K是 咋决定的
时,KNN算法中K是 咋决定的
且 KNN算法中K是 咋决定的

也就是说每一个 bootstrap 样本的样本量发散到无穷,但比例 KNN算法中K是 咋决定的
收敛到


推荐阅读