问题所在:可以永远预测数据多的一方,准确率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、想办法获取更多数据
2、换个评判方式(不再用准确率或误差来衡量,而是通过precision和recall计算出F1-score)
3、重组数据(重新组合不均衡数据使之均衡,最终使两者或多者的数据差不多,即最上面的方法)
4、使用其他机器学习方法(神经网络面对不均衡数据时束手无策,但决策树不会受到不均衡数据的影响)
5、修改算法