分类模型评价指标_简述常用的模型评价的指标

分类模型评价指标_简述常用的模型评价的指标在分类型模型评判的指标中,常见的方法有如下三种:混淆矩阵(也称误差矩阵,ConfusionMatrix) ROC曲线 AUC面积混淆矩阵是ROC曲线绘制的基础,同时它也是衡量分类型模型准确度中最基本,最直观,计算最简单的方法。一句话解释:混淆矩阵就是分别统计分类模型归错类,归对类的观测值个数,然后把结果放在一个表里展示出来。这个表就是混淆矩阵。ROC是一条线,如果我们选择用…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

在分类型模型评判的指标中,常见的方法有如下三种:

  1. 混淆矩阵(也称误差矩阵,Confusion Matrix)
  2. ROC曲线
  3. AUC面积

混淆矩阵是ROC曲线绘制的基础,同时它也是衡量分类型模型准确度中最基本,最直观,计算最简单的方法。

一句话解释:

混淆矩阵就是分别统计分类模型归错类,归对类的观测值个数,然后把结果放在一个表里展示出来。这个表就是混淆矩阵。

ROC是一条线,如果我们选择用ROC曲线评判模型的准确性,那么越靠近左上角的ROC曲线,模型的准确度越高,模型越理想;

AUC是线下面积,如果我们选择用AUC面积评判模型的准确性,那么模型的AUC面积值越大,模型的准确度越高,模型越理想;

混淆矩阵(Confusion Matrix)

它的本质远没有它的名字听上去那么拉风。矩阵,可以理解为就是一张表格,混淆矩阵其实就是一张表格而已。

以分类模型中最简单的二分类为例,对于这种问题,我们的模型最终需要判断样本的结果是0还是1,或者说是positive还是negative。

我们通过样本的采集,能够直接知道真实情况下,哪些数据结果是positive,哪些结果是negative。同时,我们通过用样本数据跑出分类型模型的结果,也可以知道模型认为这些数据哪些是positive,哪些是negative。

因此,我们就能得到这样四个基础指标,我称他们是一级指标(最底层的):

真实值是positive,模型认为是positive的数量(True Positive=TP)
真实值是positive,模型认为是negative的数量(False Negative=FN):这就是统计学上的第一类错误(Type I Error)
真实值是negative,模型认为是positive的数量(False Positive=FP):这就是统计学上的第二类错误(Type II Error)
真实值是negative,模型认为是negative的数量(True Negative=TN)
将这四个指标一起呈现在表格中,就能得到如下这样一个矩阵,我们称它为混淆矩阵(Confusion Matrix):
分类模型评价指标_简述常用的模型评价的指标

混淆矩阵的指标
预测性分类模型,肯定是希望越准越好。那么,对应到混淆矩阵中,那肯定是希望TP与TN的数量大,而FP与FN的数量小。所以当我们得到了模型的混淆矩阵后,就需要去看有多少观测值在第二、四象限对应的位置,这里的数值越多越好;反之,在第一、三四象限对应位置出现的观测值肯定是越少越好。

二级指标
但是,混淆矩阵里面统计的是个数,有时候面对大量的数据,光凭算个数,很难衡量模型的优劣。因此混淆矩阵在基本的统计结果上又延伸了如下4个指标,我称他们是二级指标(通过最底层指标加减乘除得到的):

准确率(Accuracy)—— 针对整个模型
精确率(Precision)
灵敏度(Sensitivity):就是召回率(Recall)
特异度(Specificity)
我用表格的方式将这四种指标的定义、计算、理解进行了汇总:
分类模型评价指标_简述常用的模型评价的指标

三级指标
这个指标叫做F1 Score。他的计算公式是:

分类模型评价指标_简述常用的模型评价的指标

其中,P代表Precision,R代表Recall。

F1-Score指标综合了Precision与Recall的产出的结果。F1-Score的取值范围从0到1的,1代表模型的输出最好,0代表模型的输出结果最差

混淆矩阵的实例
当分类问题是二分问题是,混淆矩阵可以用上面的方法计算。当分类的结果多于两种的时候,混淆矩阵同时适用。

一下面的混淆矩阵为例,我们的模型目的是为了预测样本是什么动物,这是我们的结果:

分类模型评价指标_简述常用的模型评价的指标

通过混淆矩阵,我们可以得到如下结论:

Accuracy

在总共66个动物中,我们一共预测对了10 + 15 + 20=45个样本,所以准确率(Accuracy)=45/66 = 68.2%。

以猫为例,我们可以将上面的图合并为二分问题:

分类模型评价指标_简述常用的模型评价的指标

Precision

