type
status
date
slug
summary
tags
category
icon
password
常用评估指标
一、分类算法评估指标
多种指标知乎详细解读
二分类指标解读
1、混淆矩阵
混淆矩阵(Confusion Matrix),可以使人们更好地了解分类中的错误。如果矩阵中的非对角元素均为0,就会得到一个完美的分类器。下图的混淆矩阵只针对二分类问题得到的。
真正例(True Positive,TP):一个正例被正确预测为正例
真反例(True Negative,TN):一个反例被正确预测为反例
假正例(False Positive,FP):一个反例被错误预测为正例
假反例(False Negative,FN):一个正例被错误预测为反例
2、准确率
准确率是所有样本中预测正确的样本占比,其公式如下:
准确率有一个明显的弊端问题,就是在数据的类别不均衡,特别是有极偏的数据存在的情况下,准确率这个评价指标是不能客观评价算法的优劣的。
3、错误率
错误率指的是所有测试样例中错分的样例比例,其公式如下
4、精确率和召回率
精准率(Precision)又称查准率,它是针对预测结果而言的,它的含义是在所有被预测为正的样本中实际为正的样本的概率,即在预测为正样本的结果中,有多少把握可以预测正确,其公式如下:
精准率和准确率是完全不同的两个概念。精准率代表对正样本结果中的预测准确程度,而准确率则代表整体的预测准确程度,既包括正样本,也包括负样本。
召回率(Recall)又称查全率,它是针对原样本而言的,它的含义是在实际为正的样本中被预测为正样本的概率,其公式如下:
5、F1-Score
通常使用Precision和Recall这两个指标,来评价二分类模型的效果。但是,Precision和Recall指标有时是此消彼长的,即精准率高了,召回率就下降。为了兼顾Precision和Recall,最常见的方法就是F-Measure,又称F-Score。F-Measure是P和R的加权调和平均,计算公式如下:
当时,也就是常说的F1-score,是P和R的调和平均,F1-Score的取值范围从0到1的,1代表模型的输出最好,0代表模型的输出结果最差 。当F1较高时,模型的性能越好。
其中,P代表Precision,R代表Recall。
6、ROC曲线
ROC曲线全称为受试者工作特征曲线(Receiver Operating Characteristic Curve)。ROC是一张图上的一条线(如下图所示),越靠近左上角的ROC曲线,模型的准确度越高,模型越理想;
图ROC曲线中,横轴是假阳率(False positive rate ,简称FPR),定义为 在所有真实的负样本中,被模型错误的判断为正例的比例 ,计算公式如下:
纵轴是真阳率(True Positive Rate,简称TPR),定义为 在所有真实的正样本中,被模型正确的判断为正例的比例,其实就是召回率,计算公式如下:
上图ROC曲线中,左下角的点所对应的是将所有样本判断为反例的情况,而右上角的点对应的是将所有样例判断为正例的情况;
FPR表示模型对于负样本误判的程度,而TPR表示模型对正样本召回的程度。我们所希望的当然是:负样本误判的越少越好,正样本召回的越多越好。所以总结一下就是TPR越高,同时FPR越低(即ROC曲线越陡),那么模型的性能就越好。
进行模型的性能比较时,若一个模型A的ROC曲线被另一个模型B的ROC曲线完全包住,则称B的性能优于A。若A和B的曲线发生了交叉,则谁的曲线下的面积大,谁的性能更优。
ROC曲线对整体样本是否均衡并不敏感。因为ROC曲线只与TPR和FPR有关系,而这两个指标是针对单一类别的预测结果而言的 。举个例子:假设总样本中,90%是正样本,10%是负样本。在这种情况下如果使用准确率进行评价是不科学的,但是用TPR和FPR却是可以的,因为TPR只关注90%正样本中有多少是被预测正确的,而与那10%负样本毫无关系,同理,FPR只关注10%负样本中有多少是被预测错误的,也与那90%正样本毫无关系。这样就避免了样本不平衡的问题。
阈值问题
ROC曲线也是通过遍历所有阈值来绘制整条曲线的。如果我们不断的遍历所有阈值,预测的正样本和负样本是在不断变化的,相应的在ROC曲线图中也会沿着曲线滑动。
无视样本不平衡
ROC曲线有个很好的特性:当测试集中的正负样本的分布变化的时候,ROC曲线能够保持不变。
7、AUC
AUC( Area Under Curve )是曲线下面积,AUC给出的是分类器的平均性能值。 每一条ROC曲线对应一个AUC值。通常,AUC的取值在0.5与1之间。 模型的AUC面积值越大,模型的准确度越高,模型越理想。其可以理解为模型将正样本排在负样本前面的概率。
8、GAUC
AUC表示正样本得分比负样本得分高的概率。在CTR实际应用场景中,CTR预测常被用于对每个用户候选广告的排序。但是不同用户之间存在差异:有些用户天生就是点击率高。以往的评价指标对样本不区分用户地进行AUC的计算。DIN论文采用的GAUC实现了用户级别的AUC计算,在单个用户AUC的基础上,按照点击次数或展示次数进行加权平均,消除了用户偏差对模型的影响,更准确的描述了模型的表现效果:
其中权重w既可以是展示次数(impression)也可以是点击次数(clicks)。n是用户数量。
auc反映的是整体样本间的一个排序能力,而在计算广告领域,我们实际要衡量的是不同用户对不同广告之间的排序能力, 实际更关注的是同一个用户对不同广告间的排序能力,为此,参考了阿里妈妈团队之前有使用的group auc的评价指标。 group auc实际是计算每个用户的auc,然后加权平均,最后得到group auc,这样就能减少不同用户间的排序结果不太好比较这一影响。
实际处理时权重一般可以设为每个用户view的次数,或click的次数,而且一般计算时,会过滤掉单个用户全是正样本或负样本的情况。
但是实际上一般还是主要看auc这个指标,但是当发现auc不能很好的反映模型的好坏(比如auc增加了很多,实际效果却变差了),这时候可以看一下gauc这个指标。
代码实现:
二、回归算法
三、相关问题
3.1 为什么分类问题不采用MSE作为损失函数
1、MSE作为分类的损失函数会有梯度消失的问题。当样本预测值和真实值接近或者远离的时候,梯度越接近于0,会产生梯度消失。
2、MSE是非凸的,存在很多局部极小值点。
- Author:liamtech
- URL:https://liamtech.top/article/10e9746b-4e13-814d-94d1-e348fe38b238
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!