内容简介:本系列文章主要介绍机器学习中类别不平衡问题的处理,在实际应用中类别不平衡问题是非常常见的,文章主要包括以下部分
本系列文章主要介绍机器学习中类别不平衡问题的处理,在实际应用中类别不平衡问题是非常常见的,文章主要包括以下部分
(1). 模型的评价指标
(2). 不平衡问题的常用指标
(3). 从数据集角度处理不平衡问题
(4). 从算法角度处理不平衡问题
本次文章主要是第一部分模型的评价指标,如果对模型的评价指标不了解,那么后续模型的好坏也无从谈起。
1 、模型评价指标选取的重要性与意义
在完成模型训练之后,必须对模型的效果进行评价,根据评价结果来继续调整模型,以达到满意的结果。
评价一个模型最简单也是最常用的指标就是准确率,但是在没有任何前提下使用准确率作为评价指标,往往不能反映一个模型性能的好坏。例如在某个数据集中,正类样本数占总样本数的 5% ,负类样本数占总样本数的 95% 。那么有一个模型把所有样本全部判断为负类,该模型也能达到 95% 的准确率,但是这个模型没有任何的预测能力。因为对于新来的样本,它总是会把这些样本判断为负类。
因此,对于一个模型我们需要选择合适的评价指标来判断它的性能。在进行不同的模型对比时,使用不同的评价指标往往会导致不同的评价结果;这意味着模型的好坏是相对的,什么样的模型是好的,不仅取决于算法和数据,还决定于业务需求。例如肺癌检测的模型,为了减少肺癌的死亡率,那么这个模型的目标是尽可能的将所有肺癌病人检测出来,即使会有许多的误诊;在商品推荐的模型中,该模型的目标是准确的着到有需求的用户然后推销相应商品,而不希望过多的打扰其他的用户。所以不同的业务需求,需要选择不同的评价指标,这样才能通过评价指标来判断模型效果。
2 、评价指标介绍
下面以二分类为例,介绍分类模型中的常用指标。
混淆矩阵
混淆矩阵是一个能够比较直观的反应模型性能,从混淆矩阵能够衍生出很多的指标。不仅在二分类问题中常见,在多分类的问题中也同样适用,是一种比较实用的可视化方法。
(a)二分类的混淆矩阵图示意图
(b)混淆实例图
图 (b) 中混淆矩阵的每一行表示的是实际样本所属的类别,每一列表示的是模型对样本的预测类别。每一行的数据总和表示该类别的样本数目总数,每一列的数据总和表示模型预测为该类别的样本数目总数。矩阵中所有数据总和表示该数据集的所有样本总数。
从图 (a) 混淆矩阵示意图中能够直接得到
True Positive ( 真正例, TP) : 实际为正,预测为正,预测正确的正样本个数。
False Negative ( 假负例, FN) : 实际为正,预测为负, 预测错误的正样本个数 。
True Negative ( 真负例, TN) : 实际为负,预测为负,预测正确的负样本个数。
False Positive ( 假正例, FP) : 实际为负,预测为正,预测错误的负样本个数。
通过上述 4 个值,通过简单的组合可以得到
Precision ( 查准率,精准率 )
Precision 表示的是预测正确的正样本个数占所有预测为正样本的比例,反映的是模型预测正样本的准确性,因此被称为查准率。但是 Precision 不能反映有多少正样本被错误预测为了负样本 ( 即 FN) 。例如,假设在某个数据集中,正负样本的个数各为 1000 ,有一个模型在这个数据集上只将 1000 个正样本中的 1 个样本预测为正,其余所有都预测为负。此时该模型的 TP=1 , FP=0 ,因此 Precision 为 100% ,但是可以看出该模型实际上遗漏了几乎所有的正样本。所以只有在特定的需求下,才会只关注该指标例如上述提到的商品推荐的模型的精准推荐中。通常情况下, Precision 会与其他指标结合使用。
Recall ( 查全率,召回率 )
又称 True Positive Rate (TPR ,真正例率 ) 和 Sensitivity( 敏感性 ) ,其中 Sensitivity 在医学领域中比较常用。 Recall 表示的是预测正确的正样本个数占实际正样本的比例,反映的是模型预测正样本的全面性,因此被称为查全率。和 Precision 相反, Recall 不能反映有多少负样本被错误预测为了正样本 ( 即 FP) 。例如,假设数据集的负样本的个数各为 1000 ,另外个模型在这个数据集上将所有的样本全部预测为正,此时该模型的 TP=1000 , FN=0 ,因此 Recall 为 100% 。该模型则是完全不管负样本。该指标的适用场景主要是在医学中,在医学中必须极力降低漏诊率,因为误诊的风险相比漏诊而言要低很多。
可以看出, Precision 和 Recall 是相互矛盾的两个指标。一般而言, Precision 较高时, Recall 往往偏低;而 Recall 较高时, Precision 往往偏低。除了在特定的需求外,单一的 Precision 或者 Recall 都无法综合的评价一个模型,因此便有了 F1 score 。
F1 score 是一个综合指标,是Precision和 Recall 的调和平均 (harmonic mean) ,与算 术平均 ( )和几何平均( )相比,调和平均更重视较小值。 因此 理论上 如果 F1 score 比较高的话,意味着 Precision和 Recall 都较高 。 另外 F1 score有更一般的形式,它是一个加权的调和平均,可以来表示对 Precision 和 Recall 的不同偏好程度。
除此之外,还有其他的一些重要的指标
例如我们最常用的 Accuracy(准确率 ) ,从混淆矩阵出发可以得到,
Accuracy 反映的是预测正确的样本占所有样本的比例,反映了一个模型的区分能力,但是 Accuracy 的区分能力没有偏向于正负样本中的任何一类,在不平衡数据集中使用 Accuracy 就会出现很大的问题。
在医学中,与敏感性对应的一个指标称为 Specificity(特异性 ) , 又称为 True Negative Rate (TNR ,真负例率 ), 它的具体定义如下
Specificity 表示的是预测正确的负样本个数占实际负样本的比例,它的定义与 Recall ( Sensitivity )十分相似,只不过 Recall ( Sensitivity )是针对于正样本,而 Specificity 则是针对于负样本。 Specificity 在医疗中也被认为是一个重要指标 , 若一个模型将所有的样本全部判断为患病,此时 Recall ( Sensitivity ) =0 ,而 Specificity 却很低,这也是不合理的,尽管没有了漏诊的情况,但是大大的加重了医生的负担和未患病人的麻烦。 因此,在医学领域, 特异性 和 敏感度 是需要同时 考虑 的。
另外还有一个重要的指标 False Positive Rate (FPR ,假正例率 )
该指标与 Specificity(特异性) 一样,针对负样本,表示的是预测错误的负样本个数占所有负样本的比例,在 ROC 曲线和 KS 曲线中与 TPR 一起出现,反映正负样本之间的关系。
本文从混淆矩阵出发,介绍了分类模型常用的指标以及它们简单的优缺点和适用性,主要有: Precision ( 查准率,精准率 ) 、 Recall ( 查全率,召回率 ) 又称 True Positive Rate (TPR ,真正例率 ) 和 Sensitivity( 敏感性 ) 以及从这两个指标的调和平均值 F1 score 及其对应加权版本。另外还有最常用的指标 Accuracy( 准确率 ) 、 在医学领域, 与 敏感度是需要同时 考虑 的 Specificity( 特异性 ) 和后续在不平衡常用指标中涉及的 False Positive Rate (FPR ,假正例率 ) 。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 机器学习之类别不平衡问题:从数据集角度处理不平衡问题(二)
- Kafka 重平衡机制
- 处理非平衡数据的七个技巧
- 数据结构 - (AVL)平衡二叉树
- 企业如何实现云计算中的负载平衡?
- 如何在Kubernetes实现gRPC的负载平衡?
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。