在使用机器学习算法的过程中,针对不同场景需要不同的评价指标,在这里对常用的指标进行一个简单的汇总。

一、分类

1. 精确率与召回率

精确率与召回率多用于二分类问题。精确率(Precision)指的是模型判为正的所有样本中有多少是真正的正样本;召回率(Recall)指的是所有正样本有多少被模型判为正样本,即召回。设模型输出的正样本集合为$A$,真正的正样本集合为$B$,则有:

$\text{Precision}(A,B)=\frac{|A\bigcap B|}{|A|},\text{Recall}(A,B)=\frac{|A\bigcap B|}{|B|}$。

有时候我们需要在精确率与召回率间进行权衡,一种选择是画出精确率-召回率曲线(Precision-Recall Curve),曲线下的面积被称为AP分数(Average precision score);另外一种选择是计算$F_{\beta}$分数:

$F_{\beta}=(1+\beta^2)\cdot\frac{\text{precision}\cdot\text{recall}}{\beta^2\cdot\text{precision}+\text{recall}}$。

当$\beta=1$称为$F_1$分数,是分类与信息检索中最常用的指标之一。

2. ROC

设模型输出的正样本集合为$A$,真正的正样本集合为$B$,所有样本集合为$C$,我们称$\frac{|A\bigcap B|}{|B|}$为真正率(True-positive rate),$\frac{|A- B|}{|C-B|}$为假正率(False-positive rate)。

ROC曲线适用于二分类问题,以假正率为横坐标,真正率为纵坐标的曲线图,如:

AUC分数是曲线下的面积(Area under curve),越大意味着分类器效果越好。

3. 对数损失

对数损失(Log loss)亦被称为逻辑回归损失(Logistic regression loss)或交叉熵损失(Cross-entropy loss)。

对于二分类问题,设$y\in\{0,1\}$且$p={\rm Pr}(y=1)$,则对每个样本的对数损失为:

$L_{\rm log}(y,p)=-\log{\rm Pr}(y|p)=-(y\log(p)+(1-y)\log(1-p))$。

可以很容易地将其扩展到多分类问题上。设$Y$为指示矩阵,即当样本$i$的分类为$k$时$y_{i,k}=1$;设$P$为估计的概率矩阵,即$p_{i,k}={\rm Pr}(t_{i,k}=1)$,则对每个样本的对数损失为:

$L_{\log}(Y_i,P_i)=-\log{\rm Pr}(Y_i|P_i)=\sum\limits_{k=1}^{K}y_{i,k}\log p_{i,k}$。

4. 铰链损失

铰链损失(Hinge loss)一般用来使“边缘最大化”(maximal margin)。

铰链损失最开始出现在二分类问题中,假设正样本被标记为1,负样本被标记为-1,$y$是真实值,$w$是预测值,则铰链损失定义为:

$L_{\text{Hinge}}(w, y)=\max\{1-wy,0\}=|1-wy|_+$。

然后被扩展到多分类问题,假设$y_w$是对真实分类的预测值,$y_t$是对非真实分类预测中的最大值,则铰链损失定义为:

$L_{\text{Hinge}}(y_w, y_t)=\max\{1+y_t-y_w,0\}$。

注意,二分类情况下的定义并不是多分类情况下定义的特例。

5. 混淆矩阵

混淆矩阵(Confusion Matrix)又被称为错误矩阵,通过它可以直观地观察到算法的效果。它的每一列是样本的预测分类,每一行是样本的真实分类(反过来也可以),顾名思义,它反映了分类结果的混淆程度。混淆矩阵$i$行$j$列的原始是原本是类别$i$却被分为类别$j$的样本个数,计算完之后还可以对之进行可视化:

6. kappa系数

kappa系数(Cohen’s kappa)用来衡量两种标注结果的吻合程度,标注指的是把N个样本标注为C个互斥类别。计算公式为

$\mathcal{K}=\frac{p_o-p_e}{1-p_e}=1-\frac{1-p_o}{1-p_e}$。

