当我阅读 Scikit learn 中的决策树时,我发现:
在训练之前平衡你的数据集,以防止树偏向于占主导地位的类。类平衡可以通过从每个类中采样相同数量的样本来完成,或者最好通过将每个类的样本权重(sample_weight)之和归一化为相同的值来完成。
在链接中:http ://scikit-learn.org/stable/modules/tree.html
我很困惑。
(1)
类平衡可以通过从每个类中采样相等数量的样本来完成
如果我这样做,我应该为每个类中的每个样本添加适当的样本权重(或添加类样本......)。
例如,如果我有两个类:A 和 B 的样本数
A:100 B:10000
我可以为每个输入 10000 个样本并设置权重:
A的输入样本:10000,B的输入样本:10000
A的重量:0.01,B的重量:1.0
(2)
但它还是说:
最好通过将每个类的样本权重之和 (sample_weight) 归一化为相同的值
我完全被它弄糊涂了。这是否意味着我应该输入 100 个 A 样本和 10000 个 B 样本然后设置权重:
A的输入样本:100,B的输入样本:10000
A的重量:1.0,B的重量:1.0
但似乎我没有采取任何措施来平衡不平衡的数据。
哪种方式更好,Scikit学习中第二种方式的含义是什么?谁能帮我澄清一下?