Python构建额度模型与评分沙盘实操指南 - 第1节
1.1 额度模型与评分卡在金融风控中的核心地位
在消费金融、信用卡、小微贷款等业务中,额度模型与评分卡是风险决策的两大支柱。额度模型决定“借多少”,评分卡决定“借不借”以及“以什么价格借”。两者协同工作,构成贷前审批、贷中管理和贷后催收的核心决策引擎。
1.1.1 评分卡:风险量化的基石
评分卡(Scorecard)通过统计模型将借款人的违约概率映射为整数分数,通常分数越高代表信用越好。常见的评分卡类型包括:
| 类型 | 应用阶段 | 核心目标 | 常用算法 |
|---|---|---|---|
| 申请评分卡(A卡) | 贷前审批 | 预测新客户在账户开立后前6-12个月的违约概率 | 逻辑回归、XGBoost |
| 行为评分卡(B卡) | 贷中管理 | 基于存量客户还款行为预测未来逾期风险 | 逻辑回归、随机森林 |
| 催收评分卡(C卡) | 贷后催收 | 预测逾期客户最终还款概率,指导催收策略 | 逻辑回归、GBDT |
关键认知:评分卡输出的分数本身不直接决定额度,而是作为额度模型的重要输入特征。高分段客户通常获得更高额度上限和更优利率。
1.1.2 额度模型:风险与收益的平衡器
额度模型(Credit Line Model)的目标是在控制风险敞口的前提下,最大化客户生命周期价值(LTV)。额度决策通常遵循以下逻辑:
- 风险约束:评分卡分数越低,额度上限越低,甚至拒绝授信。
- 收入约束:月还款额不得超过客户月收入的固定比例(如50%)。
- 额度利用率:初始额度通常低于模型测算的“最优额度”,预留提额空间。
- 交叉销售:已有存款、理财等资产客户可获得额外额度加成。
1.1.3 额度与评分的协同决策流程
下图展示了从客户申请到最终额度生成的典型决策链路:
行业实践:头部消费金融公司通常将评分卡作为第一道风险过滤,评分低于阈值(如A卡分数<600)直接拒绝;通过评分卡筛选后,额度模型再结合收入、负债、历史行为等变量计算初始额度。
1.2 课程目标与学习路径
1.2.1 课程核心目标
完成本课程后,你将具备以下能力:
- 理解原理:掌握评分卡分箱、WOE编码、逻辑回归建模、额度模型定价与限额策略的理论基础。
- 动手实现:使用Python从零搭建申请评分卡(A卡)和额度测算模型,并输出可解释的决策规则。
- 沙盘推演:在Jupyter Notebook中模拟不同风控策略下的通过率、坏账率与收益变化,形成策略调优闭环。
- 生产落地:了解模型部署为API服务的基本流程,以及模型监控与迭代的工程实践。
1.2.2 学习路径规划
课程共30章,按“基础→建模→策略→部署”四阶段递进:
| 阶段 | 章节范围 | 核心产出 |
|---|---|---|
| 基础篇 | 第1-5章 | 环境搭建、数据探索、特征工程基础 |
| 建模篇 | 第6-18章 | 评分卡分箱、WOE、逻辑回归、额度模型 |
| 策略篇 | 第19-25章 | 策略模拟、收益测算、压力测试 |
| 部署篇 | 第26-30章 | 模型打包、API服务、监控报表 |
学习建议:每章都配有可运行的Jupyter Notebook代码。建议你边学边敲,不要直接复制粘贴。遇到报错时,先尝试自己排查,这是提升工程能力的最佳路径。
1.3 沙盘环境搭建(Anaconda + Jupyter Notebook)
1.3.1 为什么选择Anaconda
Anaconda是目前数据科学领域最流行的Python发行版,内置了conda包管理器、Jupyter Notebook、Spyder等工具。相比原生Python,Anaconda的优势在于:
- 环境隔离:通过conda创建独立虚拟环境,避免不同项目间的包冲突。
- 预装常用库:pandas、numpy、scikit-learn、matplotlib等核心库已预装。
- 跨平台支持:Windows/macOS/Linux均可使用。
1.3.2 安装与配置步骤
- 下载Anaconda:访问
https://www.anaconda.com/download,选择对应操作系统的Python 3.10+版本。 - 安装:Windows用户勾选“Add Anaconda to my PATH environment variable”;macOS/Linux用户使用bash安装脚本。
- 验证安装:打开终端(Windows使用Anaconda Prompt),输入
conda --version,应显示conda版本号。 - 创建虚拟环境:
conda create -n credit_model python=3.10
conda activate credit_model
- 安装课程所需核心库:
conda install pandas numpy scikit-learn matplotlib seaborn jupyter
pip install scorecardpy # 评分卡专用库
1.3.3 启动Jupyter Notebook
在激活的虚拟环境中执行以下命令:
jupyter notebook
浏览器将自动打开Jupyter界面(默认地址 http://localhost:8888)。点击右上角“New” → “Python 3 (ipykernel)”即可创建新笔记本。
小技巧:在Jupyter中按
Shift+Enter 执行当前单元格;按 Esc 退出编辑模式后,按 B 在下方插入新单元格,按 A 在上方插入。
1.3.4 验证环境是否就绪
在Jupyter单元格中运行以下代码,确认所有依赖库正常导入:
import pandas as pd
import numpy as np
import sklearn
import scorecardpy as sc
import matplotlib.pyplot as plt
print("pandas version:", pd.__version__)
print("numpy version:", np.__version__)
print("scikit-learn version:", sklearn.__version__)
print("scorecardpy version:", sc.__version__)
print("环境就绪!")
如果所有版本号正常输出,说明沙盘环境搭建成功。
1.3.5 沙盘环境架构总览
下图展示了本课程所使用的技术栈与数据流向:
环境检查清单:完成搭建后,请确认以下三项:① conda虚拟环境已激活;② Jupyter Notebook可正常启动;③ 核心库导入无报错。后续所有章节的代码均在此沙盘中运行。