混淆矩阵


混淆矩阵(Confusion Matrix),可以理解为就是一张表格。混淆这个名字还是很有内涵的,咳咳。

混淆矩阵是判断分类好坏程度的一种方法。另外还有ROC曲线和AUC曲线。

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

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

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

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

混淆矩阵的指标

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

二级指标

准确率(Accuracy)

Accuracy=TP+TNTP+FP+TN+FNAccuracy= \frac{TP+TN}{TP+FP+TN+FN}Accuracy=TP+FP+TN+FNTP+TN​

精确率(Precision)——查准率

Precision=TPTP+FPPrecision= \frac{TP}{TP+FP}Precision=TP+FPTP​

举个例子:你百度搜索关键字,你希望看到的是TP,而它给你返回的是TP+FP,此时其实只有TP是准确的。

查全率、召回率、反馈率(Recall),也称灵敏度(Sensitivity)-TPR(真阳性率)

TPR=Sensitivity=Recall=TPTP+FNTPR=Sensitivity=Recall= \frac{TP}{TP+FN}TPR=Sensitivity=Recall=TP+FNTP​

特异度(Specificity)-TNR(真阴性率)

TNR=Specificity=TNTN+FPTNR=Specificity= \frac{TN}{TN+FP}TNR=Specificity=TN+FPTN​

FPR(假阳性率,假警报率)

FPR=TNTN+FPFPR= \frac{TN}{TN+FP}FPR=TN+FPTN​

三级指标

G-mean

G−mean=Recall∗SpecificityG-mean = \sqrt[]{Recall*Specificity}G−mean=Recall∗Specificity​

该指标可以用来评定数据的不平衡度

F1_score

狭义F1

F1=2∗Precision∗RecallPrecision+RecallF1= \frac{2*Precision*Recall}{Precision+Recall}F1=Precision+Recall2∗Precision∗Recall​

范式

Fβ=(1+β2)∗Precision∗Recallβ2∗Precision+RecallF_β= \frac{(1+β^2)*Precision*Recall}{β^2*Precision+Recall}Fβ​=β2∗Precision+Recall(1+β2)∗Precision∗Recall​
β2=RecallweightPrecisionweightβ^2= \frac{Recall_{weight}}{Precision_{weight}}β2=Precisionweight​Recallweight​​
Recallweight+Precisionweight=1Recall_{weight}+Precision_{weight}=1Recallweight​+Precisionweight​=1

在实际的情况中可能对于查全率和查准率的要求不同、比如对于推荐系统而言(百度关键词检索),查准率比较重要;而对于逃犯系统,查全率重要。

进行推导:

  1. 由后面两个公式,可以得出
    1+β2=1Precisionweight1+β^2 = \frac{1}{Precision_{weight}}1+β2=Precisionweight​1​
  2. 带权重的调和平均数公式如下:
    1Fβ=1PrecisionweightPrecision+RecallweightRecall\frac{1}{F_{β}} = \frac{1}{\frac{Precision_{weight}}{Precision}+\frac{Recall_{weight}}{Recall}} Fβ​1​=PrecisionPrecisionweight​​+RecallRecallweight​​1​
  3. 进一步推导:
    Fβ=Precision∗RecallRecallweight∗Precision+Precisionweight∗Recall=Precision∗RecallPrecisionweightRecallweightPrecisionweight∗Precision+Recall=(1+β2)∗Precision∗Recallβ2∗Precision+RecallF_β = \frac{Precision*Recall}{Recall_{weight}*Precision+Precision_{weight}*Recall} \\ = \frac{\frac{Precision*Recall}{Precision_{weight}}}{\frac{Recall{weight}}{Precision_{weight}}*Precision+Recall} \qquad\qquad \\ = \frac{(1+β^2)*Precision*Recall}{β^2*Precision+Recall} \qquad\qquad \qquad Fβ​=Recallweight​∗Precision+Precisionweight​∗RecallPrecision∗Recall​=Precisionweight​Recallweight​∗Precision+RecallPrecisionweight​Precision∗Recall​​=β2∗Precision+Recall(1+β2)∗Precision∗Recall​

KS值

KS=max(TPR−FPR)KS=max(TPR-FPR)KS=max(TPR−FPR)

KS(Kolmogorov-Smirnov)值越大,表示模型能够将正、负客户区分开的程度越大。
这个跟模型设置的判断的阈值有很大关系。

