scikit Learn中的样本权重和班级权重选项有什么区别?
我遇到班级不平衡的问题,想使用成本敏感型学习解决此问题。
- 样本不足和样本过多
- 给权重使用修改的损失函数
题
Scikit
learning有2个选项,分别称为类权重和样本权重。样本权重实际上是在执行选项2),还是在类别权重选项1)。选项2)是处理类不平衡的推荐方法。
-
这是类似的概念,但是使用sample_weights可以强制估计器对某些样本给予更多的关注,而使用class_weights可以强制估计器对某些特定类的学习。sample_weight
= 0或class_weight = 0基本上意味着估计器在学习过程中根本不需要考虑此类样本/类。因此,例如,如果此类的class_weight =
0,则分类器将永远不会预测某个类别。如果某些sample_weight / class_weight大于其他样本/类的sample_weight /
class_weight-估计器将首先尝试最小化该样本/类的错误。您可以同时使用用户定义的sample_weights和class_weights。如果您想通过简单的克隆/删除来对训练集进行欠采样/过采样-这等于增加/减少相应的sample_weights / class_weights。
在更复杂的情况下,您还可以尝试使用SMOTE之类的技术人工生成样本。