通常情况下通常情况下把多数类样本的比例接近100:1这种情况下的数据称为不平衡数据。不平衡数据的学习即需要在分布不均匀的数据集中学习到有用的信息。
1、从数据的角度出发,主要方法为采样,分为欠采样和过采样以及对应的一些改进方法。
2、从算法的角度出发,考虑不同误分类情况代价的差异性对算法进行优化,主要是基于代价敏感学习算法(Cost-Sensitive Learning),代表的算法有adacost;
特殊情况,将不平衡数据集的问题考虑为一分类(One Class Learning)或者异常检测(Novelty Detection)问题,代表的算法有One-class SVM。
参考:https://www.cnblogs.com/kamekin/p/9824294.html【主要介绍从数据角度出发的不平衡数据集的处理方法以及对应的python库(imblearn)】
其他分类方法:https://www.zhihu.com/question/40771695
参考:
https://blog.csdn.net/zk_ken/article/details/82013965
一分类(One Class Learning)或异常检测(Novelty Detection)。
对于正负样本极不平衡的场景,我们可以换一个完全不同的角度来看待问题:把它看做一分类(One Class Learning)或异常检测(Novelty Detection)问题。这类方法的重点不在于捕捉类间的差别,而是为其中一类进行建模,经典算法One-class SVM。调整SVM以惩罚稀有类别的错误分类。
3中,1000:1的比例,算不算极端不平衡?
应该属于上采样(过采样)吧?
读:《深度学习用于天文图像空间碎片和恒星分类》
在本文所用的数据集中存在很严重的不平衡数据集现象,用于训练卷积神经网络的两类样本集分别是星象的样本和空间碎片的样本的比例大约是 1000:1。为了达到抑制不平衡数据集,本文采用的放回抽取的策略。
首先,两个样本池中分别放有所有的样本,然后从两个样本池分别有放回的抽取同样数量的样本,最后把所有样本打乱顺序放入训练集中。
有放回的抽取不可避免的会造成弱势数据重复增多,但打乱所有数据顺序则可以抑制过拟合问题,目前机器学习大部分训练采用的也是打乱训练数据集的策略。
【没明白作者到底怎么操作?为什么分两个样本池?打乱顺序有意义吗?照样过拟合吧?】
集成学习,经典算法XGBoot。
XGBoot原理:https://www.jianshu.com/p/a62f4dce3ce8
原文:https://www.cnblogs.com/sybil-hxl/p/13325278.html