3. 信用评分模型训练流程

信用评分模型的构建是一个端到端的工程流程,从原始数据到可部署的评分卡,通常经历四个核心阶段:数据采集、特征工程、模型训练与模型评估。本章将详细拆解每个阶段的技术要点与工程实践。

核心原则:信用评分模型强调可解释性与稳定性,因此逻辑回归仍是行业基准,XGBoost 常用于提升区分度,但需配合严格的单调性约束与特征分箱。

3.1 数据采集

数据是模型的上限。信用评分模型的数据来源通常包括以下三类:

数据类别 典型字段 采集方式 注意事项
申请数据 年龄、收入、职业、学历、婚姻状况 申请表、OCR 识别、API 对接 需验证真实性,防止欺诈
征信数据 逾期次数、负债率、查询次数、信贷历史长度 央行征信 / 百行征信 API 需用户授权,注意数据时效性
行为数据 APP 使用频率、交易流水、设备指纹 埋点系统、日志采集 需脱敏处理,关注隐私合规
数据采集避坑:务必记录数据采集时间戳与版本号。信用评分模型通常使用“观察点”数据,即申请时间点之前 6-12 个月的历史数据,避免使用未来信息(Look-ahead Bias)。

3.2 特征工程

特征工程是模型效果的关键。信用评分场景下,特征工程主要包含 数据清洗、特征衍生、分箱与 WOE 编码 三个步骤。

3.2.1 数据清洗

  • 缺失值处理:连续变量用中位数或均值填充;离散变量用众数或单独“未知”类别。
  • 异常值截断:对收入、负债率等变量,按 1% 和 99% 分位数进行截尾处理。
  • 重复样本去重:同一用户多次申请时,保留最早或最新的一条记录。

3.2.2 特征衍生

基于业务逻辑构造强特征,常见方法包括:

  • 比率类:负债收入比(DTI)、信用卡使用率。
  • 趋势类:近 3 个月查询次数环比、近 6 个月逾期次数变化。
  • 交叉类:年龄 × 学历、收入 × 职业等级。

3.2.3 分箱与 WOE 编码

信用评分模型(尤其是逻辑回归)要求输入为离散化特征。分箱后使用 WOE(Weight of Evidence) 编码替代原始值。

# WOE 计算公式
WOE_i = ln( (Bad_i / Bad_total) / (Good_i / Good_total) )

# 其中:
# Bad_i  = 第 i 个分箱中的坏样本数
# Good_i = 第 i 个分箱中的好样本数
分箱原则:每个分箱至少包含 5% 的样本;坏样本占比需单调递增或递减;WOE 值需与坏样本率呈单调关系,否则需合并或拆分分箱。
特征工程流程 原始数据 数据清洗 特征衍生 分箱 & WOE 关键说明: • 缺失值处理:连续变量用中位数,离散变量用众数或“未知”类别 • 异常值截断:按 1% 和 99% 分位数截尾 • WOE 编码后,每个特征变为单调数值,可直接输入逻辑回归 • 分箱需保证每个箱内坏样本占比单调,否则需手动调整

3.3 模型训练

信用评分领域最常用的两类模型是 逻辑回归 和 XGBoost。两者各有优劣,实际生产中常组合使用。

3.3.1 逻辑回归(Logistic Regression)

逻辑回归是信用评分卡的标准算法,输出概率可直接转换为整数评分。

# 逻辑回归模型形式
P(y=1|x) = 1 / (1 + e^(-z))

# 其中 z = β₀ + β₁x₁ + β₂x₂ + ... + βₙxₙ
# 评分转换公式:Score = Offset + Factor * ln(odds)
# odds = P / (1 - P)

训练要点:

  • 使用 WOE 编码后的特征,确保每个特征与目标呈单调关系。
  • 加入 L1/L2 正则化防止过拟合,信用评分常用 L2(Ridge)。
  • 特征间需检验多重共线性(VIF < 10)。

3.3.2 XGBoost

XGBoost 在区分度上通常优于逻辑回归,但可解释性较差。在信用评分中,XGBoost 常用于:

  • 作为逻辑回归的特征筛选器(特征重要性排序)。
  • 构建集成模型,与逻辑回归进行模型融合。
  • 在拒绝推断(Reject Inference)中作为辅助模型。
# XGBoost 关键参数(信用评分场景)
params = {
    'objective': 'binary:logistic',
    'max_depth': 3,           # 防止过拟合,通常 3-5
    'learning_rate': 0.05,    # 步长
    'subsample': 0.8,         # 行采样
    'colsample_bytree': 0.8,  # 列采样
    'scale_pos_weight': 3,    # 正负样本比例调整
    'eval_metric': 'auc'
}
模型选择建议:如果业务要求强可解释性(如监管合规),优先选择逻辑回归;如果追求极致区分度且可接受 SHAP 解释,可选择 XGBoost。两者也可通过 Stacking 融合。

3.4 模型评估

信用评分模型评估不仅看区分度,还需关注稳定性与校准度。核心指标包括 KS 和 AUC。

3.4.1 KS(Kolmogorov-Smirnov)

KS 衡量模型区分好坏样本的最大能力。计算公式为:

KS = max( |Cumulative_Good_Rate - Cumulative_Bad_Rate| )

# 取值范围:0 ~ 1
# 行业标准:
# KS < 0.2:模型区分能力弱
# 0.2 ≤ KS < 0.4:中等
# 0.4 ≤ KS < 0.6:强
# KS ≥ 0.6:可能存在过拟合

3.4.2 AUC(Area Under ROC Curve)

AUC 是 ROC 曲线下的面积,反映模型整体排序能力。

AUC 范围 模型效果 信用评分常见值
0.5 - 0.6 无效 —
0.6 - 0.7 较差 —
0.7 - 0.8 中等 部分场景可接受
0.8 - 0.9 良好 行业主流水平
0.9 - 1.0 优秀 需警惕过拟合
模型评估指标对比 KS 统计量 • 衡量好坏样本分布的最大差异 • 对模型在某个阈值附近的区分力敏感 • 行业标准:0.2 ~ 0.4 可接受 • 缺点:只关注最大差异点 • 适用:评分卡阈值选择 AUC 指标 • 衡量模型整体排序能力 • 对全阈值表现进行综合评价 • 行业标准:0.8 ~ 0.9 良好 • 缺点:对样本不平衡不敏感 • 适用:模型整体效果评估 互补

3.5 完整训练流程总结

以下表格汇总了信用评分模型训练各阶段的核心任务与产出物:

阶段 核心任务 关键产出 质量门禁
数据采集 多源数据接入、数据质量校验 原始数据集 + 数据字典 缺失率 < 30%,异常值比例 < 5%
特征工程 清洗、衍生、分箱、WOE 编码 WOE 特征矩阵 + 分箱映射表 IV > 0.02,单调性检验通过
模型训练 逻辑回归 / XGBoost 训练与调参 模型文件(.pkl / .json) 训练集与验证集 KS 差异 < 0.05
模型评估 KS、AUC、PSI、校准曲线 评估报告 + 评分映射表 KS ≥ 0.25,AUC ≥ 0.75,PSI < 0.1
工程实践建议:每次训练完成后,保存完整的特征工程流水线(Pipeline)和模型参数,确保线上推理与线下训练完全一致。推荐使用 MLflow 或 Kubeflow 进行实验追踪与模型版本管理。