博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
机器学习-性能度量
阅读量:5056 次
发布时间:2019-06-12

本文共 1586 字,大约阅读时间需要 5 分钟。

模型评估是对学习器泛化能力有效可行的实验估计方法。而性能度量是衡量模型泛化能力的评价标准。性能度量反应了任务需求,在对比不同模型能力时,使用不同的性能度量往往会导致不同的评估结果。模型的好坏不仅取决于算法和数据,还有任务需求。

1.错误率与精度

  最常用的两种性能度量,对于样例集D={(x1,y1), (x2,y2), ..., (xm,ym)}。分类错误率定义为

  精度则定义为

  更一般的,对于数据分布D和概率密度函数p(.),错误率和精度可以分别描述为

 

2.查准率、查全率与F1

  错误率仅适用发生分类错误的样本,而对于样本集中数据比例需要用查准率(准确率)和查全率(召回率)满足此类需求。

  对于二分类问题,样例可根据其真实类别和学习器预测类别组合划分为

  真正例-TP(true positive)、假正例-FP(false positive)、真反例-TN(true negative)、假反例-FN(false negative)。分类结果的混淆矩阵如下

查准率P=TP/(TP+FP); 查全率R=TP/(TP+FN)

  P、R是一对矛盾的度量,很少学习任务会使查准率和查全率都高。根据学习器的预测结果进行排序,逐一将每个样本作为正例预测,按照是正例的可能性降序排序,每次计算出当前的P、R值,以查准率P为纵轴,查全率R为横轴生成“P-R曲线”

  A曲线包住C曲线,可断言学习器A优于学习器C。对于B、C学习器,可以采用积分面积大小或者平衡点(Break-Even Point)来度量,即P=R时与P-R曲线交点,图中C的BEP小于B的BEP,可认为B优于C。但更常用的度量是F1度量,

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

  实际中,往往对查准率和查全率的重视程度不同,F1的一般度量形式Fβ能表达出对P、R的不同偏好,

Fβ = ((1+β²)*P*R) /((β²*P)+R),

0<β<1查准率P有更大涌向,β=1退化为F1,β>1查全率R有更大影响

  对于多个二分类混淆矩阵,如在n个二分类混淆矩阵的基础上考察P、R:

    宏考察:先计算各各矩阵的(Pi,Ri),取平均值得到宏-P(macro-P)、宏-R(macro-R)、宏-F1(macro-F1)。

    微考察:将混淆矩阵的各元素平均得到avr(TP,FP,TN,FN),基于元素平均值得到微-P(micro-P)、微-R(micro-R)、微-F1(micro-F1)。

 

3.ROC和AUC

  ROC:Reciever Operating Characteristic-受试者工作特征曲线。

 

  同P-R曲线类似,也是逐一对每个样本是正例的可能性降序排序,纵轴为真正例率TP Rate(TPR),横轴为假正例率FP Rate(FPR),两者分别定义为

TPR=TP/(TP+FP);    FPR=FP/(FP+TN)

  度量标准同P-R曲线度量标准类似,其中ROC曲线积分面积就是AUC,即比较AUC大小来判断学习器优劣。形式化的看,AUC考虑的是样本预测的排序质量,因此与排序误差有紧密联系。值得注意的是,现实测试往往不是光滑的ROC曲线,而是离散的值。

 

4.代价敏感错误率和代价曲线

  为权衡不同错误所造成的不同损失,我们为错误赋予一个“非均等代价(unequal cost)”,非均等代价下,学习任务可根据领域知识设定一个“代价矩阵”

  一般来说cost(ii)=0,cost(ij)指将第i类预测成第j类需要付出的代价。对于这样的不均等代价,我们希望总体代价能够最小,而不是简单的最小化错误次数。

 

转载于:https://www.cnblogs.com/KrianJ/p/10474252.html

你可能感兴趣的文章
How to Create a SharePoint 2010 Project Without SharePoint Server
查看>>
区分块元素和行元素
查看>>
Bypass pattern lock on Sony Xperia Z2 and backup all data
查看>>
又黑我等程序猿
查看>>
AppScan入门工作原理详解
查看>>
夺命雷公狗---node.js---6net模块玩telnet通信(下)
查看>>
spring的value,null标签
查看>>
jQuery html text val方法使用
查看>>
Eclipse寻找JVM的机制
查看>>
Day2:购物车
查看>>
Maven实战(六)--- dependencies与dependencyManagement的区别
查看>>
多边形的研究
查看>>
django Models 常用的字段和参数
查看>>
linux -- 嵌入式linux下wifi无线网卡驱动
查看>>
SVN使用教程总结
查看>>
SQL中varchar和nvarchar有什么区别?
查看>>
orcale 修改字段属性
查看>>
多线程总结之旅(3):多线程的优缺点
查看>>
STL基础用法
查看>>
C#多线程学习(四) 多线程的自动管理(线程池)
查看>>