所以,以猫为例,模型的结果告诉我们,66只动物里有13只是猫,但是其实这13只猫只有10只预测对了。模型认为是猫的13只动物里,有1条狗,两只猪。所以,Precision(猫)= 10/13 = 76.9%

Recall

以猫为例,在总共18只真猫中,我们的模型认为里面只有10只是猫,剩下的3只是狗,5只都是猪。这5只八成是橘猫,能理解。所以,Recall(猫)= 10/18 = 55.6%

Specificity

以猫为例,在总共48只不是猫的动物中,模型认为有45只不是猫。所以,Specificity(猫)= 45/48 = 93.8%。

虽然在45只动物里,模型依然认为错判了6只狗与4只猫,但是从猫的角度而言,模型的判断是没有错的。

(这里是参见了Wikipedia,Confusion Matrix的解释,https://en.wikipedia.org/wiki/Confusion_matrix)

F1-Score

通过公式,可以计算出,对猫而言,F1-Score=(2 * 0.769 *  0.556)/( 0.769 +  0.556) = 64.54%

同样,我们也可以分别计算猪与狗各自的二级指标与三级指标值。

ROC曲线的定义
ROC曲线全称为受试者工作特征曲线(Receiver Operating Characteristic Curve)。虽然听上去很高端,但是ROC其实非常容易理解。一句话说,ROC就是一张图上的曲线,我们通过曲线的形状来判定模型的好坏。

那么要想了解一个曲线代表什么意思,首先最好搞明白曲线的横轴与纵轴分别代表什么。

下图中显示的是两条ROC曲线,一条蓝色,一条红色。他们分别对应两个不同的模型。我们可以看到,图中横轴写着“False positive rate”,纵轴写着“True positive rate”。

分类模型评价指标_简述常用的模型评价的指标

这两个就是ROC曲线绘制的关键:我们通过计算分类模型的“False positive rate”与“True positive rate”值,分别把它们当成横纵轴,就能够绘制出这个模型的ROC曲线。

那么,怎么计算这两个指标呢?

ROC曲线的计算
ROC曲线的横轴与纵轴,与混淆矩阵(Confusion Matrix)有着密切的关系,具体的理解请详见混淆矩阵篇的讲解。这里只是简单回顾一下:

在分类型模型中,以二分类为例,我们的模型结果一般可以视为0/1问题,或者说positive/negative的问题。模型的产出物,不是positive,就是negative。

我们通过样本的采集,能够直接知道真实的情况下,哪些数据结果是positive,哪些结果是negative。同时,我们通过用样本数据跑出分类型模型的结果,也可以知道模型认为这些数据哪些是positive,哪些是negative。

因此,我们就能得到这样四个结果:

真实值是positive,模型认为是positive的数量(True Positive=TP)
真实值是positive,模型认为是negative的数量(False Negative=FN)
真实值是negative,模型认为是positive的数量(False Positive=FP)
真实值是negative,模型认为是negative的数量(True Negative=TN)
将这四种结果一起呈现在表格中,就能得到如下这样一个矩阵,我们称它为混淆矩阵(Confusion Matrix):

分类模型评价指标_简述常用的模型评价的指标
从名字上就能看出,ROC的横纵轴计算方式是与混淆矩阵有着密切关系的。

横轴(False positive rate)的计算:
横轴的指标,在英文中被称为False positive rate,简称FPR。

FPR可以被理解为:在所有真实值为Negative的数据中,被模型错误的判断为Positive的比例。其计算公式为:

分类模型评价指标_简述常用的模型评价的指标

纵轴(True Positive Rate)的计算:
纵轴的指标,在英文中被称为True Positive Rate,简称TPR。

TPR可以被理解为:在所有真实值为Positive的数据中,被模型正确的判断为Positive的比例。其计算公式为:

分类模型评价指标_简述常用的模型评价的指标

ROC曲线的解读
FPR与TPR分别构成了ROC曲线的横纵轴,因此我们知道在ROC曲线中,每一个点都对应着模型的一次结果。

如果ROC曲线完全在纵轴上,代表这一点上,x=0,即FPR=0。模型没有把任何negative的数据错误的判为positive,预测完全准确。这是真正的大牛模型,我是做不出来了。
如果ROC曲线完全在横轴上,代表这一点上,y=0,即TPR=0。模型没有把任何positive的数据正确的判断为positive,预测完全不准确。平心而论,这种模型能做出来也是蛮牛的,因为模型真正做到了完全不准确,所以只要反着看结果就好了嘛。
所以如果ROC曲线完全与右上方45度倾角线重合,证明模型的准确率是正好50%,错判的几率是一半一半。
因此,我们绘制出来ROC曲线的形状,是希望TPR大,而FPR小。因此对应在图上就是曲线尽量往左上角贴近。45度的直线一般被常用作Benchmark,即基准模型,我们的预测分类模型的ROC要能优于45度线,否则我们的预测还不如50/50的猜测来的准确。

所以,回到下图。从整个图上看,红色的ROC线更靠近左上方。因此,红色线代表的SVM分类器的表现要整体优于蓝色线代表的LDA分类器。

ROC曲线的绘制
我们已经知道,ROC曲线中的每一个点就能代表一次预测的结果。那么整条ROC的曲线是如何绘制的呢?

答案就是:ROC曲线上的一系列点,代表选取一系列的阈值(threshold)产生的结果。

在分类问题中,我们模型预测的结果不是negative/positive。而是一个negatvie或positive的概率。那么在多大的概率下我们认为观测值应该是negative或positive呢?这个判定的值就是阈值(threshold)。

ROC曲线上众多的点,每个点都对应着一个阈值的情况下模型的表现。多个点连起来就是ROC曲线了。

AUC的定义与解读
AUC的英文叫做Area Under Curve,即曲线下的面积,不能再直白。它就是值ROC曲线下的面积是多大。每一条ROC曲线对应一个AUC值。AUC的取值在0与1之间。

AUC = 1,代表ROC曲线在纵轴上,预测完全准确。不管Threshold选什么,预测都是100%正确的。
0.5 < AUC < 1,代表ROC曲线在45度线上方,预测优于50/50的猜测。需要选择合适的阈值后,产出模型。
AUC = 0.5,代表ROC曲线在45度线上,预测等于50/50的猜测。
0 < AUC < 0.5,代表ROC曲线在45度线下方,预测不如50/50的猜测。
AUC = 0,代表ROC曲线在横轴上,预测完全不准确。
 

转自:https://blog.csdn.net/Orange_Spotty_Cat/article/details/80499031

          https://blog.csdn.net/Orange_Spotty_Cat/article/details/80520839

    

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/185665.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • gltranslatef函数_sql translate函数怎么用

    gltranslatef函数_sql translate函数怎么用TranslateMessage(&amp;msg);TranslateMessage是用来把快捷键消息转换为字符消息,并将转换后的新消息投递到调用线程的消息队列中。由于Windows对所有键盘编码都是采用虚拟键的定义,这样当按键按下时,并不得字符消息,需要键盘映射转换为字符的消息。字符消息被投递到调用线程的消息队列中,当下一次调用GetMessage函数时被取出。当我们敲击键盘上的某个字符键时,…

  • 发现一个非常好的的VB学习网站。www.newxing.com[通俗易懂]

    发现一个非常好的的VB学习网站。www.newxing.com[通俗易懂]
    www.newxing.com 会经常上上看的。
     

  • Netty时间轮_java netty

    Netty时间轮_java netty时间轮是一个高性能,低消耗的数据结构,它适合用非准实时,延迟的短平快任务,例如心跳检测。在netty和kafka中都有使用。

  • 中国主流的大数据分析厂商

    中国主流的大数据分析厂商随着互联网和IT技术的推进,大数据的应用逐渐渗透到各行各业。尤其是数据体量大的互联网、金融、银行、制造行业。大数据正逐渐改变企业的运营模式,市场导向,进而惠及人们的生活。“大数据”这一概念最早在国外被提及。之后国内外兴起了一系列大数据技术,包括大数据硬件类、大数据分析类、大数据数据处理类等等,也因此诞生了一批大数据厂商。其中最为热门的是大数据分析技术,可以直接应用到企业生产经营,来带直…

  • Docker暴露2375端口,引起安全漏洞

    Docker暴露2375端口,引起安全漏洞作者信息:廖煜,电子科技大学计算机和金融学双硕士,负责Ghostcloud的产品运营。曾任EMC西南区架构师。国内顶级Docker技术专家,Docker开源项目贡献者。拥有丰富的虚拟化、云计算和企业级软件经验。前几天有小伙伴发现Docker暴露出2375端口,引起了安全漏洞。我现在给大家介绍整个事情的来龙去脉,并告诉小伙伴们,怎么修复这个漏洞。为了实现集群管理,Docker提供了远程管理接…

  • Layui弹出层 加载 做编辑页面「建议收藏」

    Layui弹出层 加载 做编辑页面「建议收藏」先上效果图基本准备,引入layui的layui.css,layui.js文件&lt;linkrel="stylesheet"href="../../../Publics/others/layui/css/layui.css"media="all"&gt;&lt;scriptsrc="../../../Publics/others/layui/layui.js"&gt;&a

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号