前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >高度不平衡的数据的处理方法

高度不平衡的数据的处理方法

作者头像
慕白
发布2018-07-06 15:02:42
1.3K0
发布2018-07-06 15:02:42
举报

假设您正在尝试构建一个模型来预测受访者,并且在您的数据集中,约有3%的人口会作出回应(目标= 1)。在不应用任何特定分析技术的情况下,您的预测结果很可能是每个记录都被预测为非响应者(预测目标= 0),从而使预测结果信息量不足。这是由于这种信息的性质,我们称之为高度不平衡的数据。

数据的不平衡本质可能是内在的,这意味着不平衡是数据空间性质[1]的直接结果,或者是外在的,这意味着不平衡是由数据的固有特性以外的因素引起的,例如数据收集,数据传输等

作为数据科学家,我们主要关注内在数据不平衡; 更具体地说,数据集的相对不平衡[2]。在这种情况下,阳性病例(1)的绝对数量可能不会很少,但相应的阴性病例数(0)要大得多,这样可以确保总是有比阴性病例多得多的阴性病例。

内在的不平衡不一定会导致标准学习算法的低效率。可能有一个或多个预测指标与目标结果高度相关。因此,对高度不平衡的数据学习结果效果不佳通常是由弱预测因素,数据,域复杂性数据不平衡引起的。例如,使用的预测变量可能不会与目标变量产生很强的相关性,导致负面案例占所有记录的97%。在这种情况下,学习算法会尝试做出最好的猜测,如果预测因子没有提供足够的信息,它只会猜测一个负值/非响应者/零值,因为这很可能发生在整体上。

注意:上面的描述听起来像高度不平衡的数据只能出现在二进制目标变量中,这是不正确的。名义目标变量也可能遭受高度不平衡的问题。但是,本文仅以更常见的二进制不平衡示例为例进行说明。

幸运的是,有很多研究选项可以缓解高度不平衡数据中学习算法性能差的问题。大多数开发的方法论都是在数据的以下四个方面进行工作的:训练集大小,类别先验,成本矩阵和决策边界的放置[3]。通过与R集成,利用SPSS Modeler的功能可扩展性,即使不是全部,也可以部署大部分这些开发技术。本文将重点探讨可以使用SPSS Modeler自己直接实现的方法。

训练集大小操作(抽样方法)

直觉上,许多数据科学家会认为欠采样和过采样是一种可能的解决方案,这意味着要么随机抽取一些主要类别记录(属于目标类别的记录)或随机选择一些小类记录并将它们附加到整体数据集。这两种方法都可以成功地平衡这些类,并且基于这种简单的初始本能已经开发出许多复杂的方法。

这些方法中最直接的方法当然是随机过采样和欠采样。但是,随机过采样不会将新信息添加到数据集中,而是会复制一些小类记录。由于某些非预测性特征通过随机过采样得到重复和加重,最终可能出现过度拟合的情况,统计上不相关的因素突然出现影响。不过,这个问题是一把双刃剑,因为欠采样会导致跳过一些潜在有用信息的相反问题。

已经开发了很多方法来改善数据的平衡并保持随机采样期间数据的信息准确性。我们将在这里详细讨论EasyEnsemble和BalanceCascade方法。

随机过采样和欠采样

在SPSS Modeler中重新平衡数据的一个简单方法是使用Balance节点。该节点通过向少数类别分配大于1的因子来执行简单的随机过采样。它也可以通过给大多数类别分配一个小于1的因子来执行简单的随机欠采样。

EasyEnsemble

EasyEnsemble背后的想法非常简单。几个样本子集独立于原始数据集的主要类案例创建。主要类案件的每个子集应该与次要类的大小大致相同。每次,大部分班级记录的子集都会被选中并附加到所有少数班级记录。然后,你在这个附加的数据子集上训练一个分类器。这个过程被重复多次,直到多数类的所有子集都被建模。最后,将所有创建的分类器组合起来,以产生最终的分类结果。

我们将使用SPSS Modeler向您展示此方法的实现。

EasyEnsemble高度不平衡的数据图表
EasyEnsemble高度不平衡的数据图表

首先,将Sample节点与上流选择节点连接,选择所有大多数类的情况,并确保取消选择可重复分区分配选项,以确保样本的每个子集都是独立创建的。追加样本与少数群体案件。在附加数据上运行建模节点。用多个Sample节点重复此操作。

EasyEnsemble高度不平衡的数据流示例
EasyEnsemble高度不平衡的数据流示例

BalanceCascade

BalanceCascade采取更监督的方式来进行欠采样。通过构建一个由所有少数人案例组成的子集和大多数类别的随机样本来开始这种方法,这个样本与少数人群体大小大致相同。在对这个子集进行训练之后,你可以拿出大多数可以被训练好的分类器正确分类的案例,并使用剩余的大多数案例再次完成整个过程,直到剩余的大多数案例的数量小于少数案例的数量。最后,您将所有这些迭代的分类器以这样一种方式进行组合,即只有被所有分类器分类为响应者/肯定的情况才会被标记为响应者/肯定。

在SPSS Modeler中实现此方法有点麻烦。有可能有多种方式来做到这一点,在这里我们将只显示其中一个重复这个过程一次。您首先从主要类别案例中随机抽样。接下来,您使用自动分类器节点从附加子集构建初步模型。之后,您需要使用它对所有主要类案例进行评分,并使用Select节点放弃那些正确分类的主要类案例。

BalanceCascade高度不平衡的数据样本节点示例
BalanceCascade高度不平衡的数据样本节点示例

在部署在此过程中生成的模型块时,您需要将它们全部连接到数据源并获取类似于下图所示的规则。

BalanceCascade高度不平衡的数据模型预测实例
BalanceCascade高度不平衡的数据模型预测实例

成本矩阵操作

虽然抽样方法试图改变不同类别的分布,但成本矩阵操纵改变了误分类惩罚。通常,将多数类别错误归类为少数类别的成本要比将少数类别错误归类为多数类别的成本要小。例如,当试图通过乳房X线照相检查来鉴定癌症患者时,人们会认为将癌症患者错误分类为非癌症患者比其他方式成本高得多。

SPSS使得实现错误分类成本操纵变得非常容易。在建模节点中,您可以选择使用错误分类成本选项并尝试不同的成本。

成本矩阵操纵高度不平衡的数据流失示例
成本矩阵操纵高度不平衡的数据流失示例
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 训练集大小操作(抽样方法)
    • 随机过采样和欠采样
      • EasyEnsemble
        • BalanceCascade
        • 成本矩阵操作
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档