[机器学习与scikit-learn-51]:模型评估-图解分类模型的评估指标(准确率、精确率、召回率)与代码示例

[机器学习与scikit-learn-51]:模型评估-图解分类模型的评估指标(准确率、精确率、召回率)与代码示例作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客本文网址:目录前言:第1章混淆矩阵1.1二分类的混淆矩阵1.2三分类的混淆矩阵1.3N分类的混淆矩阵1.4混淆矩阵的作用第2章准确率、精确率、召回率2.1准确率/“正确率”:预测结果正确的百分比(只关心预测结果正确的样本,包括负样本)2.2精确率:预测结果为正例样本中真实为正例的比例(只关心预测结果为正的样本)2.3召回率:所有真实样本中,判为真实样本的.

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

Jetbrains全系列IDE稳定放心使用

作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客

本文网址:https://blog.csdn.net/HiWangWenBing/article/details/124437069


目录

前言:

第1章 混淆矩阵

1.1 二分类的混淆矩阵

1.2 三分类的混淆矩阵

1.3 N分类的混淆矩阵

1.4 混淆矩阵的作用

第2章 准确率、精确率、召回率

2.1 准确率/“正确率”:预测结果正确的百分比(只关心预测结果正确的样本,包括负样本)

2.2 精确率:预测结果为正例样本中真实为正例的比例(只关心预测结果为正的样本)

2.3 召回率:所有真实样本中,判为真实样本的比率(只关心真实样本中的正样本)

2.4 公式汇总

2.5 各种指标的几何意义

 2.6 F1值

2.7 N分类的指标


前言:

分类模型与回归模型的重要区别是,分类模型的预测值是离散量,而回归模型的预测值是连续量。回归模型的输出的数值是有实际的物理意义,数值之前是可以进行数值运算,可以进行比较大小的,因此分类模型的评估基础是残差(预测值减去真实值),而分类模型的输出值没有物理意义,只是某种类型的一种指代,输出数值之间不能进行直接运算,也无法进行比较,如果0,1,2,3,4五中分类,它们之间是没有大小的,不能说分类0就比分类4小。这就决定了分类模型的评估指标与回归模型的评估指标是完全不一样的计算方法!

第1章 混淆矩阵

1.1 二分类的混淆矩阵

匹配矩阵实际是一个表格,用来记录分类模型对样本数据的预测结果样本数据真实情况之间关系的可视化表示的表格

[机器学习与scikit-learn-51]:模型评估-图解分类模型的评估指标(准确率、精确率、召回率)与代码示例

在上述案例中:

样本数据:就是上述9张图片。

样本真实标签类别:就是上述图片是否为汉堡,如果是汉堡,这标示成圆圈,如果不是,这表示成X. 在上述案例中,只有两张图是汉堡,其他图片都不是汉堡,位置为(1,2)、(2,3)

样本预测结果类别:模型对上述图片预测是否为汉堡的结果,如果是汉堡,这标示成圆圈,如果不是,这表示成X. 在上述案例中,有三张图被预测为汉堡,位置范围(2, 2)、(2,3)、(3,3)

很显然:

(2,2)和(3,3)是预测错误的,把非汉堡预测为汉堡了,这种称为

(1,2)也是预测错误的,把真实的汉堡预测成非汉堡了,这种称为漏网之鱼

(2,3)是预测对的,真实的汉堡,预测也为汉堡

其他也是预测对的,真实图片不是汉堡,预测结果也是“不是汉堡”

于是得到如下的表格:

[机器学习与scikit-learn-51]:模型评估-图解分类模型的评估指标(准确率、精确率、召回率)与代码示例

 在上图中,预测和真实类别都用了“是”和“不是”表示。

