特征工程基础:什么是特征工程、在信用评分中的重要性

这一章,我们聊聊最底层的东西。

很多同学刚接触信用评分,上来就调模型参数。LR不行换XGBoost,XGBoost不行换神经网络。折腾半天,AUC一点没涨。为什么?因为数据没处理好,特征还是那堆原始字段。说白了,你拿一堆生土豆去炒菜,锅再好也白搭。

什么是特征工程?

特征工程,就是把原始数据转换成模型能理解、能利用的数值化信息的过程。我个人习惯把它比喻成“给模型准备食材”。模型本身是个厨师,它不关心你从哪买的菜,只关心切好、洗净、调味好的成品。

你想想看,原始数据里可能有身份证号、地址、公司名称、日期、文本描述……这些模型根本吃不下。得把它们拆成数字:年龄、收入、距离、词频、节假日标志等等。这个转换过程,就是特征工程的核心。

特征工程包含哪些活儿?我列个清单:

  • 数据清洗:缺失值、异常值、重复记录的处理。别小看这一步,我见过太多项目因为漏了一个负值收入,整条信贷模型崩盘。
  • 特征构建:从已有字段派生出新字段。比如用“月收入”除以“月支出”得到“偿债比”。
  • 特征变换:取对数、标准化、分箱等。把偏态分布拉平,把量纲统一。
  • 特征选择:从一堆特征里挑出有用的,扔掉噪音。这一步常被忽略,但直接影响模型稳定性和解释性。
  • 特征编码:把类别变量变成数值。比如职业、学历,用独热编码或目标编码。

你看,这些步骤按顺序走下来,才叫完整的特征工程。只做其中一两项,那叫“半成品”。

提示:特征工程不是一次性的,它是迭代的。先粗筛,建立基线模型,分析错误,再回头做更精细的衍生。我在实际项目中,往往要来回跑3~5轮才能定稿。

为什么信用评分这么依赖特征工程?

信用评分是个特殊场景。它要预测的是“人”的未来行为,但原始数据里都是过去行为的记录。两者之间隔着一条看不见的河。特征工程就是搭桥。

举个例子:客户在银行的“月均存款余额”是个原始字段。但“过去6个月存款余额的标准差”和“当月余额相比上月的变化率”,这两类特征能更好地刻画客户的资金波动情况。而资金波动是逾期风险的重要信号。你不做特征工程,模型只能看到静态余额,错失大量信息。

信用评分的特征还有几个“硬约束”:

  1. 可解释性要求高:银行、监管、客户都需要知道为什么分数低。特征必须是可解释的,不能是黑盒。
  2. 样本不均衡:坏客户占比通常不到5%。这时候特征质量比模型复杂度更重要。好的特征能让模型在少量坏样本上也能学到信号。
  3. 时间稳定性:去年有效的特征,今年可能失效。我在做消费贷场景时,就遇到过“夜间交易次数”这个特征,疫情期间突然暴涨,差点导致模型偏移。
避坑指南:我曾经接手一个项目,团队直接拿原始字段跑XGBoost,AUC 0.78。我花了三周做特征工程,换回LR(逻辑回归),AUC 0.81,而且模型上线后稳定了一年。那之后我才真正理解——模型是锦上添花,特征才是雪中送炭。

特征工程在信用评分中的具体角色

我们可以把整个信用评分建模过程画成一条流水线。下面这张图能帮你理清特征工程的位置:

信用评分建模流程中特征工程的位置 信用评分建模流程 原始数据 流水记录/征信报告 特征工程 清洗/衍生/变换/选择 模型训练 LR/XGBoost/神经网络 评分卡 部署 迭代优化:分析错误 → 返回特征工程 关键说明 • 特征工程阶段是整个流程中耗时最长(通常占60%~80%)、对最终效果影响最大的环节。 • 原始数据直接给模型,往往导致过拟合、不稳定、解释性差。 • 迭代箭头表示:模型上线后仍需根据监控结果回退到特征工程做调整。

从图里你能看到,特征工程卡在原始数据和模型之间。它不像模型训练那样“一键跑出结果”,却直接决定了模型的天花板。

信用评分还有个特殊点:特征不但要有预测力,还要符合监管逻辑。比如你不能用“性别”直接做特征(歧视问题)。但你可以用“该性别群体在历史贷款中的平均违约率”做个交叉特征?不行,那也间接使用了敏感信息。这些都是特征工程层面就要解决的合规问题。

核心总结:在信用评分里,特征工程 = 数据理解 + 业务规则 + 统计变换 + 合规约束。缺一个,模型就站不稳。

特征工程的主要输出物

做完特征工程,你会得到一张“特征宽表”。每一列是一个特征,每一行是一个客户(一次申请或一个时间窗口)。宽表的列名和含义,就是你送给模型的所有“食材清单”。

下面这张表列出一个典型信用评分特征宽表的部分字段:

特征名 类型 原始来源 说明
age 数值型 身份证号 申请时年龄
income_to_debt_ratio 数值型 月收入/月负债 偿债能力指标,通过特征构建得到
num_inquiries_6m 计数型 征信查询记录 近6个月征信被查次数
occupation_encoded 数值型 职业文本 目标编码或WOE编码后的值
avg_balance_6m 数值型 银行流水 聚合特征,6个月平均余额

这张表看起来简单,但每一列背后可能都经历过几十行代码的加工。别忘了检查数据的分布、缺失率、异常值。我习惯每个特征生成后,先用箱线图扫一眼,再用描述性统计卡阈值。

小结

特征工程不是“数据预处理”的别名。它是建模的灵魂。在信用评分这个领域,数据质量参差不齐,业务规则复杂,监管严格,所以特征工程的价值格外突出。

你要记住:

  • 原始数据是砖块,特征工程才是盖房子的手艺。
  • 好特征可以让简单模型(LR)跑赢复杂模型(深度网络)在无特征工程时的效果。
  • 做特征工程时,带着业务理解和合规意识,才能输出经得起时间考验的评分卡。
个人经验:我参与过某银行的信用卡评分项目,前期团队把大部分时间花在模型调参上,结果上线后坏账率反而上升。后来我们砍掉了几个高方差特征,重构了收入和债务的交互特征,模型才稳下来。从此,我把“特征工程时间占比至少60%”写进了团队规范。

好,这一章我们理清了特征工程是什么以及为什么重要。接下来你会看到具体的特征清洗、构建、变换方法。我建议你先停一停,找一份真实的信贷数据集,试着找出5个你认为有用的原始字段,然后想想可以衍生出哪些新特征。动手,才是最好的学习。