定义
分类问题中,不同类别之间样本数量量级差距较大,称为数据不平衡问题
解决方案
确认是否符合真实样本分布
不符合的话,补充数据或调整样本权重,但业务先验分布也可能很难得到
调整数据分布
-
主动获取:获取更多的少量样本数据
-
欠采样:从多数类中抽取
- 明显的改变数据分布,会损失很多样本信息
-
过采样:复制少数类中的一些点
- 明显的改变数据分布,重复使用数据,容易导致过拟合
- 可以考虑复制时加入噪声
-
数据合成:从少数类创建新的合成点
- SMOTE算法
-
代价敏感:修改损失函数,对不同类别样本的错分施加不同的权重(少数类权重更大)
- 简单过采样实质也是改变损失函数
- scikit-learn逻辑回归:样本的真正权重是class_weight*sample_weight
- xgboost:scale_pos_weight参数表示正类样本权重
- lightGBM:is_unbalance参数为True时,算法将尝试自动平衡标签权重; scale_pos_weight参数
集成思想
每次生成训练集时使用少数类样本,同时从多数类中随机抽取数据来与小样本量合并构成训练集,这样反复多次会得到很多训练集和训练模型,最后投票得到分类预测结果。
如果计算资源充足,并且对于模型的时效性要求不高的话,这种方法比较合适。

数据不平衡问题在分类任务中常见,表现为不同类别样本数量差距悬殊。解决方法包括:确认样本分布是否符合实际,调整数据分布如过采样、欠采样和数据合成,采用代价敏感学习调整损失函数,利用集成思想构建多个模型,以及修正分类结果和考虑异常检测。评估时需关注少数类的Precision和Recall。
最低0.47元/天 解锁文章
5696

被折叠的 条评论
为什么被折叠?