为了进一步的区分方格子中数值的含义(用来标识预测的结果

样本预测结果类别:“是”用Postive表示,即正样本、“不是”用Negative表示,即负样本。

样本预测结果属性(不是类别)预测正确用True表示,预测错误用“Flase”表示。 

注意:

这里的正确(True)有两种情形:标签是汉堡,预测为汉堡;标签不是汉堡,预测不是汉堡,都表明是预测正确。

这里的错误(False)有两种情形:标签是汉堡,预测不是汉堡;标签不是汉堡,预测是汉堡,都表明是预测错误。

于是得到如下的图,即混淆矩阵:

[机器学习与scikit-learn-51]:模型评估-图解分类模型的评估指标(准确率、精确率、召回率)与代码示例

(1)TP(True Positive): True表示预测正确,Possitve预测结果汉堡,表示是“正”样本。

TP表示预测正确,且预测为正样本的数目。

(2)TN(True Negative): True表示预测正确,Negative表示预测结果不是汉堡,表示是“负”样本。

TN表示预测正确,且预测为负样本的数目。

(3)FP(True Positive): False表示预测错误,Possitve表示预测结果汉堡,表示是“正”样本。

FP表示预测错误,且预测为样本的数目(说明真实标签为样本)

 (4)FN(True Negative): False表示预测错误,Negative表示预测结果不是汉堡,表示是“负”样本。

FP表示预测错误,且预测为样本的数目(说明真实标签为样本)

所有的绿色位置(TP+TN)都表示预测正确。

1.2 三分类的混淆矩阵

[机器学习与scikit-learn-51]:模型评估-图解分类模型的评估指标(准确率、精确率、召回率)与代码示例

我们期望绿色位置中的数值尽可能的大,橙色位置中的数值尽可能得小,最好为0.

所有绿色位置都表示预测正确。

1.3 N分类的混淆矩阵

 [机器学习与scikit-learn-51]:模型评估-图解分类模型的评估指标(准确率、精确率、召回率)与代码示例

我们期望绿色位置中的数值尽可能的大,橙色位置中的数值尽可能得小,最好为0.

所有绿色位置都表示预测正确。

1.4 混淆矩阵的作用

有了混淆矩阵的表格化的数据,我们期望:

  • 绿色位置中的数值尽可能的大。
  • 橙色位置中的数值尽可能得小,最好为0。

现在哟两个分类器,分布得到如下的混淆矩阵的表格:

[机器学习与scikit-learn-51]:模型评估-图解分类模型的评估指标(准确率、精确率、召回率)与代码示例

 但有没有数学化的公式,能够利用混淆矩阵的数据,精确的表示模型不同维度的指标呢?

[机器学习与scikit-learn-51]:模型评估-图解分类模型的评估指标(准确率、精确率、召回率)与代码示例

答案是“有”:准确率、精确率、召回率等关键性指标。

第2章 准确率、精确率、召回率

2.1 准确率/“正确率”:预测结果正确的百分比(只关心预测结果正确的样本,包括负样本)

[机器学习与scikit-learn-51]:模型评估-图解分类模型的评估指标(准确率、精确率、召回率)与代码示例

 准确率A =  模型判断正确的样本数量/总样本数 = (1+5)/(1+5+1+2) = 6/9 =  67%

 准确率B =  模型判断正确的样本数量/总样本数 = (2+3)/(1+5+1+2) = 5/9 =  56%

准确率关注:正样本和负样本

2.2 精确率:预测结果为正例样本中真实为正例的比例(只关心预测结果为正的样本)

准确率关注:只关注正样本,不关注负样本。

[机器学习与scikit-learn-51]:模型评估-图解分类模型的评估指标(准确率、精确率、召回率)与代码示例

 精确率A= 正确判定为正样本的数量/预测为正样本的总数=(1)/(1+2) = 1/3 = 33%

 精确率B= 正确判定为正样本的数量/预测为正样本的总数=(2)/(2+3) = 2/5 = 40%

2.3 召回率:所有真实样本中,判为真实样本的比率(只关心真实样本中的正样本)

[机器学习与scikit-learn-51]:模型评估-图解分类模型的评估指标(准确率、精确率、召回率)与代码示例

 召回率A = 真实样本中正样本预测正确的样本/真实样本中正样本总数=1/2=50%

 召回率B = 真实样本中正样本预测正确的样本/真实样本中正样本总数=2/3=66% 

2.4 公式汇总

[机器学习与scikit-learn-51]:模型评估-图解分类模型的评估指标(准确率、精确率、召回率)与代码示例

2.5 各种指标的几何意义

 [机器学习与scikit-learn-51]:模型评估-图解分类模型的评估指标(准确率、精确率、召回率)与代码示例

[机器学习与scikit-learn-51]:模型评估-图解分类模型的评估指标(准确率、精确率、召回率)与代码示例

 2.6 F1值

召回率与准确率是矛盾的。

召回率越高,就需要更宽松的条件把更多的样本预测为正样本。

准确率越高,就需要更严格的条件更精确的标识样本的正负属性,不能随意的把样本标识为正样本。

F1就是权衡召回率和准确率的指标,期望在召回率联合准确率中间取得一个最佳值,这种最佳值的情况下,召回率不是最高的,准确率也不是最高的,但他们整体的效果是最好的。

[机器学习与scikit-learn-51]:模型评估-图解分类模型的评估指标(准确率、精确率、召回率)与代码示例

2.7 N分类的指标

[机器学习与scikit-learn-51]:模型评估-图解分类模型的评估指标(准确率、精确率、召回率)与代码示例

N分类的指标与二分类类似, 不同的是:

准确率与针对于总体而言的,这与二分类一样。

精确率和召回率是针对某个具体的分类而言的,而不是总体,这与二分类不同。


作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客

本文网址:https://blog.csdn.net/HiWangWenBing/article/details/124437069

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

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/185497.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • matlab如何做向量内积,matlab2010a的bug:* 向量内积的错误解决方案「建议收藏」

    matlab如何做向量内积,matlab2010a的bug:* 向量内积的错误解决方案「建议收藏」很偶然地发现了一个matlab2010a的一个bug:在某种非常特殊的情况下,matlab2010a的向量内积,即*指令会产生错误的结果。下面陈述具体现象:1.程序源代码(注:运行该程序时需要把den1.mat和kern1.mat这两个matlab数据文件与程序放在同一个文件夹中)clc;clear;load(‘den1.mat’);load(‘kern1.mat’);x=kern;y=d…

    2022年9月24日
    2
  • JDK环境变量配置(win10)[通俗易懂]

    JDK环境变量配置(win10)[通俗易懂]前言对于每一位做Java开发人员来说,JDK是必须要安装的,安装好JDK,其实并没有结束,一般情况下还需要配置JDK的环境变量,给大家介绍一下如何在Win10下配置JDK,并检测是否配置成功。步骤使用Windows图标+R,快速打开“运行”操作界面,并输入cmd,回车确认。在命令行输入java–version;如果能显示java的版本信息,则表示不需要配置,下面的步骤也不需要了。打开系统环境变量配置的页面。具体操作是:打开开始菜单,找到“此电脑”,然后右键“更多”→“属性”。在弹出的页面,

    2022年7月21日
    12
  • XGBoost算法梳理[通俗易懂]

    XGBoost算法梳理[通俗易懂]XGBoost是boosting算法的其中一种。Boosting算法的思想是将许多弱分类器集成在一起形成一个强分类器。因为XGBoost是一种提升树模型,所以它是将许多树模型集成在一起,形成一个很强的分类器。而所用到的树模型则是CART回归树模型。讲解其原理前,先讲解一下CART回归树。一、CART回归树CART回归树是假设树为二叉树,通过不断将特征进行分裂。比如当前树结点是基于第j个特征值进…

    2022年6月3日
    43
  • 自动化运维平台功能大纲

    自动化运维平台功能大纲

    2022年5月13日
    35
  • Spring事务隔离级别与数据库隔离级别不一致时,该以谁为准?

    Spring事务隔离级别与数据库隔离级别不一致时,该以谁为准?项目中,以Spring事务为准,因为他重写了数据库的隔离级别,但没有直接修改数据库的隔离级别

    2022年5月25日
    121
  • win10系统无法识别usb大容量移动硬盘_电脑没有usb大容量存储设备选项

    win10系统无法识别usb大容量移动硬盘_电脑没有usb大容量存储设备选项WIN10突然不能使用USB大容量存储设备(移动硬盘)的解决方法昨天开始使用usb硬盘,发现一块无法识别,一块识别好了以后不能打开。可能是之前一次系统更新有bug,但是一直也没有用移动硬盘,所以没有发现。 开始尝试各种方案,已经尝试过并且无效的有以下几个:1,卸载usb驱动,重启后系统自动安装,没有用;2,驱动精灵,没有用;3,驱动人生,没有用;4,驱动禁用启用

    2022年9月27日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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