连载|模型评估与过拟合(下)

模型评估与过拟合

性能度量

我们在进行对学习器泛化能力评估的同时,不仅需要有效的评估方法,还需要一个好的衡量模型泛化能力的评价标准。我们先来学习一下在分类算法中经常用到的模型评价指标。

准确率(Accuracy)

分类正确的样本个数占总样本个数的比例。

A c c u r a c y = n c o r r e c t n t o t a l Accuracy=\frac{n_{correct}}{n_{total}} Accuracy=ntotalncorrect

其中 n c o r r e c t n_{correct} ncorrect就是被分类正确的样本数, n t o t a l n_{total} ntotal是总样本的个数。

精确率(Precision)

分类正确的正样本个数占分类器判定为正样本的个数的比例。

P r e c i s i o n = n r i g h t + n c o r r e c t + Precision=\frac{n_{right+}}{n_{correct+}} Precision=ncorrect+nright+

其中 n r i g h t + n_{right+} nright+表示分类正确的正样本的个数, n c o r r e c t + n_{correct+} ncorrect+表示被分类器判定为正样本的个数。

召回率(Recall)

分类正确的正样本个数占真实正样本的个数的比例。

R e c a l l = n r i g h t + n r e a l l y + Recall=\frac{n_{right+}}{n_{really+}} Recall=nreally+nright+

其中 n r i g h t + n_{right+} nright+表示分类正确的正样本的个数, n r e a l l y + n_{really+} nreally+表示真实正样本个数的比例。

F1 score

F1 score可以认为是精确率和召回率的调和平均值。

F 1 s c o r e = 2 ∗ p r e c i s i o n ∗ r e c a l l p r e c i s i o n + r e c a l l F1score = \frac{2*precision*recall}{precision+recall} F1score=precision+recall2precisionrecall

混淆矩阵

对于二分类问题我们可以将样例根据其真实类别与学习器预测类别的组合划分为真正例(True Positive)、假正例(False Positive)、真反例(True negative)、假反例(False negative),混淆矩阵如下表示:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oBt4fMEj-1585033542860)(/Users/kuick/Library/Application Support/typora-user-images/image-20200324102409700.png)]

在混淆矩阵下对精确率P和召回率R的定义如下:

P = T P T P + F P P=\frac{TP}{TP+FP} P=TP+FPTP

R = T P T P + F N R=\frac{TP}{TP+FN} R=TP+FNTP

对于精确率和召回率,其实是一对矛盾的度量,一般来说,精确率高时,召回率往往偏低,而召回率高时,精确率往往偏低。

ROC曲线(Receiver Operating Characteristic Curve)

关于ROC曲线中一个点的计算

ROC曲线经常作为评估2分类的重要指标,该曲线是2维平面内的曲线,其横坐标为假阳性率(FPR),纵坐标为真阳性率(TPR),二者的计算方式如下:

F P R = F P N FPR=\frac{FP}{N} FPR=NFP

T P R = T P P TPR=\frac{TP}{P} TPR=PTP

  • P:真实的正样本的数量
  • N:真实的副样本的数量
  • TP:P个正样本中被分类器预测为正样本的个数
  • FP:N个副样本中被分类器预测为正样本的个数

举个例子:

假设有10个人疑似感冒了,其中有3人确实是感冒了(P=3),另外的7个人没有感冒(N=7)。医院对这10位患者做了诊断,诊断出3个感冒的人,其中有2个人确实是感冒了(TP=2)。那么真阳性率 T P R = T P P = 2 3 TPR=\frac{TP}{P}=\frac{2}{3} TPR=PTP=32。对于7位没感冒的人来说,有一位被误诊为感冒(FP=1),那么假阳性率 F P R = F P N = 1 7 FPR=\frac{FP}{N}=\frac{1}{7} FPR=NFP=71

此时上述的结果就可以看作是ROC曲线中的一个点 ( 1 7 , 2 3 ) (\frac{1}{7},\frac{2}{3}) (71,32)

如何绘制ROC曲线

