[机器学习与scikit-learn-51]:模型评估-图解分类模型的评估指标(准确率精确率召回率)与代码示例
Posted 文火冰糖的硅基工坊
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[机器学习与scikit-learn-51]:模型评估-图解分类模型的评估指标(准确率精确率召回率)与代码示例相关的知识,希望对你有一定的参考价值。
作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客
本文网址:https://blog.csdn.net/HiWangWenBing/article/details/124437069
目录
2.1 准确率/“正确率”:预测结果正确的百分比(只关心预测结果正确的样本,包括负样本)
2.2 精确率:预测结果为正例样本中真实为正例的比例(只关心预测结果为正的样本)
2.3 召回率:所有真实样本中,判为真实样本的比率(只关心真实样本中的正样本)
前言:
分类模型与回归模型的重要区别是,分类模型的预测值是离散量,而回归模型的预测值是连续量。回归模型的输出的数值是有实际的物理意义,数值之前是可以进行数值运算,可以进行比较大小的,因此分类模型的评估基础是残差(预测值减去真实值),而分类模型的输出值没有物理意义,只是某种类型的一种指代,输出数值之间不能进行直接运算,也无法进行比较,如果0,1,2,3,4五中分类,它们之间是没有大小的,不能说分类0就比分类4小。这就决定了分类模型的评估指标与回归模型的评估指标是完全不一样的计算方法!
第1章 混淆矩阵
1.1 二分类的混淆矩阵
匹配矩阵实际是一个表格,用来记录分类模型对样本数据的预测结果和样本数据真实情况之间关系的可视化表示的表格。
在上述案例中:
样本数据:就是上述9张图片。
样本真实标签类别:就是上述图片是否为汉堡,如果是汉堡,这标示成圆圈,如果不是,这表示成X. 在上述案例中,只有两张图是汉堡,其他图片都不是汉堡,位置为(1,2)、(2,3)
样本预测结果类别:模型对上述图片预测是否为汉堡的结果,如果是汉堡,这标示成圆圈,如果不是,这表示成X. 在上述案例中,有三张图被预测为汉堡,位置范围(2, 2)、(2,3)、(3,3)
很显然:
(2,2)和(3,3)是预测错误的,把非汉堡预测为汉堡了,这种称为
(1,2)也是预测错误的,把真实的汉堡预测成非汉堡了,这种称为漏网之鱼
(2,3)是预测对的,真实的汉堡,预测也为汉堡
其他也是预测对的,真实图片不是汉堡,预测结果也是“不是汉堡”
于是得到如下的表格:
在上图中,预测和真实类别都用了“是”和“不是”表示。
为了进一步的区分方格子中数值的含义(用来标识预测的结果)
样本预测结果类别:“是”用Postive表示,即正样本、“不是”用Negative表示,即负样本。
样本预测结果属性(不是类别):预测正确用True表示,预测错误用“Flase”表示。
注意:
这里的正确(True)有两种情形:标签是汉堡,预测为汉堡;标签不是汉堡,预测不是汉堡,都表明是预测正确。
这里的错误(False)有两种情形:标签是汉堡,预测不是汉堡;标签不是汉堡,预测是汉堡,都表明是预测错误。
于是得到如下的图,即混淆矩阵:
(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 三分类的混淆矩阵
我们期望绿色位置中的数值尽可能的大,橙色位置中的数值尽可能得小,最好为0.
所有绿色位置都表示预测正确。
1.3 N分类的混淆矩阵
我们期望绿色位置中的数值尽可能的大,橙色位置中的数值尽可能得小,最好为0.
所有绿色位置都表示预测正确。
1.4 混淆矩阵的作用
有了混淆矩阵的表格化的数据,我们期望:
- 绿色位置中的数值尽可能的大。
- 橙色位置中的数值尽可能得小,最好为0。
现在哟两个分类器,分布得到如下的混淆矩阵的表格:
但有没有数学化的公式,能够利用混淆矩阵的数据,精确的表示模型不同维度的指标呢?
答案是“有”:准确率、精确率、召回率等关键性指标。
第2章 准确率、精确率、召回率
2.1 准确率/“正确率”:预测结果正确的百分比(只关心预测结果正确的样本,包括负样本)
准确率A = 模型判断正确的样本数量/总样本数 = (1+5)/(1+5+1+2) = 6/9 = 67%
准确率B = 模型判断正确的样本数量/总样本数 = (2+3)/(1+5+1+2) = 5/9 = 56%
准确率关注:正样本和负样本
2.2 精确率:预测结果为正例样本中真实为正例的比例(只关心预测结果为正的样本)
准确率关注:只关注正样本,不关注负样本。
精确率A= 正确判定为正样本的数量/预测为正样本的总数=(1)/(1+2) = 1/3 = 33%
精确率B= 正确判定为正样本的数量/预测为正样本的总数=(2)/(2+3) = 2/5 = 40%
2.3 召回率:所有真实样本中,判为真实样本的比率(只关心真实样本中的正样本)
召回率A = 真实样本中正样本预测正确的样本/真实样本中正样本总数=1/2=50%
召回率B = 真实样本中正样本预测正确的样本/真实样本中正样本总数=2/3=66%
2.4 公式汇总
2.5 各种指标的几何意义
2.6 F1值
召回率与准确率是矛盾的。
召回率越高,就需要更宽松的条件把更多的样本预测为正样本。
准确率越高,就需要更严格的条件更精确的标识样本的正负属性,不能随意的把样本标识为正样本。
F1就是权衡召回率和准确率的指标,期望在召回率联合准确率中间取得一个最佳值,这种最佳值的情况下,召回率不是最高的,准确率也不是最高的,但他们整体的效果是最好的。
2.7 N分类的指标
N分类的指标与二分类类似, 不同的是:
准确率与针对于总体而言的,这与二分类一样。
精确率和召回率是针对某个具体的分类而言的,而不是总体,这与二分类不同。
作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客
本文网址:https://blog.csdn.net/HiWangWenBing/article/details/124437069
以上是关于[机器学习与scikit-learn-51]:模型评估-图解分类模型的评估指标(准确率精确率召回率)与代码示例的主要内容,如果未能解决你的问题,请参考以下文章