评价指标Precision Accuracy recall AUC

文章详细介绍了二分类问题中的关键指标,如精确率、召回率和AUC。精确率关注预测为正例的准确性,召回率衡量正例被正确预测的比例。AUC是ROC曲线下的面积,表示模型排序正负样本的能力,不受样本不平衡影响,且不依赖于特定阈值。文章强调了AUC在处理不平衡数据和排序问题中的优势。
摘要由CSDN通过智能技术生成

二分类情况中,分类结果称为正例和负例。

TP=真正例,TN=真负例,FP=假正例,FN=假负例 (按照预测值来声明)

1.Precision 精确率,是指预测为正例的样本中,有多少是预测正确的。即模型正确预测为正例的样本数量与预测为正例的总样本数量**的比例。关注的是模型预测为正例的准确性/正确率。

Precision=TP/(TP+FP)

2.Accuracy 准确率 ,是指模型在所有样本中预测正确(预测为正例)的比例,即模型预测正确的样本数量总样本数量的比例。准确率关注的是整体预测的准确性,能够反映模型的整体性能。

Accuracy = (TP+TN)/(TP+FP+TN+FN)=(TPR+TNR)/2

注意:当使用分类不平衡的数据集时,只有准确率并不能全面地评估模型分类情况。

例如:现在有100个样本,负例样本有95个,如果模型全把样本预测为负例样本,这样模型的准确率都有0.95,但是模型完全没有预测出正例样本。

召回率和精确率则可以很好地解决数据类别不平衡这一问题。

3.召回率Recall=TPR

TPR:真正例率/召回率,指所有正例样本中,有多少被正确预测为正例。 TPR=TP/(TP+FN)

TNR:真负例率 TNR = TN/(FP+TN)所有负例样本中,有多少是真正被预测为负例的。

FPR:假正例率/误报率 FPR = FP/(FP+TN)所有负例样本中,有多少是预测为正例的。

FNR:假负例率/漏保率 FNR=FN/(FN+TP)所有正例样本中,有多少是被预测为负例的。

TPR越大,即在挑选过程中挑选的样本越可能是正例的。

FPR越大,在挑选过程中挑选的样本越认为挑的是正例,越可能挑的是负例。

注意:召回率这四个公式原则就是以样本的实际值所在列做分母,衡量每项在实际值中(正例or负例)的占比。

精确率是以样本的预测值所在列做分母,衡量真正例占预测为正例的比重。

下图为上述评价指标间的关系:

4.AUC(Area under curve)是机器学习中常用的二分类方法。是指ROC曲线下的面积,能反映模型的排序能力,反映的是一个相对性,即item a排在item b之前的能力,但是它不反映绝对性。

从AUC判断分类器(预测模型)优劣的标准:

  • AUC = 1,是完美分类器;

  • AUC = [0.85, 0.95], 效果很好;

  • AUC = [0.7, 0.85], 效果一般;

  • AUC = [0.5, 0.7], 效果较低,但用于预测股票已经很不错了;

  • AUC = 0.5,跟随机猜测一样(例:丢铜板),模型没有预测价值;

  • AUC < 0.5,比随机猜测还差。

为什么AUC和logloss还有accuracy相比更加常用?

因为在机器学习对分类问题的预测结果都是概率值,如果要计算accuracy,需要先把概率转换成类别,这样做的话就需要手动设置一个阈值,如果对一个样本的预测概率高于这个预测,就把这个样本放进一个类别里面,低于这个阈值,放进另一个类别里面。

这个转换过程就有可能影响到accuracy的计算结果,不同的转换标准对结果的影响也不同,使用AUC或logloss可以避免概率到类型的转换。

图中横轴为FPR,纵轴为TPR,这两个概念上面已经解释过了,那么,可以得到下列公式:

真实负例样本数:n=tn+fp

真实正例样本数:p=tp+fn

4.1 从概率角度解释该公式

AUC考虑的是样本的排序质量,它与排序误差有密切关系。可将AUC理解为正样本排在负样本之前的概率。AUC越大,说明分类器越可能把正样本排在前面。

ROC面积越大,说明曲线越往左上角靠近。那么对于图上任意一点,(FPR,TPR)坐标点就越往左上角靠近,也就是横轴坐标减小,纵坐标增大,即FPR减小趋近0(根据定义得知,就是在所有真实负样本中,基本没有预测为正的样本),TPR增大趋近1(根据定义得知,也就是在所有真实正样本中,基本全都是预测为正的样本)并且上述是对于任意截断点来说的,很明显,那就是分类器对正样本的打分基本要大于负样本的打分(一般预测值也叫打分,打分是对样本预测其为正例可能性)。

AUC也可以定义为:随机从正样本和负样本中各选一个,分类器对该正样本打分大于该负样本打分的概率。也可以描述在所有组合对中,Rank正例大于Rank负例的比例是多少,即为分类器对正样本预测为正的概率是总预测数的占比。

AUC如果按照原始定义ROC曲线下的面积来计算,非常之麻烦。

假设数据集一共有P个正样本,N个负样本,预测值就有P+N个,我们将所有样本按照预测值进行从小到大排序,排序编号从1到P+N。

  • 对于正样本概率最大的,假设排序编号为rank1,比它概率小的负样本个数=rank1-P

  • 正样本概率第二大的,编号为rank2,比它概率小的负样本个数为rank2-(P-1)

  • 以此类推

  • 对于正样本最小的,编号为rankp,比它概率小的负样本个数为rankp-1

那么在所有情况下,正样本打分大于负样本的个数=rank1+rank2+...+rankp-(1+2+...+P)

AUC的概率公式如下:

其中rank是正样本i的排序编号,样本排序位置从1开始。|P|为正样本数,|N|为负样本数

但是,还没有完,有一个小问题,可能大家没注意到。那就是如果有预测值是一样的,那么怎么进行排序编号呢?

解决方法就是:对于预测值一样的样本,我们将这些样本原先的排号平均一下,作为新的排序编号就完事了。

4.2 AUC的优点

  • AUC衡量的是一种排序能力,因此特别适合排序类业务;

  • AUC对正负样本均衡并不敏感,在样本不均衡的情况下,也可以做出合理的评估。

  • 其他指标比如precision,recall,F1,根据区分正负样本阈值的变化会有不同的结果,而AUC不需要手动设定阈值,是一种整体上的衡量方法。

AUC的缺点:

  • 忽略了预测的概率值和模型的拟合程度;

  • AUC反应了太过笼统的信息。无法反应召回率、精确率等在实际业务中经常关心的指标;

  • 它没有给出模型误差的空间分布信息,AUC只关注正负样本之间的排序,并不关心正样本内部,或者负样本内部的排序,这样我们也无法衡量样本对于好坏客户的好坏程度的刻画能力;

4.3工业界为什么用AUC?

①AUC指标本身和模型预测score绝对值无关,只关注排序效果,因此特别适合排序业务,为何与模型预测score值无关是很好的特性呢?假设采用precision、F1等指标,而模型预测的score是个概率值,就必须选一个阈值来给预测值分类,不同的阈值也会影响精确值的结果,而AUC可以直接用score本身,参考的是相对顺序。

②AUC对均匀正负样本采样不敏感。比如在点击率预估中,处于计算资源的影响,有时候会对负样本做负采样,但采样完后并不影响正负样本的顺序分布。即假设采样是随机的,采样完成后,给定一条正样本,模型预测为score1,由于采样随机,则大于score1的负样本和小于score1的负样本的比例不会发生变化。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值