k最近邻分类器训练每个班级的样本量

kli*_*ijo 0 algorithm classification machine-learning data-mining knn

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

我可以采取这种情况吗?

          class1   class2  class3
samples    400      500     300
Run Code Online (Sandbox Code Playgroud)

或者所有类别的样本量是否相等?

Cha*_*guy 7

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

  • 训练数据的密度:每个班级的样本数量应大致相同.不需要准确,但我会说差距不超过10%.否则边界将非常模糊.
  • 整个训练集的大小:您需要在训练集中有足够的示例,以便您的模型可以推广到未知样本.
  • 噪音:KNN本质上对噪音非常敏感,因此您希望尽可能避免训练中的噪音.

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

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

甜甜圈坏

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

在此输入图像描述

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

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