机器学习之样本不平衡
1.样本不平衡导致什么问题?
在机器学习的分类问题中,以二分类为例,如果训练集合的正例和负例的样本不平衡,相差悬殊很大。比如针对这个不平衡的训练结合运用逻辑回归的时候,一般来说,逻辑回归的阈值0~1,常取0.5,当样本不平衡时,采用默认的分类阈值可能会导致输出全部为反例,产生虚假的高准确度,导致分类失败。
样本不均衡会导致:对比例大的样本造成过拟合,也就是说预测偏向样本数较多的分类。
2.样本不平衡的解决方法?
样本不平衡的解决方法主要有两个思路,一个是改变模型,让其对较少的类别较敏感,增大样本数较少类别的样本的权重,当这样的样本被误分时,其损失值要乘上相应的权重,从而让分类器更加关注这一类数目较少的样本。比如逻辑回归,可以调整阈值,让其对少的类更敏感。二是改变训练集合,用过采样(over sampling,如SMOTE等)和欠采样(under sampling)的方式调整训练集的平衡。
1.过采样, 重复挑选少的类别加入构建训练集。样本较少时采用。
2.欠采样,抛去多余的多的类别的样本。样本较多的时候采用。
-
过采样(右上)只是单纯的重复了正例,因此会过分强调已有的正例。如果其中部分点标记错误或者是噪音,那么错误也容易被成倍的放大。因此最大的风险就是对正例过拟合。
-
欠采样(左下)抛弃了大部分反例数据,从而弱化了中间部分反例的影响,可能会造成偏差很大的模型。同时,数据总是宝贵的,抛弃数据是很奢侈的。
正例被反复使用,和过采样一样,很容易造成模型的过拟合。 -
SMOTE与一般的过采样不用,不是简单的重复类别少的例,而是生成一些新的数据。这大大降低了过拟合的风险,但同时也会产生一些“可疑”的点。
所以,总结一下缓解样本不平衡的采样方法: