1. 特征工程概述
大家好,我是你们这堂课的主讲人。在风控建模这个圈子里摸爬滚打了十来年,我见过太多「模型跑飞了」的惨案。说实话,十次里有八次,问题都出在特征工程上。
今天咱们就来聊聊这个看似基础、实则决定模型生死的关键环节。嗯,别小看它。
什么是特征工程
特征工程,说白了就是「把原始数据变成模型能听懂的语言」。
你想想看,银行给你的原始数据长什么样?可能是身份证号、申请时间、客户填写的收入数字。但模型要的不是这些。模型要的是「这个人的收入是否稳定」「他过去三个月有没有逾期」「他的负债率是不是已经爆表了」。
所以,特征工程就是干这个的:
- 从原始数据里提取有用信息——比如从身份证号里提取年龄、性别、地域
- 把脏数据洗干净——比如把「收入100000000」这种明显填错的数值处理掉
- 构造新的、更有预测力的变量——比如把「月收入」和「月还款额」组合成「债务收入比」
我个人习惯把特征工程比作「厨师备菜」。你食材再好(数据质量高),如果不会切、不会腌、不会搭配(特征工程差),做出来的菜(模型)照样难吃。
核心观点:特征工程不是锦上添花,而是雪中送炭。没有好的特征,再牛的算法也白搭。
为什么特征工程对信用评分至关重要
这个问题,我当年刚入行时也问过师傅。师傅没直接回答,而是让我去看一个真实案例。
那是一个消费金融公司的数据集,原始变量只有30多个。我直接用这些原始变量跑了一个逻辑回归,KS值只有0.25,勉强及格。后来我花了两周时间做特征工程——衍生变量、分箱、WOE编码、交叉特征……最后KS值干到了0.42。
你猜怎么着?算法没换,参数没调,就靠特征工程,模型效果几乎翻倍。
为什么会这样?原因有三:
- 信用风险本身是「隐性的」——一个人的还款意愿和能力,不会直接写在申请表上。你得从各种行为数据里「挖」出来。
- 原始数据往往不够「干净」——缺失值、异常值、量纲不统一,这些都会把模型带偏。我在项目中遇到过,有个变量因为单位是「元」而不是「万元」,导致系数小到被模型忽略。
- 模型需要「非线性关系」——年龄和违约率不是简单的直线关系。年轻人违约率高,中年人低,老年人又高。这种U型关系,原始变量学不会,但特征工程可以帮它「开窍」。
一个小技巧:做特征工程时,别只盯着单个变量。试试把两个弱变量组合起来,有时候会产生「1+1>2」的效果。比如「近3个月查询次数」单独看一般,但加上「近3个月申请机构数」,就能识别出「多头借贷」的风险信号。
特征工程在建模流程中的位置
很多新手容易犯一个错:拿到数据就急着建模。我曾经也这么干过,结果模型上线后表现一塌糊涂,被业务部门追着问「你们这模型是不是有问题?」
后来我学乖了。完整的建模流程应该是这样的:
从这张图你能看到,特征工程处在整个流程的「腰部位置」。前面是数据采集和清洗,后面是模型训练和评估。
我经常跟团队说一句话:「特征工程做得好,模型训练就是享受;特征工程做得烂,模型调参就是受罪。」
为什么这么说?因为模型训练阶段能做的事情其实很有限——调调参数、换换算法,顶多提升5%-10%的效果。但特征工程做对了,效果翻倍都不是梦。
避坑指南:我曾经犯过一个低级错误——在特征工程阶段不小心引入了「未来信息」。比如用「客户是否已经逾期」来预测「客户是否会逾期」,这在逻辑上就是错的。做特征工程时,一定要确保你用的信息在预测时点是「已知的」。
好了,这一章的内容就到这里。特征工程不是一蹴而就的功夫,它需要你对业务有深刻理解,对数据有敏锐嗅觉,还得有足够的耐心去反复尝试。但相信我,一旦你掌握了这门手艺,建模对你来说就不再是「玄学」,而是「科学」。