4. 特征工程
在保单继续率建模中,原始数据往往来自保单管理系统、缴费流水、客服工单、渠道佣金表等多个异构数据源。这些数据字段多、噪声大、口径不统一,直接送入模型通常效果不佳。特征工程正是把“原始业务数据”翻译成“模型可理解的信号”的关键环节。本节围绕特征提取、特征选择、特征变换三条主线,结合继续率场景给出可落地的做法。
一、核心原理:特征工程在继续率建模中的定位
继续率建模的本质是预测“保单在某个观察点是否仍然有效/是否续期”。它同时受客户意愿、缴费能力、渠道质量、产品设计、服务体验等多因素影响。特征工程的目标不是堆字段,而是构造出与“续期行为”有稳定因果或统计关联的变量。可以把它理解为三个动作的循环:
- 特征提取:从原始表、日志、文本中“造”出有业务含义的变量,例如首期缴费及时性、保单年度、渠道历史继续率。
- 特征选择:在候选特征集中剔除冗余、泄漏、弱相关变量,降低过拟合与维度灾难。
- 特征变换:把特征调整为模型更易学习的形态,如分箱、编码、标准化、时间窗口聚合。
二、特征提取:从业务动作到变量
继续率场景的特征提取应围绕“保单生命周期”展开。建议按时间轴切分:承保前、承保时、首期缴费、观察期、续期窗口。每个阶段都有可提取的信号。
| 阶段 | 典型原始字段 | 提取出的特征示例 |
|---|---|---|
| 承保前 | 渠道、代理人、地区、产品 | 渠道历史13月继续率、代理人司龄、地区退保率 |
| 承保时 | 保额、保费、缴费年期、投保年龄 | 保费收入比、缴费年期倒数、年龄分箱 |
| 首期缴费 | 缴费日期、应缴日期、支付方式 | 首期缴费延迟天数、是否自动转账、支付失败次数 |
| 观察期 | 客服工单、保全记录、理赔记录 | 工单频次、保全变更次数、是否发生理赔 |
| 续期窗口 | 续期应缴日、宽限期、催收记录 | 宽限期内缴费概率、催收触达次数、历史续期次数 |
对于文本类数据,如工单描述、回访记录,可用关键词计数或TF-IDF提取“退保”“投诉”“资金紧张”等信号。对于时间序列,可提取趋势、波动、最近一次行为距今天数等。下面是一个用Python做基础聚合的示例:
import pandas as pd
# 按保单聚合缴费行为
pay_agg = pay_df.groupby('policy_id').agg(
pay_count=('pay_date', 'count'),
late_days_max=('late_days', 'max'),
late_days_mean=('late_days', 'mean'),
last_pay_gap=('pay_date', lambda x: (ref_date - x.max()).days)
).reset_index()
# 合并渠道历史继续率
df = df.merge(channel_rate, on='channel_id', how='left')
三、特征选择:去伪存真
候选特征可能上百个,但并非越多越好。继续率建模中尤其要警惕两类问题:一是数据泄漏,例如用“续期缴费成功”预测“是否续期”;二是多重共线性,例如保费、保额、缴费年期高度相关。常用选择方法包括:
- 过滤法:计算IV值、卡方、互信息,先筛掉弱相关变量。
- 包裹法:递归特征消除(RFE),用模型性能反推特征子集。
- 嵌入法:L1正则、树模型特征重要性,边训练边选择。
四、特征变换:让模型学得更稳
变换的目的在于改善分布、统一量纲、表达非线性。继续率场景常用变换包括:
- 分箱:将连续变量离散化,如年龄每5岁一箱,提升稳定性与可解释性。
- 编码:类别变量用WOE编码或目标编码,避免独热编码维度爆炸。
- 标准化/归一化:对逻辑回归、神经网络必要,对树模型影响较小。
- 时间窗口变换:把“最近3个月缴费延迟次数”作为滚动特征。
- 缺失值处理:继续率数据中缺失本身可能携带信息,可单独设“缺失”类别。
from sklearn.preprocessing import KBinsDiscretizer
# 对年龄做等频分箱
kbd = KBinsDiscretizer(n_bins=5, encode='ordinal', strategy='quantile')
df['age_bin'] = kbd.fit_transform(df[['age']])
# WOE编码示例(伪代码)
woe_map = train.groupby('age_bin')['target'].apply(lambda x: np.log((x.sum()+0.5)/(len(x)-x.sum()+0.5)))
df['age_woe'] = df['age_bin'].map(woe_map)
五、案例与复盘:一个渠道特征引发的误判
某寿险公司在13月继续率模型中,加入“渠道历史继续率”后AUC从0.72提升到0.79。但上线后发现新渠道样本极少,历史继续率波动极大,导致新渠道保单被系统性误判。复盘结论是:该特征需要做平滑处理(如贝叶斯平滑)并增加“样本量”作为伴随特征。这说明特征变换与选择必须结合业务稳定性,而非只看离线指标。
总结来看,继续率特征工程不是一次性动作,而是随业务迭代持续优化的过程。提取要覆盖保单全生命周期,选择要兼顾统计显著与业务稳定,变换要防止信息泄漏并保持线上线下一致。把这三步做扎实,后续模型才能发挥真正价值。