3. 基线模型(Champion)构建:逻辑回归原理、特征工程、模型训练与评估

在Challenger对照实验中,基线模型(Champion)是用于衡量新模型(Challenger)性能提升的基准。本章将系统构建一个基于逻辑回归的信用评分卡基线模型,涵盖其数学原理、特征工程流水线、训练流程与评估标准。

3.1 逻辑回归原理与信用评分映射

逻辑回归(Logistic Regression)是信用评分领域最经典的算法,其输出值可被直接映射为“违约概率”,再通过评分卡转换公式生成整数分值。

3.1.1 模型形式

给定特征向量 X = (x₁, x₂, ..., xₙ),逻辑回归假设违约概率 P(y=1|X) 满足:

P(y=1|X) = 1 / (1 + e^{-(β₀ + β₁x₁ + ... + βₙxₙ)})

其中 β₀ 为截距,βᵢ 为各特征对应的权重系数。

3.1.2 评分卡转换公式

信用评分通常以“每增加20分,违约几率(Odds)翻倍”为刻度。设 Odds = P/(1-P),评分 Score 与 Odds 的关系为:

Score = Offset + Factor × ln(Odds)
其中:
  Factor = 20 / ln(2) ≈ 28.85
  Offset = 600 - Factor × ln(20) ≈ 513.3
(示例参数,实际需根据业务校准)
关键理解:逻辑回归的线性部分 β₀ + β₁x₁ + ... + βₙxₙ 直接等于 ln(Odds),因此每个特征分箱对应的权重可直接转换为评分卡上的加减分。

3.2 特征工程流水线

特征工程是信用评分模型的核心步骤,直接影响模型区分能力与稳定性。本节采用标准流水线:

3.2.1 特征筛选流程

  1. 缺失率过滤:剔除缺失率 > 70% 的特征。
  2. IV(信息量)筛选:计算每个特征的信息量(IV),保留 IV > 0.02 的特征。
  3. 相关性去重:对 Pearson 相关系数 > 0.7 的特征对,保留 IV 较高的一个。
  4. VIF(方差膨胀因子)检验:剔除 VIF > 10 的特征,消除多重共线性。

3.2.2 特征分箱与WOE编码

信用评分模型要求特征以分箱(Binning)后的WOE(Weight of Evidence)值作为输入。分箱方法包括:

分箱方法 适用场景 优点 缺点
等距分箱 连续变量分布均匀 实现简单 易导致空箱或样本不均
等频分箱 连续变量分布偏态 每箱样本量一致 可能破坏业务含义
决策树分箱 需要最优切分点 基于目标变量自动切分 过拟合风险较高
卡方分箱 分类变量合并 保证组内同质性 计算量较大

WOE 计算公式:

WOEᵢ = ln( (坏样本占比ᵢ) / (好样本占比ᵢ) )

分箱后每个箱位用对应的 WOE 值替换原始值,作为逻辑回归的输入特征。

3.3 模型训练与评估

3.3.1 训练配置

  • 训练/验证/测试集划分:60% / 20% / 20%(按时间顺序或随机分层抽样)。
  • 正则化:使用 L2 正则化(Ridge),惩罚系数 C=1.0(默认值)。
  • 求解器:lbfgs(适用于中小型数据集,收敛稳定)。
  • 类别平衡:设置 class_weight='balanced' 自动调整样本权重。

3.3.2 评估指标

指标 计算公式/说明 基线目标值
KS(Kolmogorov-Smirnov) 好坏样本累计分布最大差值 ≥ 0.30
AUC(ROC曲线下面积) 模型排序能力的综合度量 ≥ 0.75
Gini系数 2×AUC - 1 ≥ 0.50
PSI(群体稳定性指标) 训练集与测试集评分分布差异 < 0.10

3.3.3 模型训练代码示例

from sklearn.linear_model import LogisticRegression
from sklearn.metrics import roc_auc_score, ks_score
import pandas as pd

# 假设 X_train_woe 为 WOE编码后的训练特征,y_train 为标签
model = LogisticRegression(
    penalty='l2',
    C=1.0,
    solver='lbfgs',
    class_weight='balanced',
    max_iter=1000,
    random_state=42
)

model.fit(X_train_woe, y_train)

# 预测概率
y_train_pred = model.predict_proba(X_train_woe)[:, 1]
y_test_pred = model.predict_proba(X_test_woe)[:, 1]

# 评估
auc_train = roc_auc_score(y_train, y_train_pred)
auc_test = roc_auc_score(y_test, y_test_pred)
ks_train = ks_score(y_train, y_train_pred)
ks_test = ks_score(y_test, y_test_pred)

print(f"Train AUC: {auc_train:.4f}, Test AUC: {auc_test:.4f}")
print(f"Train KS: {ks_train:.4f}, Test KS: {ks_test:.4f}")

3.4 基线模型构建流程总览

下图展示了从原始数据到基线模型评估的完整流水线:

基线模型(Champion)构建流程 原始数据 特征工程 WOE编码 逻辑回归训练 模型评估 评分卡转换 流程说明: 1. 原始数据经过缺失率、IV、相关性、VIF四步筛选,保留有效特征。 2. 对保留特征进行分箱(等频/决策树/卡方),计算每个箱位的WOE值。 3. 将WOE值作为逻辑回归的输入特征,训练L2正则化模型。 4. 在验证集上评估KS、AUC、Gini、PSI,确保模型区分度与稳定性达标。 5. 将逻辑回归系数转换为评分卡格式,输出整数分值。
实践建议:基线模型构建完成后,务必保存模型参数、WOE编码映射表以及特征列表。这些文件将在后续Challenger模型对比中作为“对照基准”使用,任何特征或参数变更都需要记录在实验日志中。

3.5 基线模型验收标准

在进入Challenger模型开发前,基线模型必须通过以下验收检查:

  • 区分度达标:验证集KS ≥ 0.30,AUC ≥ 0.75。
  • 稳定性合格:训练集与测试集之间的PSI < 0.10。
  • 业务可解释:每个特征的WOE趋势符合业务常识(如:逾期次数越高,WOE值越低)。
  • 评分卡刻度正确:评分分布呈近似正态,且分值越高代表信用越好。
注意:如果基线模型KS低于0.25,建议返回特征工程阶段重新分箱或引入新的强相关特征。一个过弱的基线会导致Challenger模型“假提升”的误判。