聊一聊信贷领域中的特征分箱

· 2025-09-04 00:22 · 5 阅读

原创 古明地觉 2025-09-04 00:22 上海

图片

楔子

最近收到不少小伙伴的私信,在这里统一回复:谢谢大家关心,我还活着,只是不更新了而已。然后也有小伙伴从几个月前就一直问我啥时候更新,我的回答是没啥好更新的了,建议大家一定要拥抱 AI,生产力绝对会成倍提升。

但话都说到这儿了,不更新一篇也不合适。由于目前正在从事风控领域,就更新一篇风控相关的文章吧。

图片

什么是特征分箱?

在信贷风控领域,特征分箱(Feature Binning)是一项至关重要且应用广泛的特征工程技术,它的作用是将连续型特征(如年龄、收入)或多取值的离散型特征(如职业)进行分组、装箱,将其转化为一系列离散的区间或类别。这一看似简单的操作,在构建稳定、可解释且高效的信用评分卡等风控模型中,扮演着定海神针般的关键角色。

而之所以要特征分箱,是因为在原始的连续型特征上直接建模,往往会遇到诸多挑战。而特征分箱通过将数据离散化,带来了多方面的显著优势。

  • 提升模型的稳定性和鲁棒性:分箱操作能够有效降低特征中 "噪声" 的干扰。例如借款人年龄的微小变动(从 30 岁变为 31 岁)可能并不会对其信用风险产生实质性影响,分箱后,这些细微的波动被平滑处理,能有效防止模型因过度拟合个别数据点而变得不稳定,从而增强模型的泛化能力,使其在面对新数据时表现更稳健。

  • 增强模型的可解释性:将连续特征转化为有限的几个箱,极大地增强了业务人员对模型决策逻辑的理解。例如,相比于 "年龄每增加一岁,违约概率下降 0.5%" 这种复杂的线性关系,"年龄在 30 ~ 40岁之间的客群,其信用风险较低" 这样的结论显然更直观,更易于向决策层和业务部门解释和沟通。

  • 有效处理非线性关系:现实世界中,许多特征与信用风险之间并非是简单的线性关系。例如,年龄与违约率可能呈现 U 型关系,即年轻人和老年人的风险相对较高,中年人风险较低。分箱操作可以将这种非线性关系转化为分段的线性关系,使得逻辑回归等线性模型也能有效捕捉到这种复杂的模式。

  • 便捷地处理缺失值和异常值:在进行分箱时,可以将缺失值或异常值作为一个独立的 "箱" 来处理。这不仅避免了复杂的缺失值填充或异常值剔除操作,还能将 "缺失" 或 "异常" 本身作为一种信息纳入模型考量,有时这些特殊值本身就蕴含着特定的风险信息。

  • 为后续的 WOE 转换和评分卡创建奠定基础:在构建信用评分卡时,特征分箱是计算证据权重(Weight of Evidence,WOE)和信息价值(Information Value,IV)的前提。WOE 可以衡量每个分箱内好坏客户的比例差异,从而揭示该分箱对风险的预测能力。

图片

常见的特征分箱方法

特征分箱的方法主要有以下几种:

  • 等宽分箱(Equal Width Binning)

  • 等频分箱(Equal Frequency Binning)

  • 卡方分箱(Chi-Merge Binning)

  • 决策树分箱(Decision Tree Binning)

等宽分箱

核心思想:将特征的取值范围(最大值 ~ 最小值)等分成 N 个区间。

这种做法实现简单、快速,但缺点也很明显。如果特征值分布不均,容易产生某些箱内样本量过多,而另一些箱内样本量过少的情况,导致分箱结果无意义。

因此等宽分箱一般用于数据分布比较均匀的特征,或作为快速探索性分析的初步分箱方法。

等频分箱

核心思想:将特征按从小到大的顺序排列,然后切分成 N 个部分,使得每个部分(箱)内的样本数量大致相等。

