关于 Knn 和拆分验证的问题

数据挖掘 分类 数据挖掘 数据集 k-nn
2022-02-16 07:06:44

我有一个包含 40k 记录和 2 个分类类别的大型数据库。在这个大数据库中,76% 的记录属于第一类。

我使用了带有分层抽样的 70-30 分割分区,并且 K-nn 在 k = 20 时给出了最佳精度。

1) k 的值是否太大?

2) 即使我使用分层抽样,k 的这个大值是否可能是由于数据库中 2 个类的不成比例造成的?

1个回答

在 k-NN 中通常有一个交易:

  1. k 应该足够大以消除任何噪音。

  2. k 不应该太大而不能创建大的有偏边界。

一个经验法则是选择一个奇数 k 值以避免二元类问题中的联系。k 的大小取决于数据集本身的底层结构,这就是我们检查一系列 k 值的原因。如果在交叉验证方面做得很好,上述两个问题都会得到解决。所以你需要关注的最重要的问题是:

您是否为模型选择选择了正确的指标,并考虑了类的不平衡?

我建议您首先确定对您正确预测更重要的类。然后,在最终确定模型/k 值之前,查看混淆矩阵并考虑不同的指标(例如召回率、精度等)。