0

有人可以告诉我每个班级的训练样本量是否需要相等吗?

我可以接受这种情况吗?

          class1   class2  class3
samples    400      500     300

还是应该所有类都具有相同的样本量?

4

2 回答 2

7

KNN 结果基本上取决于 3 件事(N 的值除外):

  • 训练数据的密度:每个类的样本数量应该大致相同。不需要精确,但我想说不超过 10% 的差异。否则界限会很模糊。
  • 整个训练集的大小:你的训练集中需要有足够多的样本,这样你的模型才能泛化到未知样本。
  • 噪声:KNN 天生对噪声非常敏感,因此您希望尽可能避免训练集中的噪声。

考虑以下示例,您尝试在 2D 空间中学习类似甜甜圈的形状。

通过在您的训练数据中具有不同的密度(假设您在甜甜圈内部的训练样本比在外部的多),您的决策边界将如下所示:

甜甜圈坏

另一方面,如果您的类相对平衡,您将获得更精细的决策边界,该边界将接近甜甜圈的实际形状:

在此处输入图像描述

所以基本上,我建议尝试平衡你的数据集(只是以某种方式对其进行标准化),并考虑我上面提到的其他 2 个项目,你应该没问题。

如果您必须处理不平衡的训练数据,您还可以考虑使用 WKNN 算法(只是 KNN 的优化)为元素较少的类分配更强的权重。

于 2012-04-19T03:59:05.493 回答
-1

k 最近邻方法不依赖于样本大小。您可以使用示例样本大小。例如,请参阅以下关于具有 k-最近邻的 KDD99 数据集的论文。与您的示例数据集相比,KDD99是非常不平衡的数据集。

于 2012-04-17T11:09:13.130 回答