我得到的错误率高达20个值,这可能是什么原因? k_values:[1、2、3、4、5、6、7、8、9、10、11、12、13、14、15、16、17、18、19、20] 错误[0.0、0.0、0.0、0.0、0.0、0.0、0.0020000000000000018、0.0020000000000000018、0.0020000000000000018、0.0020000000000000018、0.0020000000000000018、0.0020000000000000018、0.006000000000000005、0.0040000000000000036、0.008000000000000007、0.006000000000000005、0.010000000000000009、0.008000000000000007、0.014000000000000012、0.01200000000000001 这是我的测试错误率
我想知道错误率随k值增加而增加的原因吗?
答案 0 :(得分:0)
KNN中的参数K控制模型的复杂性。您没有提供具体问题的详细信息,但是您可能会看到的是偏差/方差的权衡。 This post是一本不错的书。
通常,在验证集中尝试从模型中尝试不同的超级参数值(KNN中的K值),并保持最佳值。请注意,此验证集与测试集不同。
答案 1 :(得分:0)
K代表所考虑的最近邻居的数量。因此,考虑的邻居越多,距离越远对最终结果的影响。尽管选择了更多的邻居,但也选择了更多不同类别的元素,这是有道理的。这可能导致分类错误,尤其是对于簇边界上的元素。
要考虑的另一个示例是两个不平衡的群集-一个群集具有5个元素,第二个群集具有20个元素。当K = 10时,第一个群集中的所有元素都将归为第二个。另一方面,如果群集被很好地分离,则K = 3将产生更好的结果。
结果的确切原因将取决于您拥有的簇数,它们的位置,密度和基数。
答案 2 :(得分:0)
K值越高,结果越多,数据集中的多数类对结果有更大的发言权,因此错误率增加
让我们说有100个数据点,假设80个属于类标签“ 0”,而20个属于类标签“ 1”
现在,如果我选择k> 40的任何值,则所有数据点现在将属于多数类
通常,K值较大会导致拟合不足,而K值很小(尽管因特定问题而定)会导致拟合过度