我目前正在使用Matlab的k最近邻分类器(knnclassify)来训练和测试二进制属性。如果没有提供k,则k的默认值参数为1,并且可以选择k的其他值。我已经在线进行了研究并在stackoverflow上进行了研究,但没有任何相关内容可以解决我的问题,即k的最佳用途是什么。是否有内置函数可以告诉我,对于我的特定数据,还是只是猜测并等待看到的精度是什么?任何帮助将不胜感激。
以下是matlab的knnclassify文档的链接:knnclassify
答案 0 :(得分:5)
这里有一个典型的模型选择问题。您想要的是选择k
,它可以为您提供最低的数据总体错误。较大的k值更好地概括,较小的值可能倾向于过度拟合。
因此,交叉验证是选择此参数的好方法,我找到了this article,这似乎是一种合理的方法。