4. 评分卡开发流程:数据准备、特征工程、变量筛选、模型训练、模型验证、模型部署
评分卡是商户风险分群的核心量化工具。一套标准评分卡的开发遵循六阶段流水线:从原始数据到可投产的决策模型。每个阶段都有明确的输入、输出与质量门禁,跳过任何一步都会导致模型失效或监管不合规。
核心认知:评分卡不是一次性的“建模项目”,而是一个持续迭代的工程体系。六个阶段环环相扣,前一阶段的缺陷会向后传递并放大。
4.1 六阶段全景流程
下表概括了每个阶段的核心任务、关键产出与典型耗时。理解这张表,就等于掌握了评分卡开发的“作战地图”。
| 阶段 | 核心任务 | 关键产出 | 典型耗时 |
|---|---|---|---|
| ① 数据准备 | 数据源接入、清洗、合并、时间窗口对齐 | 宽表(含Y变量与原始特征) | 30% |
| ② 特征工程 | 衍生变量、分箱、WOE编码、缺失值处理 | 特征矩阵(WOE化) | 25% |
| ③ 变量筛选 | IV排序、相关性分析、逐步回归/稳定性检验 | 候选变量子集(10~20个) | 15% |
| ④ 模型训练 | 逻辑回归拟合、系数估计、尺度化 | 原始评分卡系数 | 10% |
| ⑤ 模型验证 | 区分度(KS/AUC)、校准度、稳定性(PSI) | 验证报告、回测结果 | 10% |
| ⑥ 模型部署 | 评分映射、决策矩阵、监控看板 | 生产级评分卡+监控体系 | 10% |
实战建议:数据准备与特征工程合计耗时超过50%。不要急于建模,把时间花在“理解数据”和“构造好特征”上,模型效果自然提升。
4.2 阶段一:数据准备 —— 地基决定高度
数据准备的目标是构建一张“干净、对齐、可回溯”的分析宽表。商户评分卡的数据源通常包括:
- 商户基本信息:注册时长、行业类别、注册资本、法人信息。
- 交易流水数据:日均交易额、交易笔数、大额交易占比、夜间交易占比。
- 历史风险记录:逾期次数、退单率、投诉率、黑名单命中记录。
- 外部征信数据:工商异常、司法涉诉、多头借贷查询次数。
关键动作是时间窗口对齐:特征观察期(如过去6个月)必须严格在表现期(如未来3个月)之前,避免“用未来信息预测未来”的数据泄露。
# 数据准备伪代码:时间窗口切割
# 观察期:2024-01-01 至 2024-06-30
# 表现期:2024-07-01 至 2024-09-30
# 标签定义:表现期内是否发生逾期(逾期天数≥30天)
df_wide = (
merchant_base
.merge(trans_agg, on='merchant_id', how='left')
.merge(risk_history, on='merchant_id', how='left')
.merge(external_data, on='merchant_id', how='left')
)
df_wide['y'] = (df_wide['overdue_days'] >= 30).astype(int)
4.3 阶段二:特征工程 —— 从原始变量到预测力
特征工程是评分卡开发中最具创造性的环节。核心步骤包括:
- 分箱(Binning):将连续变量(如交易金额)离散化为若干区间,捕捉非线性关系。
- WOE编码:用“证据权重”替换原始值或分箱标签,建立与违约概率的单调关系。
- 缺失值处理:单独作为一个分箱,保留缺失信息。
- 异常值截断:对极端值进行上下限截断(如99%分位数)。
WOE的计算公式为:
WOE_i = ln( (Bad_i / Bad_total) / (Good_i / Good_total) )
其中:
- Bad_i: 第i个分箱中的坏样本数
- Good_i: 第i个分箱中的好样本数
常见陷阱:分箱数量不宜过多(通常3~5箱),否则会导致过拟合。每个分箱至少应包含5%的样本,且坏样本占比不能为0。
4.4 阶段三:变量筛选 —— 去芜存菁
经过特征工程后,变量数量可能达到数百个。变量筛选的目标是保留预测能力强、稳定性好、相关性低的变量子集。常用筛选标准:
| 筛选维度 | 常用指标 | 阈值建议 |
|---|---|---|
| 预测能力 | IV(信息量) | IV > 0.02 且 IV < 0.5 |
| 稳定性 | PSI(群体稳定性指标) | PSI < 0.1 |
| 相关性 | Pearson / Spearman 相关系数 | |r| < 0.7 |
| 业务可解释性 | 专家评审 | 变量含义清晰,符合业务逻辑 |
经验法则:最终进入模型的变量数量通常控制在8~15个。太少则区分度不足,太多则过拟合风险上升且难以维护。
4.5 阶段四:模型训练 —— 逻辑回归与尺度化
评分卡行业标准模型是逻辑回归,原因在于其可解释性强、监管友好、易于部署。训练过程包括:
- 拟合逻辑回归:以WOE化特征为输入,以0/1标签为目标,使用最大似然估计求解系数。
- 系数尺度化:将逻辑回归系数转换为整数评分。标准做法是设定基准分(如600分)和翻倍分值(如每增加20分,违约概率减半)。
# 评分尺度化示例
# 设定:基准分 = 600,PDO(翻倍分值) = 20
# 逻辑回归系数:beta_0 = -2.5, beta_1 = 0.8, beta_2 = -0.6
factor = 20 / log(2) # 约 28.85
offset = 600 - factor * (-2.5) # 约 672.13
score = offset + factor * (beta_1 * WOE_1 + beta_2 * WOE_2)
# 最终评分 = 672.13 + 28.85 * (0.8*WOE_1 - 0.6*WOE_2)
4.6 阶段五:模型验证 —— 不验证不上线
模型验证是风控合规的硬性要求。验证分为三个层面:
- 区分度:KS统计量(通常要求 > 0.3)、AUC(通常要求 > 0.7)。
- 校准度:预测违约概率与实际违约率的一致性(校准曲线)。
- 稳定性:训练集与测试集、跨时间样本的PSI(要求 < 0.1)。
监管红线:如果验证集KS低于0.2或PSI超过0.25,模型不得上线。必须回溯数据准备或特征工程阶段进行修正。
4.7 阶段六:模型部署 —— 从开发到生产
部署不是简单地把模型文件放到服务器上。完整的部署包括:
- 评分映射:将逻辑回归系数转换为整数评分卡表格,便于业务人员直接查表打分。
- 决策矩阵:设定拒绝、人工审核、通过三个区间的分数阈值。
- 监控看板:实时监控评分分布、PSI、通过率、坏账率,设置预警机制。
# 评分卡查表示例(简化)
# 变量:月均交易金额(分箱后)
# 分箱区间 WOE 系数 得分
# [0, 5) 0.45 28.85 13
# [5, 20) 0.12 28.85 3
# [20, 50) -0.35 28.85 -10
# [50, +∞) -0.78 28.85 -22
# 基准分:600
# 商户最终评分 = 600 + 13 + 3 + (-10) + (-22) = 584
部署后第一周:必须进行“冠军/挑战者”并行测试,新模型与旧模型同时运行,对比通过率与坏账率,确认无异常后再全量切换。