4. 数据准备与特征工程
在保险定价模型Champion/Challenger的实战中,算法选择往往只决定模型上限的20%,而数据准备与特征工程决定了80%的落地效果。保险数据天然具有高噪声、强偏态、多源异构和业务强约束的特点,如果直接把原始字段丢进模型,不仅区分度差,还会因变量不可解释而无法通过精算与合规评审。本章围绕数据来源、清洗、缺失值、分箱、WOE/IV、特征筛选与业务可解释性,构建一条可复用的特征工程流水线。
一、核心原理:保险数据的三个特殊性
保险定价数据与互联网行为数据有本质差异,理解这三点才能选对方法。
- 标签稀疏且滞后:车险出险、健康险理赔都是低频事件,正样本率常在1%~10%,且需要观察期才能确认,导致样本量受限、标签噪声大。
- 变量强业务含义:从人、从车、从地、从用四类因子都对应核保规则,模型变量必须能向监管和业务方解释,黑箱特征难以过审。
- 分布长尾与单调性:赔款金额、行驶里程等呈重尾分布,且风险与变量常呈单调关系(如年龄、车龄),这为分箱和WOE提供了天然的业务约束。
因此,保险特征工程的核心目标不是“造更多特征”,而是把原始字段转化为稳定、单调、可解释、区分度可量化的建模变量。
二、方法流程:六步特征工程流水线
下面这条流水线是Champion/Challenger对比实验的公共底座,Challenger可以在任一步引入新方法,但必须与Champion在同一数据切分和同一评估口径下比较。
- 数据来源整合:投保系统(保单、批单)、理赔系统(报案、立案、赔付)、外部数据(征信、车联网、地理编码)。以保单号+险种+起保日期为主键做宽表关联。
- 数据清洗:去重、异常值识别、逻辑一致性校验(如起保日期晚于终保日期、年龄为负)。
- 缺失值处理:区分完全随机缺失、随机缺失和非随机缺失,分别采用删除、填充、缺失指示变量。
- 变量分箱:连续变量离散化,常用等频、等距、卡方分箱、决策树分箱,并施加单调性约束。
- WOE/IV计算:用WOE编码提升线性模型稳定性,用IV量化单变量区分度。
- 特征筛选与可解释性校验:按IV、相关性、VIF、业务逻辑筛选,输出变量字典。
关键原则:所有分箱边界、WOE映射表、缺失填充值都必须只在训练集上拟合,再应用到验证集和测试集,否则会造成标签泄漏,Challenger的离线指标会虚高。
三、WOE与IV:量化区分度的核心工具
WOE(Weight of Evidence)衡量某个分箱内“坏样本占比”与“好样本占比”的差异,IV(Information Value)是各分箱WOE的加权和,用于快速判断变量是否有预测力。
WOE_i = ln( (Bad_i / Bad_total) / (Good_i / Good_total) )
IV = Σ ( (Bad_i/Bad_total) - (Good_i/Good_total) ) * WOE_i
经验阈值:
IV < 0.02 预测力极弱,通常剔除
0.02 ~ 0.1 弱
0.1 ~ 0.3 中等,可用
0.3 ~ 0.5 强
IV > 0.5 过强,需警惕标签泄漏或变量穿越
WOE编码还有一个工程优势:它把每个分箱映射为与违约/出险对数几率线性相关的数值,使逻辑回归系数稳定,同时天然处理了缺失值——把缺失单独作为一个分箱即可。
四、案例场景:车险从人从车因子分箱
以某车险定价项目为例,原始字段包括被保险人年龄、车龄、历史赔付次数、年行驶里程、NCD系数等。经过清洗后,对“被保险人年龄”做单调分箱,对“历史赔付次数”做业务分箱,结果如下表。
| 变量 | 分箱方式 | 分箱结果 | IV | 业务解释 |
|---|---|---|---|---|
| 被保险人年龄 | 卡方分箱+单调约束 | [18,25)、[25,35)、[35,50)、[50,65)、65+ | 0.18 | 年轻与高龄风险高,呈U型 |
| 车龄 | 等频分箱 | 0-1、2-3、4-6、7-10、10+ | 0.12 | 车龄越大,车辆价值下降但故障率上升 |
| 历史赔付次数 | 业务分箱 | 0、1、2、3+ | 0.31 | 强预测因子,次数越多风险越高 |
| 年行驶里程 | 决策树分箱 | <1万、1-2万、2-3万、3万+ | 0.09 | 里程暴露量,弱但稳定 |
| NCD系数 | 保留原始连续值 | — | 0.22 | 监管因子,必须保留且不可分箱扭曲 |
NCD系数这类监管或业务强制因子,即使IV不高也必须保留,且分箱方式要符合监管口径。特征筛选不能只看统计指标,还要过业务合规这一关。
五、特征筛选与业务可解释性
筛选不是简单地按IV排序取TopN,而是多准则联合决策:
- 区分度:IV低于0.02的变量优先剔除。
- 相关性:两两相关系数高于0.7的变量保留业务含义更清晰的一个。
- 多重共线性:逻辑回归中VIF高于5需处理,树模型可适当放宽。
- 稳定性:用PSI监控训练集与验证集分布漂移,PSI高于0.1需重新分箱。
- 业务可解释性:每个变量必须能回答“为什么它影响风险”,并写入变量字典。
最终产出的变量字典应包含:变量名、分箱边界、WOE值、IV、缺失处理方式、业务解释、监控频率。这份字典是Champion与Challenger共享的“特征契约”,保证两者对比公平。
六、常见误区与复盘
误区一:全量数据拟合分箱。在训练集+测试集上一起算WOE,导致标签泄漏,离线AUC虚高,上线后严重衰减。
误区二:盲目追求高IV。IV过高往往意味着变量穿越(用了未来信息)或与标签定义重叠,必须排查。
误区三:缺失值一律填0。保险中缺失常含信息(如未提供车联网数据可能代表低风险客户),应加缺失指示变量。
误区四:忽视单调性。分箱后WOE忽高忽低,业务无法解释,评分卡也难以通过评审。
误区五:Challenger随意改特征口径。对比实验必须锁定同一份特征契约,否则无法判断是模型还是特征带来的提升。
复盘时建议做一次“特征穿越审计”:逐变量检查其取值时间是否早于标签观察期,并核对分箱边界是否在训练集上拟合。只有通过审计的特征,才允许进入Champion/Challenger的对比实验。
把上述流水线固化为脚本和变量字典后,Champion与Challenger就能在同一份特征底座上公平竞技。下一阶段进入模型训练时,你会发现真正拉开差距的,往往不是算法本身,而是这一章里每一个分箱边界和缺失值决策。