不平衡分类问题

TP:正确肯定——实际是正例,识别为正例

FN:错误否定(漏报)——实际是正例,却识别成了负例

FP:错误肯定(误报)——实际是负例,却识别成了正例

TN:正确否定——实际是负例,识别为负例

假设有10个人 8个好人和2个坏人
如果存在一个机器学习模型,遇到人就说好人,那么模型的预测结果将会是 好人, 好人, ......

利用准确率的计算方式 ACC = 8个好人预测正确/总共有10个人 = 0.8 得这个机器模型的预测准确率为80%
有没有感觉很奇怪,我猜硬币才只有50%正确率,怎么这个模型只说好人,准确率这么高的?
而且,这个模型是不是不能够识别坏人?

准确率是非常直观的度量指标,也是我们接触的最多的,不过在对付数据不平衡的问题下,准确率就难以反映真实情况。

准确率,在二分类任务中,因为总共只有好或者坏,所以 准确率 = 准确预测好人的能力 + 准确预测坏人的能力

不知道大家有没有发现,虽然不能够识别坏人,但是准确预测好人的能力这个可以拉分,只要好人多过坏人,那么我就可以保证我的预测能力大于50%,如果全是好人,那么我的准确率就100%。准确率就是这么被直接拉高了。因为在数据不平衡的情况下,预测好人的能力的占比可能大于一半,从而掩盖了预测坏人能力比较弱的事实。

这就是为什么在数据不平衡的情况下,准确率无法体现模型的真实水平。
不过还是有多人直接在数据不平衡下用准确率作为指标,在某些准确率高达95,96%的实验结果上,连样本数据都是不平横的。这样的准确率是无意义的。

其实原因有两个 1. 数据不平衡 2. 准确率不适合数据不平横的情况
--------------------- 原文:https://blog.csdn.net/qq_37695697/article/details/85069169 
 


以上图像为ROC曲线(receiver operatingcharacteristic curve):在不平衡数据分类中最常用的指标之一

正样本为少数类,负样本为多数类。

纵轴为召回率:正样本中有多少被识别为正样本了。

横轴为负样本中有多少被识别为正样本了

每个阈值的识别结果对应一个点(FPR,TPR),当阈值最大时,所有样本都被识别成正样本,对应于左下角的点(0,0),当阈值最小时,所有样本都被识别成负样本,对应于右上角的点(1,1),随着阈值从最大变化到最小,识别为正样本的可能性变大;随着阈值从最小变化到最大,将负样本识别为正样本的可能性变小;

ROC(Receiver Operating Characteristic)curve is recognized as the most rational choice for imbalanced data.

要生成一个ROC曲线,只需要真阳性率(TPR)和假阳性率(FPR)。TPR决定了一个分类器或者一个诊断测试在所有阳性样本中能正确区分的阳性案例的性能.而FPR是决定了在所有阴性的样本中有多少假阳性的判断. ROC曲线中分别将FPR和TPR定义为x和y轴,这样就描述了真阳性(获利)和假阳性(成本)之间的博弈.而TPR就可以定义为灵敏度,而FPR就定义为1-特异度,因此ROC曲线有时候也叫做灵敏度和1-特异度图像.每一个预测结果在ROC曲线中以一个点代表. 
有了ROC曲线后,可以引出AUC的含义:ROC曲线下的面积(越大越好,1为理想状态)
-------原文:https://blog.csdn.net/xyz1584172808/article/details/81839230 

我给出的答案是 AUC是指 随机给定一个正样本和一个负样本,分类器输出该正样本为正的那个概率值 比 分类器输出该负样本为正的那个概率值 要大的可能性。

如何计算AUC?

计算AUC时,推荐2个方法。

方法一:

在有M个正样本,N个负样本的数据集里。一共有M*N对样本(一对样本即,一个正样本与一个负样本)。统计这M*N对样本里,正样本的预测概率大于负样本的预测概率的个数。

,其中, 

 

 

这样说可能有点抽象,我举一个例子便能够明白。

 

 

IDlabelpro
A00.1
B00.4
C10.35
D10.8

假设有4条样本。2个正样本,2个负样本,那么M*N=4。即总共有4个样本对。分别是:

(D,B),(D,A),(C,B),(C,A)。

在(D,B)样本对中,正样本D预测的概率大于负样本B预测的概率(也就是D的得分比B高),记为1

同理,对于(C,B)。正样本C预测的概率小于负样本C预测的概率,记为0.

最后可以算得,总共有3个符合正样本得分高于负样本得分,故最后的AUC为 

在这个案例里,没有出现得分一致的情况,假如出现得分一致的时候,例如:

 

IDlabelpro
A00.1
B00.4
C10.4
D10.8


同样本是4个样本对,对于样本对(C,B)其I值为0.5。

最后的AUC为 

方法二:

另外一个方法就是利用下面的公式:

 

这个公式看起来有点吓人,首先解释一下每一个符号的意思:

公式的含义见: 公式解释

 

,代表第i条样本的序号。(概率得分从小到大排,排在第rank个位置)

分别是正样本的个数和负样本的个数

只把正样本的序号加起来。

 

同样本地,我们用上面的例子。

 

IDlabelpro
A00.1
B00.4
C10.35
D10.8

 将这个例子排序。按概率排序后得到:

 

IDlabelprorank
A00.11
C10.352
B00.43
D10.84


按照上面的公式,只把正样本的序号加起来也就是只把样本C,D的rank值加起来后减去一个常数项 

 

即: ,这个答案和我们上面所计算的是一样的。

 

这个时候,我们有个问题,假如出现得分一致的情况怎么办?下面举一个例子说明:

 

 

IDlabelpro
A10.8
B10.7
C00.5
D00.5
E10.5
F10.5
G00.3


在这个例子中,我们有4个取值概率为0.5,而且既有正样本也有负样本的情况。计算的时候,其实原则就是相等得分的rank取平均值。具体来说如下:

先排序:

IDlabelprorank
G00.31
F10.52
E10.53
D00.54
C00.55
B10.76
A10.87


这里需要注意的是:相等概率得分的样本,无论正负,谁在前,谁在后无所谓。

 

由于只考虑正样本的rank值:

对于正样本A,其rank值为7

对于正样本B,其rank值为6

对于正样本E,其rank值为(5+4+3+2)/4

对于正样本F,其rank值为(5+4+3+2)/4

 

最后我们得到:

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值