混淆矩阵介绍以及评价指标(准确率,精确率,召回率,特异度,假警报率,G-mean,F1_score,KS值)相关推荐

  1. R语言使用caret包的confusionMatrix函数计算混淆矩阵、基于混淆矩阵的信息手动编写函数计算Specificity、特异度指标

    R语言使用caret包的confusionMatrix函数计算混淆矩阵.基于混淆矩阵的信息手动编写函数计算Specificity指标 目录

  2. python多分类画混淆矩阵_【AI基础】分类器评估一:混淆矩阵、准确率、精确率、召回率、灵敏度、特异度、误诊率、漏诊率...

    混淆矩阵 在机器学习中尤其是统计分类中,混淆矩阵(confusion matrix),也被称为错误矩阵(error matrix).之所以叫做混淆矩阵,是因为能够很容易的看到机器学习有没有将样本的类别 ...

  3. R语言使用lightgbm包构建多分类的LightGBM模型、caret包的confusionMatrix函数输出多分类混淆矩阵(包含:准确率及其置信区、p值、Kappa、特异度、灵敏度等)

    R语言使用lightgbm包构建多分类的LightGBM模型.caret包的confusionMatrix函数输出多分类混淆矩阵(包含:准确率及其置信区.p值.Kappa.特异度.灵敏度等) 目录

  4. 假阳率(第一类错误)、假阴率,召回率、精确率

    为什么统计检验中常关注假阳率(第一类错误)和假阴率(第二类错误),而机器学习中常关注准确率和精确率? 最根本的原因是统计检验的零假设和备择假设是"不平等"的两类.而机器学习的分类一 ...

  5. 画混淆矩阵,并根据矩阵计算准确率、每个类别的精确率和召回率

    TP(True Positives):实际为正例并且预测为正例 FP(False Postives):实际为反例但是预测为正例 TN(True Negatives):实际为反例并且预测为反例 FN(F ...

  6. 混淆矩阵及分类评价指标概念辨析

    分类评价指标概念辨析   这些东西其实没什么难的,而且很多人肯定也是很早就接触过了,最大的问题在于时间长了记不住,所以就尽量解释的简单写,用于下次查阅使用.   主要需要理解的就是二分类的指标.    ...

  7. 【模型评估】混淆矩阵(confusion_matrix)之 TP、FP、TN、FN;敏感度、特异度、准确率、精确率

    你这蠢货,是不是又把酸葡萄和葡萄酸弄"混淆"啦!!!这里的混淆,我们细品,帮助我们理解名词"混淆矩阵" 上面日常情况中的混淆就是:是否把某两件东西或者多件东西给 ...

  8. 机器学习模型评价指标:准确率(Precision)、召回率(Recall)、F值(F-Measure)、ROC曲线、PR曲线

    转自机器学习:准确率(Precision).召回率(Recall).F值(F-Measure).ROC曲线.PR曲线 摘要: 数据挖掘.机器学习和推荐系统中的评测指标-准确率(Precision).召 ...

  9. 机器学习算法中的准确率(Precision)、召回率(Recall)、F值(F-Measure)

    转载自:https://www.cnblogs.com/Zhi-Z/p/8728168.html 摘要: 数据挖掘.机器学习和推荐系统中的评测指标-准确率(Precision).召回率(Recall) ...

最新文章

  1. 886n虚拟服务器,教程:普联TL-WR886N V2-V3如何设置虚拟服务器
  2. 一个恶心的无法同步服务器与pda时间的龌龊问题
  3. 运行 composer update,提示 Allowed memory size of bytes exhausted
  4. DL之RBM:(sklearn自带数据集为1797个样本*64个特征+5倍数据集)深度学习之BRBM模型学习+LR进行分类实现手写数字图识别
  5. 2022考研 【理工专场讲座(新政策分析、专业分析、复习建议)】
  6. axture动画原型制作_Axure制作原型-基础操作
  7. 算法章节 数组、链表、栈、队列
  8. MySQL server has gone away报错原因分析
  9. [解决方案]WebAPI+SwaggerUI部署服务器后,访问一直报错的问题
  10. 【智能家居篇】wifi网络结构(下)
  11. find命令之正则表达式
  12. MySQL用C访问的示例代码
  13. 【从线性回归到BP神经网络】第二部分:线性回归
  14. Ms08067 de 阿青姐姐告诉你为什么要学Python内网开发,不看是你的损失!
  15. 王润涵:如何用链脉名片打造朋友圈自明星
  16. 设计模式之内容观察者模式
  17. 【面试】面试常问之堆栈的区别
  18. Oracle卸载详细步骤
  19. Unity3D魔方游戏如何完成魔方的旋转
  20. 2017-2018-1 Java演绎法 第一周 作业

热门文章

  1. ES双中心数据稽核(同步)
  2. List、Set、Map的特点及遍历方法
  3. Linux下的epf 是什么?
  4. 理解姿势: 姿势连锁反应—笔记
  5. JavaScript过渡
  6. 神舟战神换cpu教程_神舟战神K540D-I7 D1 拆机 清灰 装内存 教程
  7. 基于cocos2dx,在android的游戏中加入google play game排行榜。
  8. 人工智能,可谓炙手可热,无人不知,无人不晓
  9. Unity3D RPG实现 2 —— 背包系统
  10. 横版java_Project4 自己用java写的横版格斗游戏 功能还不是很复杂 可以作为参考~ Other Games 其他 238万源代码下载- www.pudn.com...