[Machine-Learning] 机器学习中的几个度量指标
Several classification metrics for ML/DM methods.
主要解释下机器学习(或数据挖掘)中的几个度量指标。
1. 关于 "TN/TP/FN/FP"
在预测过程中,经常会出现这几个名词,先是解释下字面意思:
- TN: True Negative (真负),被模型预测为负的样本,模型预测对了
- TP: True Positive (真正),被模型预测为正的样本,模型预测对了
- FN: False Negative (假负),被模型预测为负的样本,模型预测错了
- FP: False Positive (假正),被模型预测为正的样本,模型预测错了
可以看出来,两个字母的后面一个字母(N or P ),是模型预测的结果,而第一个字母(T or N ) 代表的是这个结果的正确与否;下面用一个表格来表示一下:
| Actual Class: X | Actual Class: not X | |
|---|---|---|
| Predicted Class: X | TP | FP |
| Predicted Class: not X | FN | TN |
Table.1: BINARY CONFUSION MATRIX
从上面这个表格中也能比较直观地分辨这4个指标:横轴代表结果实际的情况,而纵轴代表了该例子被模型预测的情况。
2. 常用于二分类问题(监督学习)的度量指标
2.1 准确率 or 正确比例:
Accuracy or Proportion Correct

计算方法:(TN + TP) / (TP + TN + FP + FN)
需要注意的是:当分类问题是平衡(blanced)的时候,准确率可以较好地反映模型的优劣程度,但不适用于数据集不平衡的时候。
例如:分类问题的数据集中本来就有97% 示例是属于X,只有另外3%不属于X,所有示例都被分类成X的时候,准确率仍然高达97%,但这没有任何意义。
2.2 PPV or 正预测值:
PPV = Positive Predictive Value 。

计算方法:TP / ( TP + FP )
模型预测属于X的示例(instance)中,预测正确(真正属于X)的比例。
2.3 召回率 or TP Rate:
Sensitivity(灵敏度) orRecall or True Positive Rate or Probability。

计算方法: TP / (TP + FN)
真正属于X的示例中,成功预测为属于X(TP)的比例。
2.4 NPV or 错误预测正确率:
NPV = Negative Predictive Value

计算方法:TN / (TN + FN)
模型预测不属于X的示例中,预测正确(TN)的比例;那个中文是我自己翻译的,凑活看吧。。。这个和PPV比较像。
2.5 TN Rate:
Specificity or True Negative Rate

计算方法:TN / (TN + FP)
真正不属于X的示例中,被预测成不属于X的示例所占的比例。(已经无力翻译成中文名称了。。。)
2.6 FP rate or FAR or Fall-out:
FAR = 1-Specificity

