matlab中矩阵k近邻算法k值的确定
如果我们有一个6行10列的矩阵,我们必须确定k值。如果我们假设默认k值为5,如果我们的列数小于5,行数相同6,我们可以假设列数=k值吗?即行数=6列=4,那么k=列-1=>k=3检查这个问题 和前一个一样。通常,经验法则是特征数的平方根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-
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等中的公式,那么这意味着功能的数量。谢谢:)我现在明白了!