目录

样本失衡问题

目录

问题

在机器学习中,我们经常碰到一些样本比例分布不均衡的情况,例如考公上岸比例就达到了100:1. 针对这种正负样本严重失衡的模型,如何做出一些应对处理就显得很重要

采样—让样本均衡

既然样本失衡了,那么久通过欠采样,或者过采样来均衡一下样本。

这个办法不是万能的

修改损失函数

loss损失函数可以修改各类别的损失函数权重

其他

以上办法不是万能的,例如图神经网络中,采样法效果就不是很好。

关于指标选取

既然样本比例失衡了,我们在训练中如何选取最好的模型的指标就需要灵活变化。

如果一味的选取准确率,那么如果样本失衡严重,样本整体的准确率依然会很高,但是这很有可能是样本什么都没学到,全部分为了一类。

先科普RUC曲线与AUC值

1
2
   ROC的全名叫做Receiver Operating Characteristic,中文名字叫“受试者工作特征曲线”,其主要分析工具是一个画在二维平面上的曲线——ROC 曲线。平面的横坐标是false positive rate(FPR),纵坐标是true positive rate(TPR)。对某个分类器而言,我们可以根据其在测试样本上的表现得到一个TPR和FPR点对。这样,此分类器就可以映射成ROC平面上的一个点。调整这个分类器分类时候使用的阈值,我们就可以得到一个经过(0, 0),(1, 1)的曲线,这就是此分类器的ROC曲线。
     一般情况下,这个曲线都应该处于(0, 0)和(1, 1)连线的上方。因为(0, 0)和(1, 1)连线形成的ROC曲线实际上代表的是一个随机分类器。如果很不幸,你得到一个位于此直线下方的分类器的话,一个直观的补救办法就是把所有的预测结果反向,即:分类器输出结果为正类,则最终分类的结果为负类,反之,则为正类。虽然,用ROC 曲线来表示分类器的性能很直观好用。可是,人们总是希望能有一个数值来标志分类器的好坏。于是Area Under roc Curve(AUC)就出现了。顾名思义,AUC的值就是处于ROC 曲线下方的那部分面积的大小。通常,AUC的值介于0.5到1.0之间,较大的AUC代表了较好的性能。AUC(Area Under roc Curve)是一种用来度量分类模型好坏的一个标准。

https://raw.githubusercontent.com/kengerlwl/kengerlwl.github.io/refs/heads/master/image/0277f6d2ba1fc17e277b915ebf0a5632/660331130d8ea94640458d630d19eff9.png

Area Under roc Curve(AUC):顾名思义,AUC的值就是处于ROC 曲线下方的那部分面积的大小。

ROC曲线有个很好的特性:当测试集中的正负样本的分布变化的时候,ROC曲线能够保持不变。在面对正负样本数量不均衡的场景下,ROC曲线(AUC的值)会是一个更加稳定能反映模型好坏的指标。

ref

https://zhuanlan.zhihu.com/p/354853593