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

时间:2012-04-04 10:03:43

标签: algorithm machine-learning data-mining classification knn

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

我可以采取这种情况吗?

          class1   class2  class3
samples    400      500     300

或者所有类都应该有相同的样本量吗?

2 个答案:

答案 0 :(得分:7)

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

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

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

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

donut-bad

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

enter image description here

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

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

答案 1 :(得分:-1)

k最近邻法不依赖于样本大小。您可以使用示例样本大小。例如,请参阅K -D99数据集中的following paper与k-最近邻居。与您的示例数据集相比,KDD99是非常不平衡的数据集。