其中$p_o$是观察到的符合比例,$p_e$是由于随机性产生的符合比例。当两种标注结果完全相符时,$\mathcal{K}=1$,越不相符其值越小,甚至是负的。

是不是云里来雾里去的,现在举个栗子,对于50个测试样本的二分类问题,预测与真实分布情况如下表:

预测与真实值相符共有20+15个,则观察到的符合比例为$p_o=(20+15)/50=0.7$。计算$p_e$比较复杂,PREDICT预测为1的比例为0.5,GROUND中1的比例为0.6,从完全随机的角度来看,PREDICT与GROUND均为1的概率为0.5*0.6=0.3,PREDICT与GROUND均为0的概率为0.5*0.4=0.2,则PREDICT与GROUND由于随机性产生的符合比例为0.2+0.3=0.5,即$p_e=0.5$,最后求得$\mathcal{K}=\frac{p_o-p_e}{1-p_e}=\frac{0.7-0.5}{1-0.5}=0.4$。

7. 准确率

准确率(Accuracy)衡量的是分类正确的比例。设$\hat{y}_i$是是第$i$个样本预测类别,$y_i$是真是类别,在$n_{\rm sample}$个测试样本上的准确率为

${\rm accuracy}=\frac{1}{n_{\rm sample}}\sum\limits_{i=1}^{n_{\rm sample}}1(\hat{y}_i=y_i)$。

其中$1(x)$是indicator function,当预测结果与真实情况完全相符时准确率为1,两者越不相符准确率越低。

虽然准确率适用范围很广,可用于多分类以及多标签等问题上,但在多标签问题上很严格,在有些情况下区分度较差。

8. 海明距离

海明距离(Hamming Distance)用于需要对样本多个标签进行分类的场景。对于给定的样本$i$,$\hat{y}_{ij}$是对第$j$个标签的预测结果,${y}_{ij}$是第$j$个标签的真实结果,$L$是标签数量,则$\hat{y}_i$与$y_i$间的海明距离为

$D_{Hamming}(\hat{y}_i,y_i)=\frac{1}{L}\sum\limits_{j=1}^L 1(\hat{y}_{ij}\neq y_{ij})$。

其中$1(x)$是indicator function。当预测结果与实际情况完全相符时,距离为0;当预测结果与实际情况完全不符时,距离为1;当预测结果是实际情况的真子集或真超集时,距离介于0到1之间。

我们可以通过对所有样本的预测情况求平均得到算法在测试集上的总体表现情况,当标签数量$L$为1时,它等于1-Accuracy,当标签数$L>1$时也有较好的区分度,不像准确率那么严格。

9.杰卡德相似系数

杰卡德相似系数(Jaccard similarity coefficients)也是用于需要对样本多个标签进行分类的场景。对于给定的样本$i$,$\hat{y}_i$是预测结果,${y}_i$是真实结果,$L$是标签数量,则第$i$个样本的杰卡德相似系数为

$J(\hat{y}_i,y_i)=\frac{|\hat{y}_i\bigcap y_i|}{|\hat{y_i}\bigcup y_i|}$。

它与海明距离的不同之处在于分母。当预测结果与实际情况完全相符时,系数为1;当预测结果与实际情况完全不符时,系数为0;当预测结果是实际情况的真子集或真超集时,距离介于0到1之间。

我们可以通过对所有样本的预测情况求平均得到算法在测试集上的总体表现情况,当标签数量$L$为1时,它等于Accuracy。

10. 多标签排序

在这节我们介绍一些更精细化的多标签分类效果衡量工具。设真实标签分类情况为$y\in\{0, 1\}^{n_\text{samples} \times n_\text{labels}}$,分类器预测情况为$\hat{f}\in\mathbb{R}^{n_\text{samples} \times n_\text{labels}}$。

10.1 涵盖误差

涵盖误差(Coverage error)计算的是预测结果中平均包含多少真实标签,适用于二分类问题。涵盖误差定义为:

$coverage(y,\hat{f})=\frac{1}{n_\text{samples}}\sum\limits_{i=1}^{n_\text{samples}}\max\limits_{j:y_{ij}=1}\text{rank}_{ij}$,