计算方法:FP / (TN + FP)
真正不属于X的示例中,模型预测成属于X的(预测失败)示例所占的比例。
在分类问题中,在灵敏度和FAR两者之间要保持一个平衡(折中)。这种折中要通过ROC曲线来表示,在Y轴上表示灵敏度,在X轴上表示FAR。 较高的FAR导致较高的灵敏度,较低的FAR导致较低的灵敏度。 通常,FAR不能高于某个数,这就是最终分类器的选择。
3. 多分类问题中的度量指标
- Overall Accuracy:被正确分类的示例在数据集中的比例。
- Class detection rate:来自给定类的例子正确地分类占来自给定类的所有样本得比例。
- Class FAR or class FP rate:一个类别中分类错误(未被分到这个类)的示例占所有不是这个类的示例的比例。
在多分类问题中计算PPV和NPV是可行的,但是通常不这么做
reference
- Anna L. Buczak, Erhan Guven, "A Survey of Data Mining and Machine Learning Methods for Cyber Security Intrusion Detection", IEEE COMMUNICATIONS SURVEYS & TUTORIALS VOL. 18, NO. 2, SECOND QUARTER 2016
[Machine-Learning] 机器学习中的几个度量指标的更多相关文章
- Machine learning | 机器学习中的范数正则化
目录 1. \(l_0\)范数和\(l_1\)范数 2. \(l_2\)范数 3. 核范数(nuclear norm) 参考文献 使用正则化有两大目标: 抑制过拟合: 将先验知识融入学习过程,比如稀疏 ...
- Portal:Machine learning机器学习:门户
Machine learning Machine learning is a scientific discipline that explores the construction and stud ...
- [原创]Machine Learning/机器学习 文章合集
转载请注明出处:https://www.codelast.com/ ➤ 用人话解释机器学习中的Logistic Regression(逻辑回归) ➤ 如何防止softmax函数上溢出(overflow ...
- machine learning----->Amazon Machine Learning机器学习平台
参考资料: 1.如何使用Amazon Machine Learning平台构建你的机器学习预测模型 2.
- 【原】Coursera—Andrew Ng机器学习—课程笔记 Lecture 10—Advice for applying machine learning 机器学习应用建议
Lecture 10—Advice for applying machine learning 10.1 如何调试一个机器学习算法? 有多种方案: 1.获得更多训练数据:2.尝试更少特征:3.尝试更多 ...
- Machine Learning:机器学习算法
原文链接:https://riboseyim.github.io/2018/02/10/Machine-Learning-Algorithms/ 摘要 机器学习算法分类:监督学习.半监督学习.无监督学 ...
- Data Leakage in Machine Learning 机器学习训练中的数据泄漏
refer to: https://www.kaggle.com/dansbecker/data-leakage There are two main types of leakage: Leaky ...
- [Machine Learning] 机器学习常见算法分类汇总
声明:本篇博文根据http://www.ctocio.com/hotnews/15919.html整理,原作者张萌,尊重原创. 机器学习无疑是当前数据分析领域的一个热点内容.很多人在平时的工作中都或多 ...
- 【Machine Learning·机器学习】决策树之ID3算法(Iterative Dichotomiser 3)
目录 1.什么是决策树 2.如何构造一棵决策树? 2.1.基本方法 2.2.评价标准是什么/如何量化评价一个特征的好坏? 2.3.信息熵.信息增益的计算 2.4.决策树构建方法 3.算法总结 @ 1. ...
随机推荐
- MacPort 的使用
MacPorts 的安装和使用 官网下载最版本的 安装包 自动安装 可能会出现很慢的情况 设置环境变量 vim ~/.bash_profile i 插入修改 :wq 保 ...
- Mysql和Oracle数据库concat()函数
一.函数的使用参数不同 Mysql支持多个字符串拼接: CONCAT(str1,str2,-) Oralce只支持两个字符串的拼接,若想拼接多个字符串可以嵌套使用concat CONCAT(str1, ...
- 通过 --py-files 可以在pyspark中可以顺利导入
文件import问题 问题: 在脚本中import了其他文件, pyspark中可以运行, 但是在spark-submit中总是失败 假定我们的任务脚本为 app.py , 大体代码像这样: from ...
- window下从python开始安装科学计算环境
Numpy等Python科学计算包的安装与配置 参考: 1.下载并安装 http://www.jb51.net/article/61810.htm 1.安装easy_install,就是为了我们安装第 ...
- Android课程---String、StringBuffer 、StringBuilder 的区别(转)
String 字符串常量 StringBuffer 字符串变量(线程安全) StringBuilder 字符串变量(非线程安全) 简要的说, String 类型和 StringBuffer 类型的主 ...
- Java Web(转)
struts2+spring+hibernate 上传文件 关 键字: s2sh 上传文件 struts2 spring hibernate 前段时间,我用struts2.1.6.spring2.5. ...
- 使用beanUtils操纵javabean
Sun公司的内省API过于繁琐,所以Apache组织结合很多实际开发中的应用场景开发了一套简单.易用的API操作Bean的属性——BeanUtils,在Beanutil中可以直接进行类型的自动转换. ...
- 点击某个按钮弹出 photoswip
var openPhotoSwipe = function() { var pswpElement = document.querySelectorAll('.pswp')[0]; // build ...
- Java类成员(成员变量和方法)的覆盖与隐藏归纳
以前就知道重写override和重载overload的区别,平时也是逮着用就是了,Eclipse报错再说. 最近看一本书里面出现了重写.替换.覆盖.置换.隐藏.重载,简直乱得不行,归纳整理一下. 从全 ...
- win7下用mklink命令解决delphiXE系列占用C盘空间的问题
DelphiXE从2010以后, 安装程序安装完成后都会在ProgramData目录里复制一份安装程序的备份, 随着版本升级安装包越来越大, 占用C盘的空间也就越来越大 虽然可以通过删除的方式删掉, ...