如何在matlab中确定矩阵的k近邻算法的k值

时间:2013-08-07 18:25:44

标签: matlab knn

如果我们有一个6行和10列的矩阵,我们必须确定k值。如果我们假设默认k值是5,如果我们的列少于5且行数相同6,我们可以假设columns = k值是否正确?即rows = 6 cols = 4则k = col-1 => K = 3

3 个答案:

答案 0 :(得分:6)

k = n ^(1/2)

其中n是实例数,不是功能。 reference 1reference 2

答案 1 :(得分:2)

检查此问题value of k in k nearest neighbour algorithm

与前一个相同。通常,经验法则是特征数量的平方根

k=n^(1/2)

其中n是要素的数量。在你的情况下,10的平方根大约是3,所以答案应该是3。

答案 2 :(得分:0)

k = sqrt(n)对于各种数据集都不具有最佳结果。一些数据集,其结果非常糟糕。例如,一篇针对90的paper link的论文说,k的最佳结果在5-10 bu sqrt(n)之间,得出的结果为17。另一些论文则提出了一些有趣的建议,例如局部k值或加权k。 />
显而易见,选择k并非易事。这没有一个简单的公式,取决于我们的数据集。选择最佳k的最佳方法是计算最适合我们的数据集的k的准确性。通常,如果我们的数据集越来越大,则最佳k值也会增加。