其中$\text{rank}_{ij}=\left|\left\{k:\hat{f}_{ik}\ge \hat{f}_{ij} \right\}\right|$。可以看到它实际衡量的是真实标签中有多少排在预测结果的前面。

10.2 标签排序平均精度

标签排序平均精度(Label ranking average precision)简称LRAP,它比涵盖误差更精细:

$LRAP(y,\hat{f})=\frac{1}{n_\text{samples}}\sum\limits_{i=1}^{n_\text{samples}}\frac{1}{|y_i|}\sum\limits_{j:y_{ij}=1}\frac{|\mathcal{L}_{ij}|}{\text{rank}_{ij}}$,

其中$\mathcal{L}_{ij}=\left\{k:y_{ik}=1,\hat{f}_{ik}\ge\hat{f}_{ij}\right\}$,$\text{rank}_{ij}=\left|\left\{k:\hat{f}_{ik}\ge \hat{f}_{ij} \right\}\right|$。

10.3 排序误差

排序误差(Ranking loss)进一步精细考虑排序情况:

$ranking(y,\hat{f})=\frac{1}{n_\text{samples}}\sum\limits_{i=1}^{n_\text{samples}}\frac{1}{|y_i|(n_\text{labels}-|y_i|))}\left|\mathcal{L}_{ij} \right|$,

其中$\mathcal{L}_{ij}=\left\{(k,l):\hat{f}_{ik}<\hat{f}_{ij}, y_{ik}=1, y_{il}=0\right\}$。

二、拟合

拟合问题比较简单,所用到的衡量指标也相对直观。假设$y_i$是第$i$个样本的真实值,$\hat{y}_i$是对第$i$个样本的预测值。

1. 平均绝对误差

平均绝对误差MAE(Mean Absolute Error)又被称为$l1$范数损失($l1$-norm loss):

${\rm MAE}(y, \hat{y})=\frac{1}{n_{\rm samples}}\sum\limits_{i=1}^{n_{\rm samples}}|y_i-\hat{y}_i|$。

2. 平均平方误差

平均平方误差MSE(Mean Squared Error)又被称为$l2$范数损失($l2$-norm loss):

${\rm MSE}(y, \hat{y})=\frac{1}{n_{\rm samples}}\sum\limits_{i=1}^{n_{\rm samples}}(y_i-\hat{y}_i)^2$。

3. 解释变异

解释变异(Explained variance)是根据误差的方差计算得到的:

${\rm explained variance}(y,\hat{y})=1-\frac{{\rm Var}\{y-\hat{y}\}}{{\rm Var}{y}}$。

4. 决定系数

决定系数(Coefficient of determination)又被称为$R^2$分数:

$R^2(y,\hat{y})=1-\frac{\sum_{i=1}^{n_{\rm samples}}(y_i-\hat{y}_i)^2}{\sum_{i=1}^{n_{\rm samples}}(y_i-\bar{y})^2}$,

其中$\bar{y}=\frac{1}{n_{\rm samples}}\sum_{i=1}^{n_{\rm samples}}y_i$。

三、聚类

1 . 兰德指数

兰德指数(Rand index)需要给定实际类别信息$C$,假设$K$是聚类结果,$a$表示在$C$与$K$中都是同类别的元素对数,$b$表示在$C$与$K$中都是不同类别的元素对数,则兰德指数为:

${\rm RI}=\frac{a+b}{C_2^{n_{\rm samples}}}$,

其中$C_2^{n_{\rm samples}}$数据集中可以组成的总元素对数,RI取值范围为$[0,1]$,值越大意味着聚类结果与真实情况越吻合。

对于随机结果,RI并不能保证分数接近零。为了实现“在聚类结果随机产生的情况下,指标应该接近零”,调整兰德系数(Adjusted rand index)被提出,它具有更高的区分度:

${\rm ARI}=\frac{{\rm RI}-E[{\rm RI}]}{\max({\rm RI})-E[{\rm RI}]}$,

具体计算方式参见Adjusted Rand index。

