为什么在 KNN 算法中测试错误率在高 K 值时增加?



我得到这样的错误率高达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.002000000000000018, 0.0020000000000000018, 0.0020000000000000018, 0.0.0.0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000018,0.0020000000000000018, 0.002000000000000018, 0.006000000000000005, 0.0040000000000000036, 0.00800000000000007,0.00600000000000005, 0.010000000000000009, 0.008000000000000007, 0.0140000000000000012, 0.0120000000000000001] 这些是我的测试错误率

我想知道错误率随着 k 值的增加而增加的原因?

KNN 中的参数 K 控制模型的复杂性。您没有提供具体问题的详细信息,但您可能会看到偏差/方差权衡。这篇文章是一个很好的阅读。

通常,您在验证集中尝试模型中不同值的超参数值(KNN 中的 K 值(,并保留最佳值。请注意,此验证集与测试集不同。

KNN 中的 K 代表考虑的最近邻数。因此,考虑的邻居越多,距离越远的邻居对最终结果产生影响。虽然随着更多的邻居被占用,更多不同类别的元素也被采用,这是有道理的。这可能会导致分类错误,尤其是对于聚类边界上的元素。

另一个要考虑的例子是两个不平衡的集群 - 一个集群有 5 个元素,第二个集群有 20 个元素。当 K=10 时,第一个聚类中的所有元素都将被归类为第二个聚类。另一方面,如果聚类很好地分离,K=3 将产生更好的结果。

结果的确切原因将取决于您拥有的聚类数量、其放置、密度和基数。

K 值越高,数据集中的多数类对结果的结果有更大的发言权,所以错误率增加

假设有 100 个数据点,假设 80 个属于类标签"0",20 个属于类标签"1">

现在,如果我选择k>40的任何值,所有的数据点现在都属于多数类

通常,K的值大会导致欠拟合,同时K的值非常小(尽管特定于问题(会导致过度拟合

最新更新