设为首页收藏本站

JMP数据分析论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 2148|回复: 4
打印 上一主题 下一主题

如何对非均衡数据进行精准预测建模?

  [复制链接]
跳转到指定楼层
楼主
发表于 2021-8-23 16:03:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在分析数据时,我们常常需要做一些预测,例如根据用户的商品购买数据,预测该用户是否对某个产品感兴趣;根据信用卡申请人的消费行为数据,预测该用户的还款行为是否可能进行逾期等等。

但有时候我们会发现,原始的数据集中要预测的Y变量,两类的数量差距非常大,比如,对某产品感兴趣的用户数远小于不感兴趣的用户数,有逾期记录的用户数远小于没有逾期记录的用户数。类似这样的数据,被称为非均衡数据,如果直接用传统的预测方法可能造成预测效果的不理想,那么对于这样的非均衡数据的预测问题,有什么样的好办法呢?莫慌!JMP可以完美解决此类问题。

今天我们就来探讨下非均衡数据的精准预测。


#01 非均衡数据问题有哪些特征?
通常来说,非均衡数据往往具备以下一些特征。
  • 响应变量Y仅有2个水平。其中一个水平的数量>>另一个水平的数量;数量多的水平成为多数水平,数量少的水平称为少数水平。
  • 少数水平通常是们感兴趣的水平。例如欺诈、疾病、信用风险的检测。
  • 我们希望基于自变量来预测所属类别。
  • 我们需要建立预测模型,计算每一个样本属于少数水平的概率p.
  • 我们选择一个阈值来优化各种标准,如误分类率、真阳性率、假阳性率、准确率、召回率等。
  • 我们将其预测的概率p(或得分)超过阈值的观察结果分类为少数类。

#02 如何建立分类模型?

  • 通常情况下,一些传统的分类精度指标往往不适用于不平衡数据。

例如,考虑少数水平数占2%的情况。你可以简单地将所有的观测划分为多数水平所在的类别,便可以达到98%的准确率。
  • 精度-召回率(PR)曲线常用于不平衡数据。

PR曲线比ROC曲线对阶级不平衡更敏感。因此,PR曲线能够更好地突出不平衡数据模型的差异。

#03 抽样方法的选择

运用合理的抽样方法可以帮助对少数类进行建模。
使用抽样方法的目的是使分布更加平衡,或更好地划定大多数和少数类观察之间的边界。

JMP中的不平衡分类插件实现了7种采样技术:
  • 无加权法

不对原始数据进行更改。
  • 加权法

对少数水平类的观测进行加权(权重为多数水平数/少数水平数)。
  • 随机欠采样法

随机删去多数水平类中的观测,使得两个水平的数量相等。
  • 随机过采样法

随机选择少数水平类中的观测,再次添加到总体中,使得两个水平的数量相等。
  • SMOTE方法

一种更复杂的过采样方法,添加更多的少数水平类案例生成与现有少数水平观测相似的新数据观测,而不是简单地复制它们,对少数类观测结果执行K个最近邻生成,填充由近邻定义的空间。
  • Tomek Links方法

试图更好地界定少数和多数阶级之间的界限。从大多数类中移除与少数类“接近”的观察结果,以更好地定义簇边界。Tomek Links是属于不同类别的一对最近的邻居。为了减少多数和少数实例的重叠,可以删除一对中的一个或两个观测。
  • MOTE plus Tomek方法

MOTE plus Tomek方法是上面两种方法的结合。首先,采用SMOTE算法生成新的少数观测值;然后,利用新生成的观测结果,应用Tomek算法找到属于不同类别的最近邻对。

下面,我们以一个案例来进行应用。

#01 数据集说明

这里选用来自某银行的客户信用卡逾期数据,一共7529条观测,每行观测代表单个客户的信息,列变量分别为:
1) ID-客户ID
2) Bad-是否逾期超过90天
3) Age-年龄
4) Gender-性别
5) Monthly Income-月收入
6) Dependent-家庭成员数(不包括本人)
7) Debtratio-每月偿还债务,赡养费,生活费除以每月总收入
8) Utilization-信用额度
9) Num_Line-贷款数额
10)Num Loan-贷款数量
11)Del_30-逾期30-59天
12)Del_60-逾期60-89天
13)Del_90-逾期90天以上的次数

从因变量Bad的分布情况看,出现逾期超过90天的观测数仅占总体的4%,符合我们上文中提到的非均衡数据问题。


#02 下载不平衡分类插件

在JMP全球用户社区(JMP Community) 下载不平衡分类插件,然后在JMP软件中直接打开即可。
插件安装成功后,会在软件的Add-Ins中出现“Imbalanced Classification”的选项,选择次级菜单中的“Evaluate Models”.

友情提示:JMP需要在英文界面才可以正常运行此插件,中文界面的用户,请在“文件”-“首选项”-“Windows特定”中,将语言由中文切换为英文。



#03 进行精准模型预测

接下来,如下图所示,将因变量“Bad”纳入“Binary Class Variable”,其他所有的自变量纳入“X,Predictors”,在左侧中间的“Models”可以勾选你想要尝试的预测模型,可以选择的模型包括:朴素贝叶斯分类器、神经网络、随机森林、提升树、支持向量机、广义回归。

在左侧下方的“Sampling Techniques”可以勾选你想要尝试的抽样技术,包括上文中提到的几种采样方法。为了保证结果的一致性,可以在“Model Options”中设定随机数种子。


如果将所有模型和所有采样技术均勾选上之后,可以得到6x7=42种模型。

运行结果包括4张数据表以及一个交互式分析界面。四张表分别是训练集的结果、测试集的结果、各模型采样方法和阈值的结果、各模型的比较结果。

交互式分析界面如下图所示。


上图将42个模型的ROC曲线汇总在了同一张图片里,上图右侧是按照ROC曲线下的AUC排序的模型,可以看到Tomek抽样方法结合BootstrapForest的预测方法有着最优的效果,AUC高达0.812.也可以选择Precision-Recall曲线进行比较,根据PR曲线下的AUC,可以看到对应的模型效果排序。同时,还可以选择少数几个模型进行比较,得到更加清晰的结果对比。

可以拿你的数据试试看。 点击这里下载最新的JMP 16免费试用

分享到:  !connect_viewthread_share_to_qq!!connect_viewthread_share_to_qq! QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 转播转播 分享分享 分享淘帖 支持支持 反对反对
回复

使用道具 举报

沙发
发表于 2022-1-30 08:05:40 | 只看该作者
很好的数据资料分享
回复 支持 反对

使用道具 举报

板凳
发表于 2022-5-12 07:29:01 | 只看该作者
很好的学习资料
回复 支持 反对

使用道具 举报

地板
发表于 2022-6-26 07:27:52 | 只看该作者
非常好的学习资料
回复 支持 反对

使用道具 举报

5#
发表于 2022-11-28 07:40:19 | 只看该作者
非常好的学习资料
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|JMP数据分析论坛 ( 沪ICP备13022603号-2 )  

GMT+8, 2024-4-19 14:04 , Processed in 0.397603 second(s), 15 queries .

Powered by Discuz! X3

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表