Loading...
Navigation
Table of Contents

机器学习评价指标Data

更多参考

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

分类

精确率与召回率

精确率与召回率多用于二分类问题。精确率(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$分数,是分类与信息检索中最常用的指标之一。

ROC/AUC

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

ROC曲线适用于二分类问题,以假正率为横坐标,真正率为纵坐标的曲线图。AUC分数是曲线下的面积(Area under curve),越大意味着分类器效果越好。

使用 4 个样本画出 ROC 曲线

AUC:直观理解AUC为何会对正负样本数分布不均匀情况鲁棒_Leon_winter的博客-CSDN博客_正负样本不均衡对auc的影响
文章目录随便造一组数据12正,12负,离开这个例子也可以,1表示实际的正例,0表示实际的负例子。假设我们的模型预测的分数从左到右逐渐下降,1,1,1,1,0,1,1,1,0,1,1,0,1,0,0,1,0,0,0,1,0,0,0,0...

对数损失

两个离散随机变量的分布的相对熵(Relative Entropy),又称KL散度(Kullback–Leibler divergence),是$D_{KL}(p||q)=\sum_{i} p(i)\ln \frac{q(i)}{p(i)}$,其可以用于衡量两个概率分布之间的差异。相对熵公式的前半部分是交叉熵(Cross Entropy),即$H(p,q)=-\sum_{i}p(i)\log q(i)$。交叉熵可以用来衡量在给定的真实分布下,使用非真实分布所指定的策略消除系统的不确定性所需要付出的努力的大小。交叉熵损失的二分类版本就是逻辑回归损失。交叉熵损失和逻辑回归损失都是对数损失(logloss)。

逻辑回归损失
对于二分类问题,设真实分布$y\in\{0,1\}$,设$p={\rm Pr}(y=1)=1/(1+e^{-WX})$,则每个样本的对数损失为:

$$L(y,p)=-y\log(p)-(1-y)\log(1-p))$$

注意这里的表达式前必须有负号!因为$y_k\log p_k$本身是负值。所以交叉熵的值是正实数。交叉熵损失越小,说明模型拟合的越好。

数学来源:对$y_1,\dots,y_N$的似然函数$\prod p(y_i|x_i,\theta)=\prod p^{y_i}\cdot (1-p))^{(1-y_i)}$$,对此式取对数便得到上述逻辑回归损失。

交叉熵损失
对于$K$分类问题。设某个样本的真实标签为$y=[ y^1,\dots,y^K]$(one-hot)。模型预测的分布为$p=[p^1,\dots,p^K]$(softmax函数变换后的),则每个样本交叉熵损失为$L(y,p) = - \sum\limits_{k=1}^{K}y_k\log p_k$,至于整个训练集的交叉熵损失,可以把每个样本的损失求和,也可以求平均(实验中好像求平均比较好)。损失函数带有正则项的时候需要求平均,否则求和求平均差不多。

铰链损失

铰链损失(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}$$

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

混淆矩阵

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


回归(拟合)

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

平均绝对误差 MAE

平均绝对误差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|$$

平均平方误差 MSE

平均平方误差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$$


聚类

兰德指数

兰德指数(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衡量的是两个数据分布的吻合程度。


互信息

互信息(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]$,它们都是值越大意味着聚类结果与真实情况越吻合。


轮廓系数

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

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

对于一个样本集合,它的轮廓系数是所有样本轮廓系数的平均值。轮廓系数取值范围是$[-1,1]$,同类别样本越距离相近且不同类别样本距离越远,分数越高。


推荐系统研究中常用的评价指标

Last updated on Jan 06, 2021.