Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
matlab中矩阵k近邻算法k值的确定_Matlab_Knn - Fatal编程技术网

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

matlab中矩阵k近邻算法k值的确定,matlab,knn,Matlab,Knn,如果我们有一个6行10列的矩阵,我们必须确定k值。如果我们假设默认k值为5,如果我们的列数小于5,行数相同6,我们可以假设列数=k值吗?即行数=6列=4,那么k=列-1=>k=3检查这个问题 和前一个一样。通常,经验法则是特征数的平方根 k=n^(1/2) 其中n是特征的数量。在你的例子中,10的平方根大约是3,所以答案应该是3。k=n^(1/2) 其中n是实例数和非特征数 k=sqrt(n)对于不同的数据集没有最佳结果。有些数据集,其结果相当糟糕。例如,90年代的一篇论文说k的最佳结果是5-

如果我们有一个6行10列的矩阵,我们必须确定k值。如果我们假设默认k值为5,如果我们的列数小于5,行数相同6,我们可以假设列数=k值吗?即行数=6列=4,那么k=列-1=>k=3检查这个问题

和前一个一样。通常,经验法则是特征数的平方根

k=n^(1/2)
其中n是特征的数量。在你的例子中,10的平方根大约是3,所以答案应该是3。

k=n^(1/2)


其中n是实例数和特征数

k=sqrt(n)对于不同的数据集没有最佳结果。有些数据集,其结果相当糟糕。例如,90年代的一篇论文说k的最佳结果是5-10 bu sqrt(n)给我们17。其他一些论文提出了一些有趣的建议,如局部k值或加权k。显然,选择k并不容易。这不是一个简单的公式,取决于我们的数据集。选择最佳k的最佳方法是计算哪个k最适合我们的数据集。一般来说,如果我们的数据集越来越大,最优k值也在增加

我了解到N不是特征的数量,而是公式中记录的数量。解释?@Zimano:如果我理解正确,公式中记录的数量就是样本数。它不能是样本数,因为机器学习算法“应该”独立于样本数。如果你指的是类标签~feature1+feature2等中的公式,那么这意味着功能的数量。谢谢:)我现在明白了!