机器学习-模型评价指标

对于机器学习模型性能的评价,我们最常见的指标就是准确率(Accuracy,ACC),当然,这是针对分类的。那么,除此之外,还有很多其他的指标。
前面我们列出的损失函数,其实在某种意义上也是对模型的一种评价指标。

1,二分类模型的评价指标

基础知识

对于二分类而言,样本有正负样本之分(Positive,Negative),而预测则有对错之分(True,False),所以可用过如下表来表示

真实值:P 真实值:N
预测值:P TP FP
预测值:N FN TN

TP:真正例,真阳性。样本是正例,预测为正,分类正确
FP:假正例,假阳性。样本是负例,预测为正,分类错误。误诊
TN:真负例,真阴性。样本是负例,预测为负,分类正确
FN:假负例,假阴性。样本为正例,预测为负,分类错误。漏诊

准确率(Accuracy,ACC)


即分对样本数比总体样本数
计算简单,常见
缺点
1,当样本不平衡时会不准。例如正负样本9:1,模型把所有样本均判为正,计算出ACC=0.9 但这个模型是没有意义的。
此时,可以计算平均准确率,即每个类别内准确率的平均值。
2,太过简单,不能体现正负样本具体的分类对错情况

精确率(Precision,P)与召回率(Recall,R)


即模型预测为正的样本里,真正为正的比例

召回率也叫做敏感度(Sensitivity)
即在所有正样本中,模型准确找出的比例

P高代表模型预测为正,基本上就是正。表示其很准。但很准的原因可能是模型太严格,例如100个正例,模型只判断了其中1个为正,确实这个样本分对了,但是依旧错分了其他99个,造成假阴性变高。
R高代表模型更能够把正样本从样本中找出来,漏诊率低,很敏感,稍微不对就会判正。但例如模型把所有样本都判为正,此时召回率确实高,但没有意义。会带来很高的假阳性。

即高P很容易降低R,高R很容易降低P。两者需要权衡

F1 指数


因为P和R很容易此高彼低,所以F1的分子是P*R,这就使得,盲目提高P和R其中之一,并不会提高F1指数,只有当两者都高的时候,F1才会高。第二个等号后面的式子也表明,F1指标旨在降低FP和FN(即假阳性和假阴性)两者。

ROC 曲线(Receiver Operating Characteristic)

接收者操作特征曲线,是一种显示分类模型在所有分类阈值下效果的图表
此处先介绍两个指标
1,真正例率(TPR)--即召回率

2,假正例率(FPR)

与召回率相对应的,有一个叫做特异性(Specificity)的指标
表示在所有负样本中,模型准确找出的负样本比例。
由此可见,
我们当然希望TPR=1,FPR=0。
此时,正负样本均被正确分类
而ROC曲线的横纵坐标,分别是FPR(1-Specificity),TPR

机器学习-模型评价指标_第1张图片
ROC曲线

在做ROC曲线时,
首先,利用当前模型我们可以得到测试样本x对应的预测值f(x),这f(x)可以是连续值而非输出的标签值(可以认为是尚未送入函数的f(x))。
然后,把测试样本按照f(x)做升序排序
最后,对于排序后的样本及其f(x),依次顺序从大到小卡阈值把样本分为两组,小于阈值的一组判为负样本,大于阈值的一组为正样本。
一开始,把阈值设为最大,此时所有样本为负样本,TPR=FPR=0
然后逐渐减小阈值,TPR和FPR都升高,对于一个较好的模型,此时应该TPR>FPR>0
然后逐渐把阈值减到最小,此时所有样本为正样本,TPR=FPR=1
ROC曲线(0,1)点代表着完美的分类与阈值。所以曲线越接近这一点越好。

AUC (Area Under ROC Curve ROC曲线下面积)

AUC值为ROC曲线所覆盖的区域面积,显然,AUC越大,分类器分类效果越好。
AUC = 1,是完美分类器
0.5 < AUC < 1,优于随机猜测。分类模型妥善设定阈值可以取得好的效果
AUC = 0.5,跟随机猜测一样
AUC < 0.5,比随机猜测还差;但只要总是反预测而行,就优于随机猜测。

小结一下

机器学习-模型评价指标_第2张图片
这张图可以仔细回味一下

由上图可见,
TPR=敏感度(Sensitivity)=召回率(Recall)=分母为正样本
FPR=1-特异性(Specificity)=分母是负样本
精确率(Precision)=分母是预测为正的样本

2,多分类模型的评价指标

混淆矩阵(Confusion Matrix)

真实类别1 真实类别2 真实类别3
预测1 500 20 100
预测2 10 480 200
预测3 10 50 370

上表即混淆矩阵,详细描述了不同类别下样本预测情况。
由上表可以看出,样本分3个类别,每个类别样本分别520,550,670个。
那么此时,有一些指标可以评价多分类模型

ACC与平均ACC

ACC还是可以计算的,如上

平均ACC即各类别的准确率的平均

宏观与微观指标(Macro & Micro)

多分类混淆矩阵可以拆分成n个二分类混淆矩阵,如上可以拆分为如下3个

1 真实类别1 其他
预测为1 500 120
预测为其他 20 1100
2 真实类别2 其他
预测为2 480 210
预测为其他 70 980
3 真实类别3 其他
预测为3 370 60
预测为其他 300 1010

则可以按照二分类的方式获取3组指标,如ACC,Precision,Recall,F1等
甚至在获得预测样本每一类的概率值的情况下,做出3组ROC曲线
宏观指标Macro指算出上述3组指标之后,直接做平均

微观指标Micro指,把上述3表合成1张表,对应位置相加

4 真实类别 其他
预测为真实类别 1350 390
预测为其他 390 3090

通过这张表计算的指标如ACC,Precision,Recall,F1等,称为微观指标Micro

回归模型评价指标

回归模型评价指标通常会用到回归模型损失函数如MSE,MAE等

参考

ROC曲线
模型评估与实践
Macro与Micro

你可能感兴趣的:(机器学习-模型评价指标)