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