二分类模型中,如何应对分类自变量取值过多
这是个信息无限充裕的年代,是个数据爆炸的年代,也是数据过载的年代。大数据之大,不仅在于体量巨大,更在于结构和内容的复杂,因此如何处理好数据一直是我们工作少为人知、却也无法忽视的重点。本期,我们就以二分类模型中自变量取值过载为例,给大家讲讲应对之道~
在二分类建模过程中,难免会遇到分类自变量取值过多的情况,比如用来表示观测值地域属性的自变量,在我国即使选用省级层面的信息,最多也可达31种取值。处理分类自变量时,最常用的方法是将其拆分为若干取值为“0”和”1”的二分变量,这样就会导致模型的维度过多,自由度降低,不仅对建模样本提出了更高的要求,还增加了模型参数估计的难度和模型的训练时间。因此,今天我们基于自己的经验,在这里谈谈对这个问题的处理思路。
一、利用聚类算法进行类别合并
既然这个问题是分类变量取值过多导致的,那么,最直接的解决思路显然就是对类别进行合并。当然,合并不能是主观随意的,而应该是基于定量分析之后的结果。为了便于叙述,不妨假设某个分类型自变量X有A1,A2,…,An等取值,我们可以计算出每个类别中实际的Y=1比例。具体计算过程如下表所示:
然后就可以利用聚类分析来进行类别的合并了。第一种思路是采用系统聚类法,将A1,A2,…,An看做聚类的对象,各个类别的Y=1比例作为指标进行聚类,即有n个聚类对象,1个聚类指标。聚类结束之后,将聚为一类的类别进行合并。当然,究竟聚为几类最合适,还可以采用一些指标来辅助确定,比如SAS软件中的R-square、半偏态R-square以及伪F统计量等,都可以用来辅助确定类的个数。
第二种思路就是采用有序样品的聚类,长期关注我们公众号的小伙伴可能还记得,我们在前期的文章中曾经利用这个方法来进行数据离散化,这里我们利用这个方法进行类别的合并,处理起来也比较简单,将各个类别按照Y=1比例从小到大的顺序进行排列,再利用Fisher算法将Y=1比例相近的类别进行合并。这样做最大的好处是我们可以根据信息损失,得到最优的类别个数和相应的最优合并方法。
二、利用决策树进行类别合并
利用决策树进行类别合并时,首先需要选择一个衡量分类变量之间相关性或影响程度的指标,我们可以使用在前期的文章中曾经介绍过IV信息量或一致性比率。这种类别合并的基本步骤可以表示为:
1、将各个类别按照Y=1比例从小到大的顺序进行排列,并将所有类别视为一个组;
2、利用IV信息量(或者一致性比率),找出最优的二元分割方法,使得被选中的分组方案是所有分组方案中预测能力最强的,这样将所有类别分成了两组,不妨假设为组1和组2;
3、将组1按照上一步同样的步骤分为组11和组12,组2分为组21和组22。再利用IV信息量比较组1和组2的最优分组的预测能力大小,取预测能力最强的组进行分裂,这样将所有类别分成了三组,不妨假设为组1、组2和组3。
然后,按照第3步的做法不断分裂下去,直到分裂形成的组数达到预先设定的个数为止。如果因变量是二分变量,可以使用IV信息量或一致性比率;如果因变量的取值个数大于2,那么就可以使用一致性比率来进行预测力的判断。《SAS编程与数据挖掘商业案例》一书种提供了一份观测值为32264的数据集,其中因变量是二分变量,有一个分类自变量LOCATION有19种可能的取值,我们利用这里介绍的算法对变量LOCATION进行合并,将合并后的类别个数设定为5,下图是分裂的具体过程:
其中原始的19个变量记为B1,B2,…,B19,经过4次分裂,19个取值最后被分为5个组,圆圈里面的表示的就是这5个组里面包括的原始变量名称,每个方框下面对应的数字表示该步分裂所对应的顺序。由于采用的是自上而下的分裂算法,很显然,分裂后保留的组数越多,算法所耗费的时间也就越长。
三、WOE编码
WOE就是所谓的证据权重(weight of evidence),该方法计算出分类变量每一个类别的WOE值,这样就可以用这个WOE值组成的新变量来替代原来的分类变量。由于新变量是数值型变量,因此该方法实际是将分类变量转化为数值变量,不用再生成虚拟变量,避免了由此产生的维度过多的问题。我们用下面的表格来表示WOE值的计算过程:
注:LN表示自然对数函数。
从上表可以看出,WOE值实际上是该类别中Y=1与Y=0比例之比的自然对数。需要注意的是,该表的Y=1比例与上一张表的Y=1比例计算方式是不一样的,上一张表的Y=1比例是该类别中Y=1观测个数与该类别所有观测个数之比,而这一张表示该类别Y=1观测个数与样本中所有Y=1观测个数之比。WOE编码法在利用logistic模型建立信用评分卡时应用较多。
四、小结
比较而言,前两种类别合并的方法,虽然减少了类别个数,但是仍然需要生成若干二分变量;当使用一致性比率进行预测力判断时,第二种方法也适用于多分类模型;第三种方法将分类变量直接转化为数值型变量,模型简洁,易于操作。但是如果出现类别中Y=1或者Y=0个数为零的情况,将导致WOE值无法计算。因此,也可以将两种方法结合起来,先进行简单的类别合并,避免Y=1或者Y=0个数为零的情况,然后再进行WOE编码。
总之,数据的世界是日益复杂的,大数据尤其如此。在面对繁复的海量数据时,我们需要很多方法和经验,将数据转化成更简洁有效的信息;希望大家能从本文中得到一点启发。
数据分析咨询请扫描二维码
若不方便扫码,搜微信号:CDAshujufenxi
在当今数字化时代,数据分析师的重要性与日俱增。但许多人在踏上这条职业道路时,往往充满疑惑: 如何成为一名数据分析师?成为 ...
2025-04-02最近我发现一个绝招,用DeepSeek AI处理Excel数据简直太爽了!处理速度嘎嘎快! 平常一整天的表格处理工作,现在只要三步就能搞 ...
2025-04-01你是否被统计学复杂的理论和晦涩的公式劝退过?别担心,“山有木兮:统计学极简入门(Python)” 将为你一一化解这些难题。课程 ...
2025-03-31在电商、零售、甚至内容付费业务中,你真的了解你的客户吗? 有些客户下了一两次单就消失了,有些人每个月都回购,有些人曾经是 ...
2025-03-31在数字化浪潮中,数据驱动决策已成为企业发展的核心竞争力,数据分析人才的需求持续飙升。世界经济论坛发布的《未来就业报告》, ...
2025-03-28你有没有遇到过这样的情况?流量进来了,转化率却不高,辛辛苦苦拉来的用户,最后大部分都悄无声息地离开了,这时候漏斗分析就非 ...
2025-03-27TensorFlow Datasets(TFDS)是一个用于下载、管理和预处理机器学习数据集的库。它提供了易于使用的API,允许用户从现有集合中 ...
2025-03-26"不谋全局者,不足谋一域。"在数据驱动的商业时代,战略级数据分析能力已成为职场核心竞争力。《CDA二级教材:商业策略数据分析 ...
2025-03-26当你在某宝刷到【猜你喜欢】时,当抖音精准推来你的梦中情猫时,当美团外卖弹窗刚好是你想吃的火锅店…… 恭喜你,你正在被用户 ...
2025-03-26当面试官问起随机森林时,他到底在考察什么? ""请解释随机森林的原理""——这是数据分析岗位面试中的经典问题。但你可能不知道 ...
2025-03-25在数字化浪潮席卷的当下,数据俨然成为企业的命脉,贯穿于业务运作的各个环节。从线上到线下,从平台的交易数据,到门店的运营 ...
2025-03-25在互联网和移动应用领域,DAU(日活跃用户数)是一个耳熟能详的指标。无论是产品经理、运营,还是数据分析师,DAU都是衡量产品 ...
2025-03-24ABtest做的好,产品优化效果差不了!可见ABtest在评估优化策略的效果方面地位还是很高的,那么如何在业务中应用ABtest? 结合企业 ...
2025-03-21在企业数据分析中,指标体系是至关重要的工具。不仅帮助企业统一数据标准、提升数据质量,还能为业务决策提供有力支持。本文将围 ...
2025-03-20解锁数据分析师高薪密码,CDA 脱产就业班助你逆袭! 在数字化浪潮中,数据驱动决策已成为企业发展的核心竞争力,数据分析人才的 ...
2025-03-19在 MySQL 数据库中,查询一张表但是不包含某个字段可以通过以下两种方法实现:使用 SELECT 子句以明确指定想要的字段,或者使 ...
2025-03-17在当今数字化时代,数据成为企业发展的关键驱动力,而用户画像作为数据分析的重要成果,改变了企业理解用户、开展业务的方式。无 ...
2025-03-172025年是智能体(AI Agent)的元年,大模型和智能体的发展比较迅猛。感觉年初的deepseek刚火没多久,这几天Manus又成为媒体头条 ...
2025-03-14以下的文章内容来源于柯家媛老师的专栏,如果您想阅读专栏《小白必备的数据思维课》,点击下方链接 https://edu.cda.cn/goods/sh ...
2025-03-13以下的文章内容来源于刘静老师的专栏,如果您想阅读专栏《10大业务分析模型突破业务瓶颈》,点击下方链接 https://edu.cda.cn/go ...
2025-03-12