非平衡数据集与准确度悖论

分类问题是机器学习的研究重点,而后者在实践中常常碰到非均衡数据集这个难题。非均衡数据集(imbalanced data)又称为非平衡数据集,指的是针对分类问题,数据集中各个类别所占比例并不平均。

比如在网络广告行业,需要对用户是否点击网页上的广告进行建模。为了处理方便,我们记“点击广告”为类别1,“不点击广告”为类别0。因此这是一个二元分类问题。在训练模型的历史数据里有1000个数据点(1000行),其中类别1的数据点只有10个,剩下的990个数据全部为类别0。这就是一个非均衡数据集,类别之间的比例为99:1。与二元分类问题类似,多元分类问题同样会面对非均衡数据集这个难题。不过在这个问题上,多元分类的处理的方案与二元的相似,因此为了表述简洁利于理解,下面的讨论将针对二元分类问题。

非均衡数据集在现实中是十分常见的。它给模型搭建带来了困难,如果不小心处理,会导致得到的模型结果毫无意义。在讨论这个话题之前,让我们稍稍离题一下,来看看所谓的准确度悖论(accuracy paradox)

注意:本篇文章的完整代码在*这里下载***

一、准确度悖论

对于二元分类问题,模型的预测结果按准确与否可以分为如下4类,见表1。

表1

其中,TP和TN这两个部分都表示模型的预测结果是正确的,这两者之和的比例越高,说明模型的效果越好。由此可以定义评估模型效果的指标——准确度(accurary,ACC)。

(1) A C C = T P + T N T P + F P + F N + T N ACC = \frac{TP + TN}{TP + FP + FN + TN} \tag{1} ACC=TP+FP+FN+TNTP+TN(1)

准确度这个指标看似很合理,但面对非均衡数据集时,这个指标会严重失真,甚至变得毫无意义。来看下面这个例子:数据集里有1000个数据点,其中990个为类别0,而剩下的10个为类别1,如图1所示。

图1

模型A对所有数据的预测都是类别0,因此这个模型其实并没有提供什么预测功能。但它的准确度却高达99%。模型B的预测效果其实很不错:对于类别1,10个数据里有9个预测正确;而对于类别0,990个数据里有900个预测正确,但它的准确度只有90.9%远低于模型A。
这就是所谓的准确度悖论:面对非均衡数据集时,准确度这个评估指标会使模型严重偏向占比更多的类别,导致模型的预测功能失效。这也是之前文章(分类模型的评估(一))讨论模型评估时,我们并没有介绍准确度这个指标的原因。事实上,分类模型的评估(二)里讨论的AUC(曲线下面积)在面对非均衡数据集时,也能保持稳定,不会发生如准确度悖论这样的失真。

二、一个例子

非均衡数据集除了会引起准确度悖论外,它对搭建模型有什么影响呢?下面通过一个简单的例子来说明这个问题。我们按公式(2)产生模型数据,其中变量 y y y为因变量; x 1 , x 2 x_1, x_2 x1,x2为自变量; ε \varepsilon ε为随机扰动项,它服从逻辑分布。

(2) y = { 1 , x 1 − x 2

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值