ARI取值范围为$[-1,1]$,值越大意味着聚类结果与真实情况越吻合。从广义的角度来讲,ARI衡量的是两个数据分布的吻合程度。

2. 互信息

互信息(Mutual Information)也是用来衡量两个数据分布的吻合程度。假设$U$与$V$是对$N$个样本标签的分配情况,则两种分布的熵(熵表示的是不确定程度)分别为:

$H(U)=\sum\limits_{i=1}^{|U|}P(i)\log (P(i)), H(V)=\sum\limits_{j=1}^{|V|}P'(j)\log (P'(j))$,

其中$P(i)=|U_i|/N,P'(j)=|V_j|/N$。$U$与$V$之间的互信息(MI)定义为:

${\rm MI}(U,V)=\sum\limits_{i=1}^{|U|}\sum\limits_{j=1}^{|V|}P(i,j)\log\left ( \frac{P(i,j)}{P(i)P'(j)}\right )$,

其中$P(i,j)=|U_i\bigcap V_j|/N$。标准化后的互信息(Normalized mutual information)为:

${\rm NMI}(U,V)=\frac{{\rm MI}(U,V)}{\sqrt{H(U)H(V)}}$。

与ARI类似,调整互信息(Adjusted mutual information)定义为:

${\rm AMI}=\frac{{\rm MI}-E[{\rm MI}]}{\max(H(U), H(V))-E[{\rm MI}]}$。

利用基于互信息的方法来衡量聚类效果需要实际类别信息,MI与NMI取值范围为$[0,1]$,AMI取值范围为$[-1,1]$,它们都是值越大意味着聚类结果与真实情况越吻合。

3. 轮廓系数

轮廓系数(Silhouette coefficient)适用于实际类别信息未知的情况。对于单个样本,设$a$是与它同类别中其他样本的平均距离,$b$是与它距离最近不同类别中样本的平均距离,轮廓系数为:

$s=\frac{b-a}{\max(a,b)}$。

对于一个样本集合,它的轮廓系数是所有样本轮廓系数的平均值。

轮廓系数取值范围是$[-1,1]$,同类别样本越距离相近且不同类别样本距离越远,分数越高。

四、信息检索

信息检索评价是对信息检索系统性能(主要满足用户信息需求的能力)进行评估,与机器学习也有较大的相关性,感兴趣的可以参考这篇不错的博文。

五、总结

上面介绍了非常多的指标,实际应用中需要根据具体问题选择合适的衡量指标。那么具体工作中如何快速使用它们呢?优秀的Python机器学习开源项目Scikit-learn实现了上述绝指标的大多数,使用起来非常方便。

via:心理学新闻

End.

转载请注明来自36大数据(36dsj.com):36大数据 » 机器学习评价指标大汇总

机器学习常用评价指标总结相关推荐

  1. 《统计学习方法》读书笔记——机器学习常用评价指标

    传送门 <统计学习方法>读书笔记--机器学习常用评价指标 <统计学习方法>读书笔记--感知机(原理+代码实现) <统计学习方法>读书笔记--K近邻法(原理+代码实现 ...

  2. 你要的机器学习常用评价指标,以备不时之需

    导读 在机器学习中,我们前期经过数据采集.数据清洗,中期进行特征分析.特征选择,后期对处理好的数据集分割,将数据集划分为训练集.验证集.测试集,最后基于划分好的数据集进行训练调优,并选择性能最好的模型 ...

  3. 机器学习常用评价指标:ACC、AUC、ROC曲线

    文章目录 一.混淆矩阵 二.评价指标 1.准确度(Accuracy) 2.AUC ROC曲线 举例 如何画ROC曲线 AUC的计算 AUC意味着什么 为什么使用ROC曲线 参考 一.混淆矩阵 基于样本 ...

  4. 预测评价系统_「机器学习」一文读懂分类算法常用评价指标

    前言 评价指标是针对将相同的数据,输入不同的算法模型,或者输入不同参数的同一种算法模型,而给出这个算法或者参数好坏的定量指标. 在模型评估过程中,往往需要使用多种不同的指标进行评估,在诸多的评价指标中 ...

  5. 机器学习——算法常用评价指标

    机器学习--算法常用评价指标 一.常用评价指标 二.案例 一.常用评价指标 参考书籍:<机器学习>--周志华 错误率: 分类错误的样本数占样本总数的比例 精度: 分类正确的样本数占样本总数 ...

  6. 机器学习模型常用评价指标(Accuracy, Precision, Recall、F1-score、MSE、RMSE、MAE、R方)

    前言 众所周知,机器学习分类模型常用评价指标有Accuracy, Precision, Recall和F1-score,而回归模型最常用指标有MAE和RMSE.但是我们真正了解这些评价指标的意义吗? ...

  7. 机器学习分类算法常用评价指标

    目录 1.准确率,召回率,精确率,F1-score,Fβ,ROC曲线,AUC值 2.宏平均(Macro-averaging)和微平均(Micro-averaging) 3.Python3  sklea ...

  8. 机器学习模型评价指标及拟合概念

    机器学习模型评价指标及拟合概念 一.机器学习模型评价指标 回归问题等连续值的差值的判断 1) MAE平均绝对误差: 2)MSE均方误差: 3)RMSE均方根误差: 4)R平方: 分类问题 1)混淆矩阵 ...

  9. 机器学习模型评价指标一览

    本文有Mcgill大学本科,waterloo大学硕士生林羿在圣一信息技术有限公司实习时,所做的收集. 在这篇文档里,我们会介绍一些常用的机器学习模型评价指标.这些指标会根据模型的目标而分成以下两类: ...

  10. 机器学习分类器评价指标详解(Precision, Recall, PR, ROC, AUC等)(一)

    为了系统性地理解机器学习模型的不同评价指标及其之间的关系,我们将从其定义出发,探究其物理含义及彼此之间的联系,并从数学上给出相应的公式推导,以方便后续用到时复习理解.由于篇幅较长,因此将其分为两篇,这 ...

