【分类模型评判指标⼀】混淆矩阵(ConfusionMatrix)
转⾃:略有改动,仅供个⼈学习使⽤
简介
混淆矩阵是ROC曲线绘制的基础,同时它也是衡量分类型模型准确度中最基本,最直观,计算最简单的⽅法。
⼀句话解释版本:混淆矩阵就是分别统计分类模型归错类,归对类的观测值个数,然后把结果放在⼀个表⾥展⽰出来。这个表就是混淆矩
阵。
数据分析与挖掘体系位置
混淆矩阵是评判模型结果的指标,属于模型评估的⼀部分。此外,混淆矩阵多⽤于判断分类器(Classifier)的优劣,适⽤于分类型的数据模
型,如分类树(ClassificationTree)、逻辑回归(LogisticRegression)、线性判别分析(LinearDiscriminantAnalysis)等⽅法。
在分类型模型评判的指标中,常见的⽅法有如下三种:
混淆矩阵(也称误差矩阵,ConfusionMatrix)
ROC曲线
AUC⾯积本⽂主要介绍第⼀种⽅法,即混淆矩阵,也称误差矩阵。
此⽅法在整个数据分析与挖掘体系中的位置如下图所⽰。
混淆矩阵的定义
混淆矩阵(ConfusionMatrix),它的本质远没有它的名字听上去那么拉风。矩阵,可以理解为就是⼀张表格,混淆矩阵其实就是⼀张表格
⽽已。
以分类模型中最简单的⼆分类为例,对于这种问题,我们的模型最终需要判断样本的结果是0还是1,或者说是positive还是negative。
我们通过样本的采集,能够直接知道真实情况下,哪些数据结果是positive,哪些结果是negative。同时,我们通过⽤样本数据跑出分类型模
型的结果,也可以知道模型认为这些数据哪些是positive,哪些是negative。
因此,我们就能得到这样四个基础指标,我称他们是⼀级指标(最底层的):
真实值是positive,模型认为是positive的数量(TruePositive=TP)
真实值是positive,模型认为是negative的数量(FalNegative=FN):这就是统计学上的第⼀类错误(TypeIError)
真实值是negative,模型认为是positive的数量(FalPositive=FP):这就是统计学上的第⼆类错误(TypeIIError)
真实值是negative,模型认为是negative的数量(TrueNegative=TN)
将这四个指标⼀起呈现在表格中,就能得到如下这样⼀个矩阵,我们称它为混淆矩阵(ConfusionMatrix):
混淆矩阵的指标
预测性分类模型,肯定是希望越准越好。那么,对应到混淆矩阵中,那肯定是希望TP与TN的数量⼤,⽽FP与FN的数量⼩。所以当我们得
到了模型的混淆矩阵后,就需要去看有多少观测值在第⼆、四象限对应的位置,这⾥的数值越多越好;反之,在第⼀、三四象限对应位置出
现的观测值肯定是越少越好。
⼆级指标
但是,混淆矩阵⾥⾯统计的是个数,有时候⾯对⼤量的数据,光凭算个数,很难衡量模型的优劣。因此混淆矩阵在基本的统计结果上⼜延伸
了如下4个指标,我称他们是⼆级指标(通过最底层指标加减乘除得到的):
准确率(Accuracy)——针对整个模型
精确率(Precision)
灵敏度(Sensitivity):就是召回率(Recall)
特异度(Specificity)
我⽤表格的⽅式将这四种指标的定义、计算、理解进⾏了汇总:
通过上⾯的四个⼆级指标,可以将混淆矩阵中数量的结果转化为0-1之间的⽐率。便于进⾏标准化的衡量。
在这四个指标的基础上在进⾏拓展,会产令另外⼀个三级指标
三级指标
这个指标叫做F1Score。他的计算公式是:
其中,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,ConfusionMatrix的解释,/wiki/Confusion_matrix)
F1-Score
通过公式,可以计算出,对猫⽽⾔,F1-Score=(2*0.769*0.556)/(0.769+0.556)=64.54%
同样,我们也可以分别计算猪与狗各⾃的⼆级指标与三级指标值。
本文发布于:2022-11-27 12:59:51,感谢您对本站的认可!
本文链接:http://www.wtabcd.cn/fanwen/fan/90/31127.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |