智能信用评分 — Logistic 回归模型开发与测试
2026/8/6大约 3 分钟
智能信用评分 — Logistic 回归模型开发与测试
项目背景
信用评分是金融机构评估借款人信用风险的核心工具。
- 传统评分卡模型依赖人工经验规则,开发周期长。
互联网金融飞速发展,使得个人金融理财变得越来越容易。而其中信用评分技术是一种对贷款申请人(信用卡申请人)做风险评估分值的统计模型,可以根据客户提供的资料、客户的历史数据、第三方平台数据(芝麻分、京东、微信等),对客户的信用进行评估。
现要求根据提供的finance数据集,补全2.2.1.ipynb代码。选择合适的特征,开发一个申请的评分模型,利用测试工具对模型进行测试,并对测试结果进行分析,完成测试报告,并运用工具对错误原因进行纠正。
Logistic 回归原理
通过 sigmoid 函数将线性回归输出映射到 (0,1) 区间:
为什么选 Logistic 回归
- 可解释性强 — 每个特征权重直接反映对违约概率的影响方向
- 输出概率 — 天然输出 0~1,方便映射为信用分数
- 稳定性好 — 对数据扰动不敏感
- 监管合规 — 金融行业要求模型可解释
特征工程
| 特征类别 | 特征名称 | 说明 |
|---|---|---|
| 个人信息 | 年龄、性别、婚姻状况 | 人口统计 |
| 收入负债 | 月收入、负债率、信用卡数量 | 还款能力 |
| 信用历史 | 逾期次数、最长逾期天数、信用年限 | 历史行为 |
| 贷款信息 | 贷款金额、贷款期限、利率 | 贷款属性 |
数据预处理
- 缺失值处理:中位数填充数值型,众数填充分类型
- WOE 编码:连续变量和分类变量转证据权重
- IV 值筛选:保留 IV > 0.02 的强预测变量
- 多重共线性检验:VIF < 5
工作内容
- 正确加载数据集,显示前五行的数据。
- 使用Logistic模型进行模型训练,要求设定自变量和因变量,并根据自变量特征进行模型训练,最终将训练好的模型以文件名2.2.1_model.pkl保存到考生文件夹,结果文件以2.2.1_results.txt保存到考生文件夹。
- 使用测试工具对模型进行测试,并记录测试结果,命名2.2.1_report.txt,保存到考生文件夹
- 运用工具分析算法中错误案例产生的原因并进行纠正,重新得到模型训练结果,以文件名2.2.1_results_xg.txt保存到考生文件夹。
- 将以上代码以及运行结果,以html格式保存并命名为2.2.1.html,保存到考生文件夹,考生文件夹命名为“准考证号+身份证后6位”。
- 对测试结果进行详细分析,并编写测试报告,包括模型性能评估、错误分析及改进建议,将答案写到答题卷文件中,答题卷文件命名为“2.2.1.docx”,保存到考生文件夹。
模型训练
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(
X_woe, y, test_size=0.3, random_state=42, stratify=y
)
model = LogisticRegression(penalty='l2', C=1.0, solver='liblinear', max_iter=1000)
model.fit(X_train, y_train)模型测试
区分度(AUC / KS)
| 指标 | 训练集 | 测试集 | 通过线 |
|---|---|---|---|
| AUC | 0.782 | 0.768 | > 0.70 |
| KS | 0.412 | 0.398 | > 0.30 |
稳定性(PSI)
测试集 PSI = 0.073,模型稳定(< 0.1)。
评分卡转换
将概率映射为 300~850 信用分数:
| 分数区间 | 风险等级 | 建议 |
|---|---|---|
| 750+ | AAA | 优先授信 |
| 700-749 | AA | 正常授信 |
| 650-699 | A | 审慎授信 |
| 600-649 | B | 需要增信 |
| < 600 | C | 拒绝或高利率 |
总结
Logistic 回归在信用评分场景下:可解释、稳定、合规。配合完整测试体系(区分度、稳定性、校准度),可构建工业级风控模型。