当我在Scikit学习中阅读决策树时,我发现:
在训练前平衡数据集,以防止树偏向于占主导地位的类。类平衡可以通过从每个类中抽取相同数量的样本来实现,或者最好通过将每个类的样本权重(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
但我似乎没有采取任何措施来平衡不平衡的数据。
哪一种方式更好,第二种方式在科学知识学习中的意义是什么?有人能帮我澄清一下吗?
发布于 2016-08-24 11:13:33
有许多方法可以平衡数据集:
weight*number of observations对于代表不足和表示过高的组都是相等的。https://stackoverflow.com/questions/39117675
复制相似问题