这种做法保证了每个箱内都有足够的样本量,避免了等宽分箱的缺点。但它自身也有缺点,因为可能会将数值上非常接近的样本点强行切分到不同的箱中,对于某些业务场景,这种纯粹基于频率的切分可能破坏了原有的业务逻辑。

卡方分箱

等款分箱和等频分箱针对的是无监督样本,而卡方分箱针对的是有监督样本。其核心思想是利用卡方检验(Chi-Square Test)来衡量相邻两个区间的分布相似性,从最小的箱开始,不断合并卡方值最小的相邻箱,直到满足停止条件(如分箱数、卡方阈值)。

这种做法是一种基于目标变量(如是否违约)进行分箱的监督方法,能保证分箱后的每个箱都有显著不同的风险水平。至于缺点是计算相对复杂,对某些值域的样本量敏感。

卡方分箱在构建信用评分卡时非常常用,因为它能确保分箱结果与风险有很强的关联性。

决策树分箱

针对有监督样本,核心思想是利用单特征构建一个简单的决策树模型来拟合目标变量,树的每个叶子节点就代表一个分箱。

这种做法能自动找到最优的分割点,并且可以很好地处理非线性关系,分箱结果与目标变量强相关。但缺点是容易过拟合,需要通过剪枝或限制树的深度来控制,因此对于强线性关系的特征可能不是最优选择。

决策树分箱主要用于需要深度挖掘特征与风险之间非线性关系的场景。

图片

卡方分箱

下面来单独说一下卡方分箱(Chi-Merge Binning)的原理,因为它不像等宽和等频那么简单。

卡方分箱的哲学可以用一句老话来概括:"物以类聚,人以群分",它的核心目标是将特征值相近且目标值(如好坏客户)分布也相似的区间进行合并。最终保留下来的每个箱子,其内部的客户风险水平应该尽可能一致,而不同箱子之间的风险水平则要有显著的差异。

它是个自底向上的过程,和之后要介绍的决策树正好相反,先让每个特征值都自成一派(一个箱),然后通过一个标准去衡量哪些"派别"最相似,并将它们合并,不断重复这个过程,直到"派别"数量减少到我们满意的程度。而衡量派别相似的标准,就是统计学中著名的卡方检验(Chi-Square Test)。

所以要理解卡方分箱,就必须先理解它的数学引擎 - 卡方独立性检验。这个检验的目的是判断两个分类变量是否相互独立,在当前的场景中,这两个变量是:

  • 分箱变量:即样本属于哪个箱子,例如箱子 A 还是箱子 B。

  • 目标变量:即客户是好客户还是坏客户。

卡方检验会提出一个零假设(H0):分箱变量与目标变量相互独立。换句话说,零假设认为 "一个客户在箱子 A 还是箱子 B" 与 "他是一个好客户还是坏客户" 这两件事没有关系。如果这个假设成立,那么箱子 A 和箱子 B 中好坏客户的比例应该是没有显著差异的。

卡方检验会计算出一个卡方统计量(χ2 值),这个值衡量了实际观测值与期望值之间的差距。

  • O(Observed):观测频数,即我们实际统计到的、落在每个箱子里的样本数量。

  • E(Expected):期望频数,即如果零假设成立,我们理论上期望的样本数量。

如果 χ2 值很小,说明观测值(O)与期望值(E)非常接近,这意味着数据非常符合 "两个变量相互独立" 的零假设,因此我们没有理由拒绝零假设。在分箱场景下,这代表着这两个相邻的箱子,其好坏客户的分布非常相似,它们是合并的首要候选者。

如果 χ2 值很大:说明观测值(O)与期望值(E)差距巨大,这强烈地表明 "两个变量相互独立" 的假设是错误的,因此我们可以拒绝零假设。在分箱场景下,这代表着这两个相邻的箱子,其好坏客户的分布有显著差异,它们应该被分开,不能合并。


下面通过一个例子,来实际感受一下运算过程。

