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

衡量模型泛化能力的评价标准,就是性能度量(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),分别作为横轴和纵轴。

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

FPR=FP/(TN+FP)     =>正例结果中假正例/所有结果中真负例

从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’(1- ?)m-m’,由此可算出恰好将?(^)×m个样本误分类的概率如下所示(也即表示泛化错误率为?的学习器被测得错误率为?(^)的概率):

上式对?对偏导,可知其概率在?=?(^)时最大,|?-?(^)|增大时P减小。这个概率符合二项分布。

可使用“二项检验”(binomial test)对?≤0.3(即泛化错误率是否不大于0.3)这样的假设进行检验,更一般地,考虑假设?≤?0, 则在1-α的概率(反映了结论的置信度)内所能观察到的最大错误率如下式计算:

(个人理解:预测错误概率<α的情况下,泛化错误率?的最大值?)

若测试错误率?(^)小于临界值,根据二项检验可得结论:在α显著度下,假设?≤?0不能被拒绝,也即是能以1-α的置信度认为,学习器的泛化错误率不大于?0

原文地址:https://www.cnblogs.com/Sweepingmonk/p/11037315.html

时间: 2024-08-29 02:32:59

机器学习周志华——学习器性能度量的相关文章

【读书笔记】机器学习-周志华 &amp; 机器学习实战(Python)

这两本放在一起看吧.当然了,我觉得Spark上面的实践其实是非常棒的.有另一个系列文章讨论了Spark. /Users/baidu/Documents/Data/Interview/机器学习-数据挖掘/<机器学习_周志华.pdf> 一共442页.能不能这个周末先囫囵吞枣看完呢.哈哈哈. P1 一般用模型指全局性结果(例如决策树),用模式指局部性结果(例如一条规则). P3 如果预测的是离散值,那就是分类-classification:如果预测的是连续值,那就叫回归-regression. P3

机器学习-周志华

机器学习的一些小tips周志华Tom M.Mitchell,是卡内基梅隆大学的教授,讲授“机器学习”等多门课程:美国人工智能协会(AAAL)的主席:美国<Machine Learning>杂志.国际机器学习年度会议(ICML)的创始人:多种技术杂志的撰稿人,曾发表过许多文章,出版过多本专著,是机器学习领域的著名学者. 本书展示了机器学习中核心的算法和理论,并阐明了算法的运行过程.本书综合了许多的研究成果,例如统计学.人工智能.哲学.信息论.生物学.认知科学.计算复杂性和控制论等,并以此来理解问

机器学习是什么--周志华

机器学习是什么--周志华 机器学习现在是一大热门,研究的人特多,越来越多的新人涌进来. 不少人其实并没有真正想过,这是不是自己喜欢搞的东西,只不过看见别人都在搞,觉着跟大伙儿走总不会吃亏吧. 问题是,真有个“大伙儿”吗?就不会是“两伙儿”.“三伙儿”?如果有“几伙儿”,那到底该跟着“哪伙儿”走呢? 很多人可能没有意识到,所谓的machine learning community,现在至少包含了两个有着完全不同的文化.完全不同的价值观的群体,称为machine learning "communit

周志华:关于机器学习的一点思考

https://mp.weixin.qq.com/s/sEZM_o5D6AhyMgvocbsFhw 演讲:周志华 整理:肖琴.闻菲 [新智元导读]机器学习如今大获成功的原因有哪些?如何才能取得进一步的突破?南京大学周志华教授在AI WORLD 2018大会上分享他关于机器学习的一点思考:我们需要设计新的.神经网络以外的深度模型:让智能体在弱监督条件下也能够学习,以及考虑开放动态任务环境下的学习. 播放 震撼!AI WORLD 2018世界人工智能峰会开场视频 南京大学计算机系主任.人工智能学院院

《机器学习》(周志华)第4章 决策树 笔记 理论及实现——“西瓜树”

参考书籍:<机器学习>(周志华) 说       明:本篇内容为读书笔记,主要参考教材为<机器学习>(周志华).详细内容请参阅书籍——第4章 决策树.部分内容参考网络资源,在此感谢所有原创者的工作. ================================================================= 第一部分 理论基础 1. 纯度(purity) 对于一个分支结点,如果该结点所包含的样本都属于同一类,那么它的纯度为1,而我们总是希望纯度越高越好,也就是

(二)《机器学习》(周志华)第4章 决策树 笔记 理论及实现——“西瓜树”——CART决策树

CART决策树 (一)<机器学习>(周志华)第4章 决策树 笔记 理论及实现--"西瓜树" 参照上一篇ID3算法实现的决策树(点击上面链接直达),进一步实现CART决策树. 其实只需要改动很小的一部分就可以了,把原先计算信息熵和信息增益的部分换做计算基尼指数,选择最优属性的时候,选择最小的基尼指数即可. #导入模块 import pandas as pd import numpy as np from collections import Counter #数据获取与处理

(转)周志华:“深”为什么重要,以及还有什么深的网络

周志华老师大家应该都很熟悉吧,今天偶然看到他在今年IJCAI大会上的发言稿,感觉读完受益匪浅,故摘录下来与大家分享,也方便日后复习查看. 本文由雷锋网整理完成,原文地址:https://ai.yanxishe.com/page/reportDetail/14317 这里只是用于学习用途,非商业用途,如有侵权,请联系博主删除. 深度学习就等于深度神经网络吗? 深度学习今天已经有各种各样的应用,到处都是它,不管图像也好,视频也好,声音自然语言处理等等.那么我们问一个问题,什么是深度学习? 我想大多数

偶尔转帖:AI会议的总结(by南大周志华)

偶尔转帖:AI会议的总结(by南大周志华) 说明: 纯属个人看法, 仅供参考. tier-1的列得较全, tier-2的不太全, tier-3的很不全. 同分的按字母序排列. 不很严谨地说, tier-1是可以令人羡慕的, tier-2是可以令 人尊敬的,由于AI的相关会议非常多, 所以能列进tier-3的也是不错的 tier-1: IJCAI (1+): International Joint Conference on Artificial Intelligence AAAI (1): Na

看周志华教授的一番话有感

[看周志华教授的一番话有感] " 有点幽默,但很朴实,深度学习现在差不多就是民工活,调来调去,刷来刷去.文章发得飞快,貌似热闹,但有多少是能积淀下来的实质真进展,又有多少是换个数据就不靠谱了的蒙事撞大运?既缺乏清澈干净的内在美感,又不致力于去伪存真.正本清源,只图热闹好看,迟早把 arXiv 变成废纸堆. " 周志华教授的这段话在一定程度上说的就是我, 总是把别人的代码拿下来跑, 好像跑通了就会很有成就感 其实这种想法很危险, 在当前深度学习的浪潮里,非常需要能静下心研究出真正的东西而