2. 风控模型基础回顾:评分卡模型、机器学习模型(XGBoost/LightGBM)、模型输出概率与分数含义
在设定告警阈值之前,必须深刻理解风控模型输出的本质。无论是传统的评分卡还是前沿的集成学习模型,其输出最终都映射为对用户违约概率的估计。本节将回顾两类核心模型的结构差异,并重点解析概率与分数的转换逻辑,为后续阈值调优奠定理论基础。
2.1 评分卡模型:线性可加与业务可解释
评分卡(Scorecard)是金融风控领域最经典的模型之一,其核心思想是将逻辑回归(Logistic Regression)的预测概率通过线性变换映射为整数分数。评分卡的优势在于业务可解释性强、监管合规性好,且分数具有直观的“刻度”含义。
核心公式: Score = Offset + Factor × ln(Odds)
其中 Odds = p/(1-p),p 为违约概率;Offset 为基准偏移量,Factor 为刻度因子。
其中 Odds = p/(1-p),p 为违约概率;Offset 为基准偏移量,Factor 为刻度因子。
评分卡建模流程通常包含以下步骤:
- 特征分箱与WOE编码: 将连续变量离散化,计算每个分箱的证据权重(Weight of Evidence, WOE),替代原始特征值。
- 逻辑回归拟合: 以WOE值为输入,拟合违约概率 p。
- 分数映射: 设定两个业务锚点(如:某分数对应某Odds值,以及分数翻倍时Odds翻倍的倍数),求解Offset和Factor。
- 分数输出: 最终输出为整数分数,分数越高代表信用越好(违约概率越低)。
| 对比维度 | 评分卡模型 | XGBoost / LightGBM |
|---|---|---|
| 模型结构 | 线性逻辑回归 + 特征WOE变换 | 梯度提升决策树(GBDT)集成 |
| 输出形式 | 整数分数(如300~850) | 违约概率 p ∈ [0,1] |
| 可解释性 | 高(每个分箱有明确分数贡献) | 中(需借助SHAP等工具解释) |
| 非线性拟合 | 弱(依赖WOE变换引入非线性) | 强(自动学习复杂交互) |
| 监管接受度 | 高(传统银行首选) | 中(需额外解释性报告) |
阈值设定启示: 评分卡的分数刻度是固定的,阈值通常直接设定在某个分数点(如拒绝线设在600分)。而机器学习模型输出的是概率,阈值设定需要结合业务损失函数进行动态优化。
2.2 机器学习模型:XGBoost与LightGBM
XGBoost和LightGBM是当前风控领域最主流的机器学习模型。它们基于梯度提升框架,通过迭代生成多棵决策树来最小化损失函数。相比评分卡,它们能自动捕捉特征间的高阶交互与非线性关系,在AUC和KS指标上通常表现更优。
两种模型的核心差异在于树的生长策略:
- XGBoost: 采用按层生长(Level-wise)策略,每次分裂同一层的所有节点,易于并行化,但可能产生冗余节点。
- LightGBM: 采用按叶生长(Leaf-wise)策略,每次只分裂增益最大的叶子节点,训练速度更快、内存占用更低,但容易过拟合,需限制树深度。
# XGBoost 训练示例(Python)
import xgboost as xgb
model_xgb = xgb.XGBClassifier(
n_estimators=200,
max_depth=6,
learning_rate=0.1,
subsample=0.8,
colsample_bytree=0.8,
eval_metric='auc'
)
model_xgb.fit(X_train, y_train)
y_prob_xgb = model_xgb.predict_proba(X_test)[:, 1] # 输出违约概率
# LightGBM 训练示例(Python)
import lightgbm as lgb
model_lgb = lgb.LGBMClassifier(
n_estimators=200,
num_leaves=31,
learning_rate=0.1,
subsample=0.8,
colsample_bytree=0.8
)
model_lgb.fit(X_train, y_train)
y_prob_lgb = model_lgb.predict_proba(X_test)[:, 1] # 输出违约概率
注意: 机器学习模型输出的原始概率通常存在概率偏移(Probability Calibration)问题,即预测概率与实际违约率不完全一致。在设定阈值前,建议使用Platt Scaling或Isotonic Regression进行概率校准,否则阈值可能偏离业务预期。
2.3 模型输出概率与分数的含义
无论是评分卡还是机器学习模型,其输出都可以统一理解为对“违约可能性”的度量。但两者在数值含义和业务解读上存在显著差异:
- 概率(Probability): 取值范围 [0,1],直接表示模型估计的违约概率。0.1 表示有10%的概率违约。阈值通常设定在0.02~0.2之间,取决于业务风险偏好。
- 分数(Score): 取值范围通常为300~850(或自定义区间),分数越高代表信用越好。分数与Odds(好坏比)呈线性关系,而非与概率直接线性。
下图展示了从模型输出到业务决策的完整链路,以及概率与分数之间的转换关系:
2.4 概率与分数的业务解读对照
在实际风控场景中,模型输出的概率或分数需要与业务动作一一对应。下表展示了典型的解读对照关系:
| 模型输出类型 | 数值范围 | 业务含义 | 典型阈值动作 |
|---|---|---|---|
| 违约概率 p | 0.00 ~ 0.05 | 低风险,信用良好 | 自动通过 |
| 违约概率 p | 0.05 ~ 0.15 | 中风险,需关注 | 人工审核或提额限制 |
| 违约概率 p | 0.15 ~ 1.00 | 高风险,违约可能性大 | 自动拒绝 |
| 评分卡分数 | 700 ~ 850 | 优质客户 | 自动通过,可提额 |
| 评分卡分数 | 600 ~ 699 | 一般客户 | 标准审批流程 |
| 评分卡分数 | 300 ~ 599 | 高风险客户 | 拒绝或严格审核 |