混淆矩阵介绍以及评价指标(准确率,精确率,召回率,特异度,假警报率,G-mean,F1_score,KS值)
混淆矩阵
混淆矩阵(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=PrecisionweightRecallweight
Recallweight+Precisionweight=1Recall_{weight}+Precision_{weight}=1Recallweight+Precisionweight=1
在实际的情况中可能对于查全率和查准率的要求不同、比如对于推荐系统而言(百度关键词检索),查准率比较重要;而对于逃犯系统,查全率重要。
进行推导:
- 由后面两个公式,可以得出
1+β2=1Precisionweight1+β^2 = \frac{1}{Precision_{weight}}1+β2=Precisionweight1 - 带权重的调和平均数公式如下:
1Fβ=1PrecisionweightPrecision+RecallweightRecall\frac{1}{F_{β}} = \frac{1}{\frac{Precision_{weight}}{Precision}+\frac{Recall_{weight}}{Recall}} Fβ1=PrecisionPrecisionweight+RecallRecallweight1 - 进一步推导:
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=PrecisionweightRecallweight∗Precision+RecallPrecisionweightPrecision∗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值)相关推荐
- R语言使用caret包的confusionMatrix函数计算混淆矩阵、基于混淆矩阵的信息手动编写函数计算Specificity、特异度指标
R语言使用caret包的confusionMatrix函数计算混淆矩阵.基于混淆矩阵的信息手动编写函数计算Specificity指标 目录
- python多分类画混淆矩阵_【AI基础】分类器评估一:混淆矩阵、准确率、精确率、召回率、灵敏度、特异度、误诊率、漏诊率...
混淆矩阵 在机器学习中尤其是统计分类中,混淆矩阵(confusion matrix),也被称为错误矩阵(error matrix).之所以叫做混淆矩阵,是因为能够很容易的看到机器学习有没有将样本的类别 ...
- R语言使用lightgbm包构建多分类的LightGBM模型、caret包的confusionMatrix函数输出多分类混淆矩阵(包含:准确率及其置信区、p值、Kappa、特异度、灵敏度等)
R语言使用lightgbm包构建多分类的LightGBM模型.caret包的confusionMatrix函数输出多分类混淆矩阵(包含:准确率及其置信区.p值.Kappa.特异度.灵敏度等) 目录
- 假阳率(第一类错误)、假阴率,召回率、精确率
为什么统计检验中常关注假阳率(第一类错误)和假阴率(第二类错误),而机器学习中常关注准确率和精确率? 最根本的原因是统计检验的零假设和备择假设是"不平等"的两类.而机器学习的分类一 ...
- 画混淆矩阵,并根据矩阵计算准确率、每个类别的精确率和召回率
TP(True Positives):实际为正例并且预测为正例 FP(False Postives):实际为反例但是预测为正例 TN(True Negatives):实际为反例并且预测为反例 FN(F ...
- 混淆矩阵及分类评价指标概念辨析
分类评价指标概念辨析 这些东西其实没什么难的,而且很多人肯定也是很早就接触过了,最大的问题在于时间长了记不住,所以就尽量解释的简单写,用于下次查阅使用. 主要需要理解的就是二分类的指标. ...
- 【模型评估】混淆矩阵(confusion_matrix)之 TP、FP、TN、FN;敏感度、特异度、准确率、精确率
你这蠢货,是不是又把酸葡萄和葡萄酸弄"混淆"啦!!!这里的混淆,我们细品,帮助我们理解名词"混淆矩阵" 上面日常情况中的混淆就是:是否把某两件东西或者多件东西给 ...
- 机器学习模型评价指标:准确率(Precision)、召回率(Recall)、F值(F-Measure)、ROC曲线、PR曲线
转自机器学习:准确率(Precision).召回率(Recall).F值(F-Measure).ROC曲线.PR曲线 摘要: 数据挖掘.机器学习和推荐系统中的评测指标-准确率(Precision).召 ...
- 机器学习算法中的准确率(Precision)、召回率(Recall)、F值(F-Measure)
转载自:https://www.cnblogs.com/Zhi-Z/p/8728168.html 摘要: 数据挖掘.机器学习和推荐系统中的评测指标-准确率(Precision).召回率(Recall) ...
最新文章
- 886n虚拟服务器,教程:普联TL-WR886N V2-V3如何设置虚拟服务器
- 一个恶心的无法同步服务器与pda时间的龌龊问题
- 运行 composer update,提示 Allowed memory size of bytes exhausted
- DL之RBM:(sklearn自带数据集为1797个样本*64个特征+5倍数据集)深度学习之BRBM模型学习+LR进行分类实现手写数字图识别
- 2022考研 【理工专场讲座(新政策分析、专业分析、复习建议)】
- axture动画原型制作_Axure制作原型-基础操作
- 算法章节 数组、链表、栈、队列
- MySQL server has gone away报错原因分析
- [解决方案]WebAPI+SwaggerUI部署服务器后,访问一直报错的问题
- 【智能家居篇】wifi网络结构(下)
- find命令之正则表达式
- MySQL用C访问的示例代码
- 【从线性回归到BP神经网络】第二部分:线性回归
- Ms08067 de 阿青姐姐告诉你为什么要学Python内网开发,不看是你的损失!
- 王润涵:如何用链脉名片打造朋友圈自明星
- 设计模式之内容观察者模式
- 【面试】面试常问之堆栈的区别
- Oracle卸载详细步骤
- Unity3D魔方游戏如何完成魔方的旋转
- 2017-2018-1 Java演绎法 第一周 作业
热门文章
- ES双中心数据稽核(同步)
- List、Set、Map的特点及遍历方法
- Linux下的epf 是什么?
- 理解姿势: 姿势连锁反应—笔记
- JavaScript过渡
- 神舟战神换cpu教程_神舟战神K540D-I7 D1 拆机 清灰 装内存 教程
- 基于cocos2dx,在android的游戏中加入google play game排行榜。
- 人工智能,可谓炙手可热,无人不知,无人不晓
- Unity3D RPG实现 2 —— 背包系统
- 横版java_Project4 自己用java写的横版格斗游戏
功能还不是很复杂
可以作为参考~ Other Games 其他 238万源代码下载- www.pudn.com...