最新文章

  1. 如何居中“位置:绝对”元素
  2. Redis操作List类型
  3. java 双向链表_java集合类之LinkedList
  4. OSGi将Maven与Equinox结合使用
  5. C++学习笔记1:virtual 继承
  6. Django后端项目----restful framework 认证源码流程
  7. POI设置单元格格式
  8. 一文看懂中国互联网二十年
  9. 【MySQL】多表查询事务权限管理
  10. 青岛科技大学计算机历年真题,青岛科技大学计算机组成原理补考试卷(计算机)...
  11. linux clac countif的使用
  12. 985高校计算机专业炉气分数,【原创】外地985高校专业录取分数解析(一)
  13. oracle存货转资产,存货转固定资产账务处理
  14. Swift版百思不得姐
  15. 机器人视觉系统的构成
  16. 【小程序自定义组件,冒泡,自定义导航栏,页面栈】
  17. python 进程间同步_python之路29 -- 多进程与进程同步(进程锁、信号量、事件)与进程间的通讯(队列和管道、生产者与消费者模型)与进程池...
  18. 每个人都需要良好的人生观、价值观、职业观
  19. 通过商业智能(BI)可视化数据分析了解布洛芬的产销情况
  20. python古诗词风格分析_2017年高考古诗词鉴赏技巧:分析语言风格题解题模式

热门文章

  1. IE8中动态改变伪元素样式不起作用BUG
  2. solr4.2增量索引之同步(修改,删除,新增)
  3. 使用PYTHON列表生成式过滤数据
  4. IIS8,OUTLOOK OWA 2013鉴赏
  5. Ubuntu应用Wireshark找不到interface的解决办法
  6. 一些面试题目(网易游戏2011.10.15校园招聘会笔试题)
  7. IE6 PNG 透明
  8. 10分钟快速配置LAMP环境
  9. 阶段1 语言基础+高级_1-3-Java语言高级_03-常用API第二部分_第2节 Date类_3_DateFormat类SimpleDateFormat类...
  10. 在做简单网页时,遇到的一些js问题