评估指标2021-08-31
分类
混淆矩阵

准确率
准确率:预测正确的结果占总样本的百分比。
问题:样本不均衡时,该指标不能很好得衡量结果。例如,正样本占比95%,负样本占比为5%,如果将所有样本预测为正样本,则准确率为95%。
精确率
精确率:在所有被预测为正的样本中实际为正样本的概率。
精确率查准率 召回率
召回率:又叫查全率,在实际为正的样本中被预测为正样本的概率。
使用场景:以网贷违约为例,相对正常用户,更关心违约用户,不能放过任何一个违约用户。
召回率越高,“坏用户”被预测出来的概率越高,宁可错杀一千,绝不放过一个。
F1-Score
适用场景:对precision和recall要求都较高的情况下,可以选择F1-score。
micro-F1
计算方法:计算所有类别总的Precision和Recall,然后再计算F1
效果特点:当样本不均衡时,更容易受到常见类别的影响
适用场景:注重样本真实分布,只考虑全局结果
macro-F1
计算方法:单独计算每个类别的F1值,然后取各类F1的均值作为最终F1
效果特点:相对更考虑稀有类别的影响,同时受高P&R的类别的影响较大
适用场景:样本不均衡,且各个类别同等重要,可保障小样本的性能
ROC and PR
ROC

当一个样本被分类器判为正例,若其本身为正例,则增加;若其本身为负例,则增加。因此ROC曲线可以看作是随着阈值得不断移动,所有样本中正例与负例之间的“对抗”。曲线越靠近左上角,意味着越多的正例优于负例,模型的整体表现也就越好。如果,意味着无论一个样本本身是正例还是负例,分类器预测其为正例的概率相同。如下图点,无论样本数量和类别如何变化,始终将75%的样本预测为正例。

含义:
- 从所有正例随机选取一个样本,再从所有负例随机选取一个样本,分类器将预测为正例的概率比将预测为正例的概率大的可能性。随机线以上得点可以认为好于随机猜测,在这样的点上总大于,说明正例被预测为正例的概率大于负例被预测为负例的概率。从另一个角度看,由于画曲线时都是先将所有样本按分类器的预测概率排序,所以反映的是分类器对样本的排序能力。如前所述,样本排在样本之前,越大,自然排序能力越好,即分类器将越多的正例排在负例之前。
- 物理意义:给定正样本个,负样本个,以及每个样本对应的预测概率。的物理含义是穷举所有的正负样本对,正样本预测概率大于负样本预测概率的样本对的占比。
特点:
- 对样本不均衡不敏感。换言之,曲线没有很好地体现出类别分布不均衡对模型产生的影响,甚至导致对模型性能有错误的解释。由此,导致了的一个缺点:当负例的数目远超过正例时,的大幅增长只能的微小改变,结果是虽然大量负例被错判为正例,但在曲线上无法直观判断出来。例如,假设正例数目为20,负例数目为10000,如果有20个负例被错判,则,接着又有20个负例被错判,那么。
假设正样本对数为,负样本对数为,计算的方式:
对预测概率,枚举阈值,分别计算、,然后计算矩形面积。
假设正样本排在负样本之前的正负样本对数为,则。具体地,可使用枚举法求得,对(正样本负样本),更新公式如下:
类似方法2,另一种方式计算。首先将预测概率升序排序(到),然后从大到小依次遍历,假设第一个正实例排名为,说明预测分数比该样本小的样本有个,其中正样本有个,依次类推,正例正例。
PR

曲线越靠近右上方,表明模型性能越好。对不同模型比较时,若一个模型的曲线完全被另一个模型的曲线包住,说明后者模型的性能更好。如果曲线发生了交叉,则无法直接判断哪个模型更好,此时,可以使用平衡点(查准率=查全率)进行比较,如上图黑色线代表的模型的平衡点要大于橘色线模型代表的平衡点,表明前者优于后者。除此之外,也可以使用进行比较。
ROC vc PR
- ROC曲线由于兼顾正例与负例,所以适用于评估分类器的整体性能,相比而言PR曲线完全聚焦于正例。
- 如果有多份数据且存在不同的类别分布,比如信用卡欺诈问题中每个月正例和负例的比例可能都不相同,这时候如果只想单纯地比较分类器的性能且剔除类别分布改变的影响,则ROC曲线比较适合,因为类别分布改变可能使得PR曲线发生变化时好时坏,这种时候难以进行模型比较;反之,如果想测试不同类别分布下对分类器的性能的影响,则PR曲线比较适合。
- 如果想要评估在相同的类别分布下正例的预测情况,则宜选PR曲线。
- 类别不平衡问题中,ROC曲线通常会给出一个乐观的效果估计,所以大部分时候还是PR曲线更好。
- 样本类别分布大致均衡,可以使用曲线。
- 样本分布非常不均衡,可以使用曲线。
回归
MAE
受异常值干扰较明显。
MSE
RMSE
MAPE
其中,
参考链接
- ROC-AUC 与 PR-AUC 的区别与联系 - 知乎 (zhihu.com)
- 精确率、召回率、F1 值、ROC、AUC 各自的优缺点是什么? - 知乎 (zhihu.com)
- The Probabilistic Interpretation of AUC (madrury.github.io)
- AUC计算方法与Python实现代码 - 云+社区 - 腾讯云 (tencent.com)