机器学习之类别不平衡问题:模型的评价指标

标签: dev | 发表时间:2018-11-17 00:00 | 作者:
出处:http://itindex.net/relian

本系列文章主要介绍机器学习中类别不平衡问题的处理,在实际应用中类别不平衡问题是非常常见的,文章主要包括以下部分

(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,假正例率)

相关 [机器学习 类别 平衡] 推荐:

机器学习之类别不平衡问题:模型的评价指标

- - IT瘾-dev
本系列文章主要介绍机器学习中类别不平衡问题的处理,在实际应用中类别不平衡问题是非常常见的,文章主要包括以下部分. (2).不平衡问题的常用指标. (3).从数据集角度处理不平衡问题. (4).从算法角度处理不平衡问题. 本次文章主要是第一部分模型的评价指标,如果对模型的评价指标不了解,那么后续模型的好坏也无从谈起.

机器学习中如何处理不平衡数据?

- - 机器之心
假设老板让你创建一个模型——基于可用的各种测量手段来预测产品是否有缺陷. 你使用自己喜欢的分类器在数据上进行训练后,准确率达到了 96.2%. 你的老板很惊讶,决定不再测试直接使用你的模型. 几个星期后,他进入你的办公室,拍桌子告诉你你的模型完全没用,一个有缺陷的产品都没发现. 经过一番调查,你发现尽管你们公司的产品中大约有 3.8%的存在缺陷,但你的模型却总是回答「没有缺陷」,也因此准确率达到 96.2%.

机器学习五步走

- - 我爱机器学习
经常会有人问“我该如何在机器学习方面更进一步,我不知道我接下来要学什么了. 一般我都会给出继续钻研教科书的答案. 每当这时候我都会收到一种大惑不解的表情. 但是进步确实就是持续的练习,保持较强的求知欲,并尽你可能的完成具有挑战性的工作. 因为他是为数不多的几种可以让你真真让你获取坚实知识的媒介. 是的,你可以选择选一门课,注册MOOC,参加一些讨论班.

机器学习之路

- - 我爱机器学习
自从答应简二毛博士将自己的机器学习历程和心得分享给大家至今,转眼间半年已经过去了,感谢简博士分享和开源精神的鼓舞,这也正是本系列关于机器学习介绍博客的动力来源. 之前有些网友,师弟们问我,学习机器学习怎么入手,从看什么书开始. 如果你只愿意看一本书,那么推荐Bishop的PRML,全名Pattern Recognition and Machine Learning. 这本书是机器学习的圣经之作,尤其对于贝叶斯方法,介绍非常完善.

机器学习算法Boosting

- - 标点符
机器学习通常会被分为2大类:监督学习和非监督学习. 在监督学习中,训练数据由输入和期望的输出组成,然后对非训练数据进行预测输出,也就是找出输入x与输出y之间的函数关系F:y = F(x). 根据输出的精确特性又可以分为分类和回归. 分类和回归的区别在于输出变量的类型. 定量输出称为回归,或者说是连续变量预测.

Mahout实现的机器学习算法

- - ITeye博客
使用命令:mahout -h.   在Mahout实现的机器学习算法见下表:. EM聚类(期望最大化聚类). 并行FP Growth算法. 并行化了Watchmaker框架. 非Map-Reduce算法. 扩展了java的Collections类. Mahout最大的优点就是基于hadoop实现,把很多以前运行于单机上的算法,转化为了MapReduce模式,这样大大提升了算法可处理的数据量和处理性能.

国内的机器学习几个人

- - 丕子
转: http://blog.csdn.net/playoffs/article/details/7588597. 推荐几个机器学习和数据挖掘领域相关的中国大牛:. 李航:http://research.microsoft.com/en-us/people/hangli/,是MSRA Web Search and Mining Group高级研究员和主管,主要研究领域是信息检索,自然语言处理和统计学习.

Apache Mahout 0.8 发布,机器学习库

- - 开源中国社区最新新闻
Apache Mahout 0.8 发布了,Apache Mahout 是 Apache Software Foundation (ASF) 开发的一个全新的开源项目,其主要目标是创建一些可伸缩的机器学习算法,供开发人员在 Apache 在许可下免费使用. 该项目已经发展到了它的最二个年头,目前只有一个公共发行版.

Ruby的机器学习项目

- - 阳志平的网志-技术类
作者是辉瑞公司的小牛,可惜烂尾了. 我在改啊改啊,可惜现在是商业项目,暂时不能放出改掉的部分. 对了,顺便做个小广告,去年组织翻译的一本小书:社会网络分析:方法与实践. 已经上市了,感兴趣的可以翻翻:. 社会网络分析:探索关系背后的科学与技术. treat:自然语言处理. 类似于igraph,也是桥接处理nlp.

机器学习该如何入门

- - CSDN博客综合推荐文章
  对于这个问题的解释,说实话我很有压力,因为在分享篇文章之前就有朋友告诉我,这个百度上一搜一大片,还需要你讲吗. 正如同一千个读者眼里有一千个林黛玉一样,我解释的当然是我个人自从读研到工作这么多年对机器学习的学习到应用过程的独特见解.   首先我们看下图了解一下机器学习在AI(Artificial Intelligence 人工智能)领域的地位.