假设有以下数据,并且已经初始化,每个年龄段是一个独立的箱。我们想看看相邻的 20 ~ 30 岁和 31 ~ 40 岁这两个箱是否应该合并。

年龄段

好客户(is_bad = 0)

坏客户(is_bad = 1)

总计

20 ~ 30

80

10

90

31 ~ 40

150

20

170

总计

230

30

260

以上是我们的观测值,这是通过实际的统计得到的,是真实数据。而接下来要计算期望值,这是通过数学理论得到的。

第一步:计算期望值(Expected)

如果年龄段和是否坏客户无关(即零假设成立),那么 $20 \sim 30$ 岁年龄段的坏客户比例应该和总体的坏客户比例一样。

  • 总坏客户比例 = 30 / 260 ≈ 11.54%

  • 总好客户比例 = 230 / 260 ≈ 88.46%

现在我们可以计算每个格子的期望值 E = 行总计 * 列总计 / 总计。

  • E(20 ~ 30, 好客户) = 90 * 230 / 260 ≈ 79.6

  • E(20 ~ 30, 坏客户) = 90 * 30 / 260 ≈ 10.4

  • E(31 ~ 40, 好客户) = 170 * 230 / 260 ≈ 150.4

  • E(31 ~ 40, 坏客户) = 170 * 30 / 260 ≈ 19.6

第二步:计算卡方值

现在,我们将观测值和期望值代入公式。

此时我们便算出了 20 ~ 30 和 30 ~ 40 的卡方值 χ2,这个值为 0.026。

第三步:决策

我们会对所有相邻的箱子重复上述计算,假设区间再多一些,我们可能还会计算 31 ~ 40 和 41 ~ 50 之间的 χ2 值,比如计算出的结果为 2.5。

因为 0.026 < 2.5,所以 20 ~ 30 和 31 ~ 40 这对箱子的相似度更高,在这一轮迭代中,算法会优先选择合并 20 ~ 30 和 31 ~ 40,形成一个新的箱 20 ~ 40。

然后算法进入下一轮迭代,新的箱 20 ~ 40 会和它的邻居(如 41 ~ 50)再次计算卡方值,并寻找全局最小的卡方值进行合并。这个过程会一直持续下去,直到满足以下停止条件。

  • 达到目标箱数(Max Bins):这是最常用的方法,预先设定一个最终的分箱数量(例如 10 箱),当合并到只剩下 10 个箱子时,算法停止。

  • 卡方阈值(Chi-Square Threshold):设定一个卡方值的阈值,如果计算出的所有相邻箱的最小卡方值都大于这个阈值,说明即使是差异最小的两个箱,差异也已经很显著了,不应该再合并,算法停止。

  • 最小箱体样本量(Minimum Bin Size):要求每个箱子必须包含最少 N 个样本。如果合并后会导致某个箱子过大,而另一个箱子样本过少,则可以调整策略。或者在初始化时就预先合并一些样本极少的箱。

综上所述,卡方分箱的原理就是巧妙地利用卡方独立性检验,通过一个迭代合并的过程,不断地将目标变量分布最相似的相邻区间进行合并,从而找出最优的分箱切分点,确保最终的分箱结果在统计上具有区分度。

图片

决策树分箱

决策树分箱的核心思想是:如果一个决策树模型能用某个特征很好地预测客户的好坏,那么这棵树为了做出判断而找到的分割点,不就是天然的、最佳的分箱边界吗?因此它把分箱问题转成了一个简单的模型训练问题。

我们针对单个特征建立一棵决策树来预测目标,然后把这棵树的决策逻辑(即分割规则)直接翻译过来,作为分箱规则。因此决策树分箱的过程可以分解为以下几个步骤:

1)选择一个你想要分箱的连续型特征(例如 age)作为自变量 X,选择你的目标变量(例如 is_bad)作为因变量 y。

2)使用 X 和 y 来训练一个决策树分类器(DecisionTreeClassifier),但我们不能让这棵树无限生长,否则它会为了拟合每一个数据点而制造出无数个细碎的箱子,导致严重的过拟合。所以必须对它进行预剪枝,限制其复杂度,常用的剪枝方法如下。

  • 限制最大叶子节点数(max_leaf_nodes),这是最直观的方法,如果想分成5个箱,就设定 max_leaf_nodes=5。

  • 限制树的最大深度(max_depth),例如深度为 3 的树最多能产生 2^3=8 个箱。

  • 限制叶子节点的最小样本量(min_samples_leaf),确保每个箱子,或者说每个叶子节点都包含足够多的样本,避免产生不稳定的、由少数样本构成的箱。

3)当决策树训练完成后,其内部已经包含了所有用于决策的分割点(也称为阈值)。我们可以从训练好的树模型中,把所有内部节点(非叶子节点)的分割阈值(threshold)提取出来。

4)将提取出的所有分割点进行去重和排序,在排序后的分割点列表的开头加上负无穷(-inf),在结尾加上正无穷(+inf),这就构成了一套完整的分箱边界。

5)使用这些边界,通过类似 pandas.cut 的功能,将原始的连续特征映射到其对应的分箱区间中。


假设我们用"年龄"特征训练了一棵决策树(max_leaf_nodes = 4),它最终的决策逻辑可能是这样的。

  • 训练决策树:根节点以 age <= 55.5 为条件分裂,左子树(age <= 55.5)继续以 age <= 28.5 分裂,右子树(age > 55.5)不再分裂,成为一个叶子节点,age <= 28.5 的分支也不再分裂,最终形成了 4 个叶子节点(即 4 个箱)。

  • 提取分割点:树中用到的分割点是 55.5 和 28.5。

  • 形成边界:排序后为 [28.5, 55.5],加上无穷边界后,完整的边界列表是 [-inf, 28.5, 55.5, +inf]。

  • 最终分箱结果:箱 1 为 (-inf, 28.5],箱 2 为 (28.5, 55.5],箱 3 为 (55.5, +inf]。注意:这里因为树的结构,最终只产生了 3 个箱,即使我们设定了max_leaf_nodes=4。

那么决策树分箱有哪些优缺点呢?

优点

  • 自动寻找最佳分割点:无需人工干预,算法能基于信息增益或基尼不纯度自动找到最优的分割边界,最大化箱内的纯度。

  • 能捕捉非线性关系:这是它相较于卡方分箱等方法的一个巨大优势,如果特征与目标之间存在 U 型、倒 U 型等复杂关系,决策树可以通过多次分割来有效捕捉这种模式。

  • 处理速度快:决策树的训练速度非常快,尤其是在特征维度很低时(我们每次只用一个特征)。

  • 鲁棒性强:对于异常值不敏感,因为异常值只会被分到某个叶子节点,不会像等宽分箱那样严重影响整体的边界划分。

缺点

  • 容易过拟合:如果不对树的复杂度进行严格限制(即剪枝),它会生成过多且不稳定的分箱,导致模型在测试集上表现很差。控制复杂度是使用此方法的关键。

  • 结果可能不稳定:训练数据的微小变动可能会导致生成一棵完全不同的树,从而得到一套不同的分箱规则。

  • 不保证单调性:决策树只关心如何最大化信息增益,它产出的分箱结果对应的风险率(或WOE值)不保证是单调的。这在需要强业务可解释性的评分卡场景中可能是一个问题,可能需要后续手动调整。


然后是这几种分箱的实现方式,我们可以借助 toad 库来实现,这是一个广受好评的 Python 库,尤其在评分卡建模领域,它提供了包括卡方分箱在内的一整套解决方案。比如除了卡方分箱,还集成了计算 WOE、IV、特征筛选、评分卡转换等一系列风控建模常用功能。

图片

特征分箱与 WOE、IV 的联动

在信贷风控中,特征分箱的最终目的往往是为了计算 WOE 和 IV,进而构建信用评分卡。那什么是 WOE 和 IV 呢?

证据权重(WOE)

WOE 是对一个分箱内好客户(非逾期)与坏客户(逾期)比例的衡量,其计算公式为如下。

所以每个分箱的好客户占整体好客户的比例,除以坏客户占整体坏客户的比例,再取对数,便是对应分箱的 WOE。

举个例子,我们有 10000 个客户,8000 个好客户,2000 个坏客户。某个分箱里面好客户是 800 人,坏客户是 400 人,那么:

  • Goodi / Goodtotal = 800 / 8000 = 10%

  • Badi / Badtotal = 400 / 2000 = 20%

所以 WOEi = ln(10% / 20%) = ln(0.5) = -0.693。

而基于 WOE 值,我们可以做出如下结论。

  • 如果 WOE > 0:该分箱中好客户占比高于坏客户占比,属于低风险区间。

  • 如果 WOE < 0:该分箱中坏客户占比高于好客户占比,属于高风险区间。

  • 如果 WOE = 0:该分箱中好坏客户占比相等,风险中性。

在上面的例子中,WOE = -0.693 < 0,说明这个分箱是高风险的,因为坏客户的相对集中度(20%)高于好客户的相对集中度(10%)。

所以通过 WOE,可以标准化不同分箱的比较基准,消除样本不平衡的影响,以及提供直观的风险度量。

信息价值(IV)

IV 是用来衡量一个特征对目标变量的总体预测能力的指标,它是所有分箱的 WOE 值的加权和,其计算公式如下。

所以 IV 值实际上衡量的是好客户和坏客户在各分箱中分布差异的加权总和,权重就是各分箱的 WOE 值,差异越大,权重越大,IV 值就越高。而 IV 值越高,说明该特征对区分好坏客户的能力越强,通常 IV 值的评判标准如下。

  • < 0.02:无预测能力

  • 0.02 ~ 0.15:预测能力正常。

  • 0.15 ~ 0.3:预测能力强

  • 0.3 ~ 0.4:预测能力极强(需要警惕过拟合)

  • > 0.4:直接看是不是过拟合了

举个例子,假设我们对特征 "月收入" 进行分箱,得到以下结果。

显然 IV 值等于 (17.8% - 40%) * -0.81 + (50% - 50%) * 0 + (32.2% - 10%) * 1.17 = 0.44,而 0.44 表示月收入这个特征具有极强的预测能力(当然 0.44 过于高了,这里只是随便举例)。而通过观察 WOE 值,也可以证明这一点。

  • < 5000元:WOE = -0.811 < 0,高风险群体。

  • 5000 ~ 10000元:WOE = 0,风险中性。

  • > 10000元:WOE = 1.173 > 0,低风险群体。

这个结果符合业务直觉,收入越高,信用风险越低。

然后是 IV 值的大小问题,我们说 IV 值如果大于 0.4 反而是个不好的现象,因为大于 0.4 表示特征和目标结果拟合的太完美了,这说明了以下几个问题。

  • 数据泄露:变量可能包含了未来信息或与目标变量直接相关的信息。

  • 样本偏差:训练样本可能存在某种特殊的数据分布,不能代表真实总体。

  • 数据质量问题:变量定义不当,可能直接或间接包含了标签信息。

0.1 ~ 0.4 通常是 IV 值最理想的范围,既有足够的预测能力,又保持了良好的稳定性和可解释性。"适度" 往往比 "极端" 更可靠,这在风控建模中尤其重要。

另外可能有人会产生误区,还是不理解为什么 IV 值不能太大,这是因为我们说的都是单个特征的 IV 值。而单个特征本身就只能解释数据的一部分信息,任何单一维度都无法完全刻画客户的信用风险。

而实际的特征工程中,客户会有大量特征,每个特征都有对应的 IV 值。通过多个特征组合,不同特征捕获不同维度的信息,并且特征之间存在互补,从而实现预测能力远超单个特征。

  • 收入高 + 年龄大 + 工作稳定 → 低风险

  • 收入高 + 年龄小 + 工作不稳定 → 中等风险

  • 收入低 + 年龄大 + 工作稳定 → 中等风险

  • 收入低 + 年龄小 + 工作不稳定 → 高风险

如果一个特征就能实现精准预测,那还要其它特征做什么?如果出现这样的特征(IV 值超过了 0.4、甚至更大),那么就要好好检测一下是不是出现了过拟合现象。

假设有以下几个特征。

特征

IV值

单独使用时的 AUC

月收入

0.35

0.65

年龄

0.25

0.62

信用卡使用率

0.30

0.64

工作年限

0.20

0.61

组合后的效果:

  • 4  个特征组合:AUC 可能达到 0.75 ~ 0.80。

  • 10 个特征组合:AUC 可能达到 0.80 ~ 0.85。

  • 50 个特征组合:AUC 可能达到 0.85 ~ 0.90。

所以在实际建模时,我们更关注特征组合后的整体效果,不会因为某个特征 IV 只有 0.15 就丢弃。宁可选择 10 个 IV=0.2 的不同维度特征,也不选择 3 个 IV=0.4 但高度相关的特征。

关于 IV 值,我们要记住以下几个结论。

  • IV 是筛选工具,不是绝对标准。

  • 特征组合的整体效果比单个特征更重要。

  • 多维度的中等强度特征组合往往比少数高 IV 特征的效果更好。

  • 最终评判标准是模型在验证集上的综合表现。

这就是为什么经验丰富的风控建模师会说:"特征工程是艺术,不只是科学"。

图片

IV 值在建模时应用

既然提到了 IV 值,那么继续补充一下它在建模时的应用。

在实际的特征工程中,会为每个客户刻画数万(甚至数十万、数百万)个特征,然后用这些特征来建模。但如果特征过多,不仅耗费资源,甚至一些无用特征反而会降低准确率,那么这时候就要进行特征筛选,从数万个特征中筛选出最有用的部分特征。而 "最有用" 三个字的量化方式就是通过 IV 值,IV 值越大,说明它对样本预测的重要性越大。

和 PCA 降维的关系

有过机器学习经验的朋友会发现,整个过程就类似于 PCA 降维,因为不是所有特征都是有用的。而 PCA 会将原始数据映射到新的空间,每个轴都是原始特征的加权组合,如果该轴的可解释方差比例越大,证明这个轴就越有用。当然一个轴是不够的,我们需要可解释方差比例最大的 k 个轴,如果它们的可解释方差比例加起来接近 1,那么只需要这 k 个轴即可。

因此通过 PCA 降维,将具有 n 个特征的原始数据映射到新的空间之后,只需 k 个特征即可进行预测,并且 k 是远小于 n 的。而建模这个过程与之类似,虽然原理不一样,但做的事情是一样的,也是从全量特征中筛选出部分最有用的特征,只是量化标准是 IV 值。

维度

特征筛选(基于 IV)

PCA 降维

选择方式

从原特征中选择子集

创造新的组合特征

可解释性

保持业务含义

失去原始特征含义

评价标准

与目标变量的关联性(IV 值)

数据本身的方差贡献

特征关系

考虑特征与 y 的关系

只考虑特征间的关

那么问题来了,为啥不用 PCA 降维呢?原因有以下几个。

1)监管合规要求

监管机构如果问,为什么拒绝这个客户的贷款申请?

  • PCA 降维:因为他的 xx 值较低 …(无法解释)

  • 特征筛选:因为他的月收入过低且信用卡使用率过高(可解释)

2)业务策略制定

  • PCA 方法:xx < -0.5 且 yy > 1.2 的客户需要额外审核(难以操作)

  • 传统方法:月收入 < 5000 且年龄 < 25 岁的客户需要额外审核(易操作)

