本文有Mcgill大学本科,waterloo大学硕士生林羿在圣一信息技术有限公司实习时,所做的收集。
在这篇文档里,我们会介绍一些常用的机器学习模型评价指标。这些指标会根据模型的目标而分成以下两类:
一般来说,这两大类指标是没有重合的,我们要根据不同的模型来选择对应的一个或多个指标。有些指标是模型在学习过程中的优化对象(即损失函数),而有些其他只能用来评判模型的好坏。
分类问题可以再细分为 二分类问题(Binary Classification) 以及 多分类问题(Multi-category Classification)。
错误分类损失(Miss-Classification Cost)
这是最基础,最易懂,也是所有分类模型里都能用的一个指标,可以直观的理解为(正则化后的)被错误分类的数据数量比例,仅此而已。他可以作为损失函数进行优化,但同时也有很多缺点:
那我们也不是说不能用这个指标。用 1 减去 Miss-Classification Cost 即是模型的准确率,是评判一个模型好坏的最高指标。除此之外,我们来看一些其他的指标。
常见的二分类模型有逻辑回归(Logistic Regression)以及支持向量机(Support Vector Machine)。这个章节主要介绍一些常用的二分类问题指标。逻辑回归中用的损失函数交叉熵(Cross Entropy)我们会在下一章节重点介绍。
二分类问题通常用 0 和 1 来代表两种分类的标签。但二分类有个非常特殊的变种:一类问题。一类问题可以被简单理解成“是或不是”,通常用 -1 和 1 来表示他的标签。我们把这两种类型的指标放在一起讲。
首先最基础的衡量标准就是真正例(True Positive)和假正例(False Positive):
基于这四个值,我们可以生成 混淆矩阵(Confusion Matrix) 方便我们我们浏览这些数字。以下是一个一类问题中用到混淆矩阵:
新奇检测和异常检测是一类问题的两个常见场景。在这类场景中,我们首先最关心的就是不能有太高的假正例 FP。想象一个癌症病人被判定为没有癌症是非常可怕的。所以 FP 值便是我们判断一个一类模型的标准。
除此之外,我们还可以从上面的这四个基础数值得到很多别的指标:
但Precision和Recall都不能很完美的去评判一个模型的好坏,他们都只看到了其中一面。而F1 Score是个更好的标准:
可以看出 F1 Score 其实是 Precision 和 Recall 的调和平均数。最大值是1, 最小值是0。F1值越大说明模型在判断正类数据上越成功。但仍然需要结合假正例来判断模型在对负类数据上的效率。
注意:以上这些指标均不能作为损失函数进行优化
ROC 图像 和 AUC
roc曲线:接收者操作特征 (receiveroperating characteristic), roc曲线上每个点反映着对同一信号刺激的感受性。
该图像的横轴是False Positive Rate (FPR),纵轴是True Positive Rate (TPR)。计算方式分别为 FPR = FP /(FP + TN), TPR = TP /(TP + FN)。ROC 的具体定义如下:
对于样本数据,我们使用分类器对其进行分类,分类器会给出每个数据为正例的概率,我们可以针对此来设定一个阈值,当某个sample被判断为正例的概率大于这个阈值时,认为该sample为正例,小于则为负例,然后通过计算我们就可以得到一个(TPR , FPR)对,即图像上的一个点,我们通过不断调整这个阈值,就得到若干个点,从而画出一条曲线。一个真实的ROC图像例子如下
我们可以看出,当这个阈值越大时,越多的样本被分为负例,TPR下降(正例数据被分为负例了),FPR下降(负类数据更不会被分为正例,但是影响要比TPR小,所以斜率呈上升趋势)。阈值越小时,越多的样本被分为正例,这样一来TPR上升(更多的正例样本被分为正例),FPR上升(更多的负例样本被分为正例,影响更大,所以斜率呈下降趋势)。
AUC (Area under Curve):Roc曲线下的面积,介于0.5和1之间。Auc作为数值可以直观的评价分类器的好坏,值越大越好。 AUC是可以作为损失函数进行优化的,具体步骤就不在这里介绍了。
我们常见的多分类(Multi-Class Classification)机器学习模型有:决策树 / 决策森林(Decision)、softmax回归(softmax regression)。针对多分类问题(还有刚才的逻辑回归),我们重点介绍熵(Entropy)和交叉熵(Cross Entropy)。
在开始之前,我要先来讲讲逻辑回归和SoftMax回归的定义,因为交叉熵在两种模型里的定义有些区别。
1.2.1 ~ 逻辑回归和Softmax回归
逻辑回归(Logistic Regression) 是线性回归的变种,是一个二分类模型。如果我们的数据集是 ,且
是个二分类数据集,则逻辑回归模型学习一个权重参数
Softmax回归 就是逻辑回归的多类别版本。还是上面那组数据集,但 y^{(i)} = \{1, ..., C\}y(i)={1,...,C}。这个模型中我们的学习对象是一组 wc∈Rd,c∈{1,...,C}。用Softmax函数计算
,被分类到 cc 的 “概率”:
说完这两种模型,我们就可以开始正式介绍交叉熵的概念了。
1.2.2 ~ 熵、交叉熵
熵(Entropy) 又称信息熵,用来描述整个随机分布所带来的信息量期望值。如果 y 是随机变量,C 代表分类的数量,则熵 H(y)的定义如下
从上式可以看出:
交叉熵(Cross Entropy),又称负对数似然(Negative-log Likelihood),其广泛用在逻辑回归的Sigmoid和softmax函数中作为损失函数使用。作用是度量两个概率分布间的差异性信息。
交叉熵在逻辑回归和Softmax回归中的表达式不太一样。
对于单组预测值 和 真实值 y来说,他们之间的交叉熵定义为
从上式我们可以注意到:
我们来看一下在逻辑回归和Softmax回归模型下的交叉熵表达式:
逻辑回归交叉熵损失函数
Softmax回归交叉熵损失函数
这种情况稍微复杂一些,要把前文的 y 值都进行one-hot encoding,从标量变成一个
矢量(C是类别数量),且元素只有0 和 1。以下
均代表矢量。
2. 回归模型的指标
回归模型本质就是拟合一个函数。和分类模型不同,回归模型预测是一个具体的数值,而不是一个分类了。所以回归模型的指标都是用不同的方法来计算预测的数值和真是数值的误差,因此这些指标都比较泛用。接下来就来介绍几个常用的指标。
MSE(Mean Squared Error) 均方误差 和 RMSE(Root Mean Squared Error) 均方根误差
MSE又称 L2 Loss 比较常用。
R2决定系数
R2的取值范围是 [0,1]
Reference