ROC曲线实际上是通过不断的移动分类器的截断点来生成曲线上的关键点的。

我们首先要对样本的预测概率从高到低进行排序,在输出最终的正例、负例之前我们需要指定一个阈值,预测概率大于该阈值的样本会被判为正例,小于该阈值的样本会被判为负例。

样本序号真实标签输出概率
1p0.9
2p0.8
3n0.7
4p0.6
5p0.55
6p0.54
7n0.53
8n0.52
9p0.51
10n0.505
11p0.4
12n0.39
13p0.38
14n0.37
15n0.36
16n0.35
17p0.34
18n0.33
19p0.3
20n0.1

就本例来说,当截断点选择为正无穷时,模型把全部样本预测为负例,那么FP和TP必然都为0,FPR和TPR也都为0,因此曲线的第一个点的坐标就是 (0,0)。当把截断点调整为0.9时,模型预测1号样本为正样本,并且该样本确实 是正样本,因此,TP=1,20个样本中,所有正例数量为P=10, 故 T P R = T P P = 1 10 TPR=\frac{TP}{P}=\frac{1}{10} TPR=PTP=101;这里没有预测错的正样本,即FP=0,负样本总数N=10, 故 F P R = F P N = 0 FPR=\frac{FP}{N}=0 FPR=NFP=0,对应ROC曲线上的点(0,0.1)。依次调整截断点,直到画出全部的关键点,再连接关键点即得到最终的ROC曲线,如下图所示:

在这里插入图片描述

AUC(Area Under Curve)

说完了绘制ROC曲线,那么如何来计算AUC呢?

根据名称我们就可以知道,AUC就是在计算ROC曲线下方的面积,该值能够量化的反映基于ROC曲线衡量出的模型性能。由于ROC的曲线一般都处于Y=X这条直线的上方(若果不是的化把概率反转变成1-p即可成为更好的分类器),所以AUC的取值一般在0.5-1之间。AUC越大,说明分类器越可能把真正的正样本排在前面,分类性能越好。

P-R曲线(Precision-Recall)

P-R曲线的存在是为了进行精确率和召回率的衡量,P-R曲线顾名思义P就代表精确率而R就是召回率,在P-R曲线中横轴是召回率,纵轴是精确率。对于一个排序模型来说,其P-R曲线上的一个点代表着,在某一阈值下,模型将大于该阈值的结果判定为正样本, 小于该阈值的结果判定为负样本,此时返回结果对应的召回率和精确率,整条P-R 曲线是通过将阈值从高到低移动而生成的。下图中,其中实线代表 模型A的P-R曲线,虚线代表模型B的P-R曲线。原点附近代表当阈值最大时模型的 精确率和召回率。

在这里插入图片描述

由图可见,当召回率接近于0时,模型A的精确率为0.9,模型B的精确率是1, 这说明模型B得分前几位的样本全部是真正的正样本,而模型A即使得分最高的几 个样本也存在预测错误的情况。并且,随着召回率的增加,精确率整体呈下降趋 势。但是,当召回率为1时,模型A的精确率反而超过了模型B。这充分说明,只用 某个点对应的精确率和召回率是不能全面地衡量模型的性能,只有通过P-R曲线的 整体表现,才能够对模型进行更为全面的评估。

偏差与方差

偏差:描述的是预测值(估计值)的期望与真实值之间的差距。偏差越大,越偏离真实数据。

b i a s 2 ( x ) = ( f ( x ) − y ) 2 bias^2(x)=(f(x)-y)^2 bias2(x)=(f(x)y)2

方差:描述的是预测值的变化范围,离散程度,也就是离其期望值的距离。方差越大,数据的分布越分散。

v a r ( x ) = 1 n ∑ 1 n ( x i − x ˉ ) 2 var(x)=\frac{1}{n}\sum^{n}_{1}(x_i-\bar{x})^2 var(x)=n11n(xixˉ)2

下图中展示高(低)偏差和高(低)方差对应的数据分布情况。

img

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

二哥不像程序员

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值