机器学习中二分类算法中的几个评估指标的比较

举报
华为云社区精选 发表于 2018/03/21 17:38:58 2018/03/21
【摘要】 分类(classification)是机器学习中的一类重要问题,很多重要的算法都在解决分类问题,例如决策树、支持向量机等。其中二分类问题是分类问题中一个重要的课题。

分类(classification)是机器学习中的一类重要问题,很多重要的算法都在解决分类问题,例如决策树、支持向量机等。其中二分类问题是分类问题中一个重要的课题。在二分类问题中,通常我们将两个类别分别称为正类(positive class)和负类(negative class)。其中正类通常用来表示我们所关心的那个类别,例如在异常检测中,“异常”的样本是我们所关心的,所以通常我们会把异常样本成为正样本,而正常样本称为负样本。在评估一个二分类模型的效果时,我们通常会用一个称为混淆矩阵(confusion matrix)的四格表来表示,即:



 预测为负类 预测为正类
 实际为负类 a b
 实际为正类 c d


表格中的a表示实际上是负类的,同时也被算法判断为负类的样本数量,b、c和d也分别对应各自交叉位置上的含义。根据这个四格表,我们可以定义多个衡量模型效果的指标:

1. Accuracy:这个是通常所有的准确率,指的是模型判断正确的样本站全部样本的比例,即(a+d)/(a+b+c+d)

2. Precision in positive class:这个表示的是在正类上的精度,通常也称为查准率,为d/(b+d)

3. Recall in positive class:这个表示的是在正类上的召回率,通常也称为查全率,为d/(c+d)


另外还可以定义Precision in negative class和Recall in negative class等。由于我们通常关注的是正类,所以按惯例,在没有特别指明的情况下,我们所说的precision和recall都指的是正类的precision和recall。


当正类和负类的样本数量相差不多时,accuracy是一个很好的评价指标。但是当两个类别的样本数量相差悬殊时(这个情况通常发生在诸如异常检测等场景中,正样本的占比可以仅为1%或者更少,但是正类又是我们特别关注的),用accuracy来评价模型效果是一个很糟糕的选择。假定在数据集中,正样本的占比为1%,而负样本的占比为99%,那么这个时候,即使模型将所有的样本都判别为负样本,accuracy依然为99%。这是一个非常高的值,很容易引起人们的误解。所以在这边情况下,我们通常选用precision和recall这两个指标来评价模型的效果。

在正负样本数量相差悬殊的情况下,直接对数据进行建模,模型的效果通常比较差。一般情况下,对二分类模型,算法尝试优化的是模型的accuracy:如果其中的一类样本数量稀少,那么模型就倾向于更多地判准数量多的那个类别,因为这样能使整个loss function达到最小。这使得模型对样本少的那一类的判断能力较弱。这就是不平衡类分类问题(imbalanced classification problem),是分类问题中的一个重要课题。一种解决不平衡类分类问题的方法是抽样,即通过对样本多的那一类进行向下采样(undersampling),或者对样本少的那一类进行向上采样(oversampling)。不管是哪一种方法,采样都改变了训练数据中正负样本的比例,使得偏离真实情况中的比例。


在采样的情况下,我们不能用precision这个指标来评估模型,因为这个时候的precision存在严重的高估。假定原来正负样本的比例为1:100,我们对负样本进行了向下采样,使得正负样本的比例为1:1。根据上述的定义,precision=d/(b+d),但是这个时候的b由于采样的缘故,变为了实际数量的1%,也即实际上预测为正类但是实际为负类的数量应该为100*b,所以真实意义上的precision的一个估计应该为d/(d+100*b)。值得注意的是,在随机抽样的情况下,recall这个指标不会受到采样的影响,因为采样改变的是上述表格中的某一行的数量,而不会改变某一行中被模型预测为正类和负类的比例。同理,AUC 通常不受抽样的影响,而PR-AUC则会收到抽样影响。


总结一下上述的内容,在评估二分类模型时:

1. accuracy适用于正负样本比例相差不大的情况的结果评估

2. precision和recall适用于正负样本差异很大的情况

3. precision不能用于抽样情况下的效果评估

4. recall不受抽样影响


作者|张建锋

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。