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