3)模型监控和调试

  • 当模型表现下降时,可以直接分析具体特征的变化

  • 容易发现数据漂移和特征失效

所以无论是 PCA 降维还是 IV 值筛选,本质都是在高维空间中寻找最有价值的信息维度。PCA 是通过寻找方差最大的方向,而 IV 值筛选是寻找与目标最相关的特征,两者做的事情都是在有限的维度预算下,最大化保留信息。

但在金融风控场景下,可解释性往往比信息压缩更重要,所以过滤特征时会使用 IV 值筛选,而不是 PCA 降维。

如何通过 IV 值实现特征筛选

好,再来看看通过 IV 值实现特征筛选的具体流程。

第一阶段:数据准备与预处理

1)原始数据质量检查

统计每个特征的缺失率、唯一值数量、数据类型,识别常数列(所有值都相同的特征),检查数据分布的基本情况。

2)基础数据清晰

剔除缺失率过高的特征(通常 > 80%),删除方差过小的数值型特征(几乎没有变化),移除唯一值过少的特征(如只有 1 ~ 2 个取值)。

第二阶段:特征分箱处理

如果是数值型特征:对于每个特征进行分箱,一般选择卡方分箱,并且确保每个分箱有足够的样本量(通常要求每箱 > 5%总样本)。检查分箱后的单调性,每个箱的 WOE 值应该单调递增或递减。

如果是非数值型(字符串)特征:将该特征可能出现的值进行分类,每个类别也要有足够的样本量。如果是非常少见的值,那么整体合并为 "其它"。

第三阶段:IV 值批量计算

按照 WOE 和 IV 的公式,为每个特征计算 IV 值。并且在此过程中,要记录出现的异常情况(如某个分箱没有正样本或负样本),并且建立详细的计算日志,便于后续排查问题。

然后将所有特征的 IV 值汇总到一张表中,按 IV 值从高到低排序,统计不同 IV 值区间的特征数量分布。

第四阶段:多层次特征筛选

1)IV 阈值筛选

设置 IV 值的上下限,剔除 IV 值过低的特征(预测能力不足),标记 IV 值过高的特征(可能存在数据问题)。

2)可疑特征检查

对 IV 值大于 0.3 的特征进行深度检查,主要包含以下方面。

  • 数据泄露检查:是否包含未来信息或目标变量的直接信息。

  • 业务合理性验证:特征与目标变量的关系是否符合业务逻辑。

  • 时间稳定性验证:在不同时间段上 IV 值是否稳定。

  • 样本分布检查:是否存在极端的样本分布导致 IV 值虚高。

3)特征多样性保证

确保不同业务维度的特征都有覆盖(如收入、年龄、信用历史等),避免选择的特征过于集中在某个业务领域,平衡高 IV 特征和中等 IV 特征的数量。

第五阶段:特征稳定性验证

1)时间稳定性测试

在不同的时间窗口上重新计算 IV 值,检查 IV 值的波动幅度(波动 < 20% 认为稳定),剔除在不同时期表现差异过大的特征。

2)跨样本验证

在训练集、验证集、测试集上分别计算 IV 值,确保特征的预测能力不是因为某个特定样本导致的。

第六阶段:最终特征集确定

1)将多个维度的评估结果综合

  • IV 值大小(权重 40%)

  • 稳定性评分(权重 30%)

  • 业务重要性评分(权重 20%)

  • 数据可得性评分(权重 10%)

2)根据模型类型和业务需求确定最终特征数量


所以整个流程非常清晰:

原始特征 → 基础清洗 → IV 计算 → 初步筛选 → 深度验证 → 稳定性测试 → 最终选择

而筛选标准也很简单:

  • 数据质量:缺失率 < 20%,异常值 < 5%

  • IV 值合理性:0.02 ≤ IV ≤ 0.4

  • 稳定性要求:不同时期 IV 值波动 < 30%

  • 业务合理性:特征逻辑符合业务常识

阅读原文

跳转微信打开