机器学习中如何处理样本不均衡问题

问题所在:可以永远预测数据多的一方,准确率accuracy仍然会很高。

假定样本数目A类比B类多,且严重不平衡:

1. A类欠采样(Undersampling)

1)随机欠采样

2)A类分成若干子类,分别与B类进入ML模型

3)基于聚类的A类分割

2. B类过采样(Oversampling)

可以避免欠采样造成信息丢失,但是随机过采样采取简单复制样本的策略来增加少数类样本,这样容易产生模型过拟合的问题,即使得模型学习到的信息过于特别而不够泛化

3. B类数据合成

1)随机插值得到新样本

2)SMOTE算法

4. 代价敏感学习

降低A类权值,提高B类权值

其他方法:

1、想办法获取更多数据(增加包含B类样本数据的数据,更多的数据能得到更多的分布信息)

2、换个评判方式(不再用准确率或误差来衡量,而是通过precision和recall计算出F1-score)

3、重组数据(重新组合不均衡数据使之均衡,最终使两者或多者的数据差不多,即最上面的方法)

4、使用其他机器学习方法(神经网络面对不均衡数据时束手无策,但决策树不会受到不均衡数据的影响)

5、转化问题思考角度(例如在分类问题时,把B类的样本作为异常点,将问题转化为异常点检测或变化趋势检测问题。异常点检测即是对那些罕见事件进行识别,变化趋势检测区别于异常点检测在于其通过检测不寻常的变化趋势来识别)

你可能感兴趣的:(机器学习)