机器学习周志华――学习器性能度量

匿名 (未验证) 提交于 2019-12-02 23:43:01

衡量模型泛化能力的评价标准,就是性能度量(performance measure)。

(1)错误率与精度

(2)查准率、查全率与F1

基于样例真实类别,可将学习器预测类别的组合划分为真正例(true positive)、假正例(false positive)、真反例(true negative)、假反例(false negative),TPFPTNFN分别表示其对应的样例数,则有TP+FP+TN+FN=样例总数。

查准率P与查全率R分别定义为:

P= TP/(TP+FP)=>正例结果中真正例数/正例结果总数

R= TP/(TP+FN)=>正例结果中真正例数/结果中所有真正例数

查准率高时,查全率往往偏低,查全率高时,查准率往往偏低(例如选西瓜例子,希望查全率高则应尽可能将所有瓜都选上,但这样查准率必然更低,若希望查准率高则应尽可能挑最有把握的瓜,但这样必然会漏掉一些好瓜,使查全率低)。通常只有在一些简单任务中,才可能使查全率和查准率都很高。

通常按学习器预测结果为正例可能的大小对样例排序,即排在前面的是学习器认变“最可能”是正例的样本,排在最后的则是学习器认为“最不可能”的正例样本。从上到下逐个把样本作为正例进行预测,每次均计算出当前的查全率、查准率,以查准率为纵轴、查全率为横轴作图,得到查准率-查全率曲线P-R曲线,简称P-R图。

若一个学习器的P-R曲线被另一个学习器曲线完全包住,可断言后者性能优于前者。对于两曲线交叉的情况,人们设计了一些综合考虑查准率、查全率的性能度量。“平衡点”(Break-Event Point,简称BEP)就是这样一个度量,它是查准率=查全率的取值,考虑BEP过于简化了,更常用的是F1度量:

F1=2×P×R/(P+R)=2×TP/(样例总数+TP-TN

真实应用中,对查准率和查全率的重视程度有所不同,例如商品推荐系统更强调查准率,而逃犯检索中,更希望少漏掉逃犯,查全率更重要。F1度量的一般形式――Fβ,能表达出对查准率/查全率的不同偏好:

Fβ=(1+β2)×P×R/((β2×P)+R

β>0度量了查全率对查准率的相对重要性,β=1时退化为标准的F1,β>1时查全率有更大影响,β<1时查准率有更大影响。

当希望在n个二分类混淆矩阵上综合才考察查准率和查全率时,一种做法:先计算出各混淆矩阵的查准率和查全率,记为(P1,R1),(P2,R2),…,(Pn,Rn),再计算平均值,得到“宏查准率”(macro-P)、“宏查全率”(macro-R),以及相应的“宏F1”(macro-F1):

还可将各混淆矩阵的对应元素平均,再得到TPFPTNFN的平均值,再基于这些值计算出“微查准率”(micro-P)、“微查全率”(micro-R)和“微F1”(micro-F1):

(3) ROC和AUC

将针对测试样本的实值或概率预测,将预测值与阈值比较,大于阈值分为正类,否则为反类,根据这个实值或概率预测结果,可将测试样本排序,最可能的正例排在最前面,最不可能的正例排在最后面,分类过程相当于在排序中以某个“截断点(cut point)将样本分为两部分,前一部分作为正例,后一部分则判作反例。根据不同任务来选择截断点,排序本身的质量好坏,体现了综合考虑学习器在不同任务下的”期望泛化性能“的好坏。ROC曲线则是从这个角度出发来研究学习器泛化性能的有力工具。

ROC(受试者工作特征,Receiver Operating Characteristic),与P-R曲线创建方式相似,根据预测结果的排序,逐个把样本作为正例进行预测,每次计算出“真正例率”(True Positive Rate,TPR),和“假正例率”(False Positive Rate,简称FPR),分别作为横轴和纵轴。

从ROC图中,可见点(0,1)对应于将所有正例排在所有反例之前的“理想模型”,对角线对应于“随机猜测”模型。绘图过程:给定m+个正例和m-个反例(二者数目不一定一样),根据预测结果对样例排序,先把分类阈值设为最大,即所有样例预测为反例,此时真正例率和假正例率均为0,在坐标(0,0)处标记一个点,然后,将分类阈值依次设为每个样例的预测值,即从上至下依次逐个将样例划入正例范围。设前一个标记点坐标为(x,y),当前若为真正例,则对应标记点的坐标为(x,y+1/m+);当前若为假正例,则对应标记点的坐标为(x+1/m-,y),然后连接所有相邻点即可。

比较学习器时:若一个学习器的ROC曲线被另一个学习器曲线完全“包住”,则后者性能优于前者;若两学习曲线交叉,判据是ROC曲线下的面积即AUC。AUC可通过ROC曲线下各部分面积求和而得,假定ROC曲线由坐标点{(x1,y1),(x2,yx),…,(xm,ym)}按序连接形成,且(x1=0,xm=1),则AUC估算为:

形式上,AUC考虑的是样本预测的排序质量,它与排序误差有紧密联系。给定m+个正例和m-个反例,令D+D-分别表示正反例集合,排序“损失”定义为:

即考虑任一一对正反例,若正例预测值小于反例,则记1个“罚分”,若相等,则记0.5个“罚分”。AUC=1-该值。

(4)代价敏感错误率与代价曲线

为权衡不同类型错误所造成的不同损失,可为错误赋予“非均等代价”(unequal cost)。例如:

在非均等代价下,希望的不再是简单地最小化错误次数,而是希望最小化“总体代价”(total cost)。表2的二分类问题,其“代价敏感”错误率为:

还可给出基于分布定义的代价敏感错误率,及其他一些性能度量如精度的代价敏感版本,若令costij中的ij取值不限于0、1,则可定义出多分类任务的代价敏感性能度量。“代价曲线”(cost curve),横轴是取值为[0,1]的正例概率代价:

其中p是样例为正例的概率,纵轴是取值为[0,1]的归一化代价:

其中FPR是假正例率,FNR=1-TPR是假反例率。

代价曲线的绘制:具体参见P36.

(4)比较检验

学习性能比较时存在的问题:首先,比较的是泛化性能而非测试集性能,其次,与测试集的选择相关,第三,学习算法本身的随机性。

统计假设检验(hypothesis test)为学习器性能比较提供了依据。若在测试集上观察到学习器A比B好,则A的泛化性能是否在统计意义上优于B,以及此结论把握有多大。

①假设检验

0

m’m-m’

P减小。这个概率符合二项分布。

0, 则在1-α的概率(反映了结论的置信度)内所能观察到的最大错误率如下式计算:

00

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!