Skip to content

Titus-code/credit_risk_analysis

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

信贷风险评分分析项目

项目简介

这是一个用于展示信贷风险建模流程的个人项目,覆盖从数据准备、特征处理、模型训练、模型评估到结果导出的完整分析链路。

项目目前由一套可复用模型脚本和一个真实数据实操 notebook 组成:

  • src/credit_model.py:封装可复用的逻辑回归训练、预测、评估和结果导出流程。
  • src/creditsimu.ipynb:调用 credit_model.py,使用真实信贷数据集 data/LC_loans_granting_model_dataset.csv 完成一次模型实操测试。

通过这种结构,可以将通用建模逻辑和具体数据实验拆开,既便于复用脚本,也便于在 notebook 中展示真实数据场景下的完整操作过程。

项目结构

credit_risk_analysis/
├── data/
│   └── LC_loans_granting_model_dataset.csv
├── outputs/
│   ├── feature_coefficients.csv
│   ├── model_report.csv
│   └── predictions_sample.csv
├── src/
│   ├── credit_model.py
│   ├── creditsimu.ipynb
│   └── sql_practice.sql
├── requirements.txt
└── README.md

核心功能

  • 封装逻辑回归训练、预测、评估和输出保存函数,便于复用。
  • 构造模拟信贷申请样本,快速验证模型脚本的基础流程。
  • 在 notebook 中读取真实信贷数据,调用复用脚本完成违约预测模型测试。
  • 对数值变量进行标准化,对收入、贷款金额等偏态变量进行对数变换。
  • 对雇佣年限、贷款用途、住房状态等类别变量进行 One-Hot 编码。
  • 使用逻辑回归模型预测违约概率。
  • 输出 ROC-AUC、阈值、混淆矩阵、风险分层和特征系数解释。
  • 提供 SQL 示例,用于补充申请量、违约率、风险分层等分析场景。

环境准备

pip install -r requirements.txt

如果需要在本地打开 notebook,可以使用 VS Code、JupyterLab 或 Notebook 环境。

运行方式

1. 运行可复用模型脚本

python src/credit_model.py

credit_model.py 封装了逻辑回归模型的训练、预测、评估和导出函数。直接运行该脚本时,会使用内置的模拟信贷数据快速验证完整流程,并将评估结果保存到 outputs/ 目录。

2. 运行真实信贷数据实操

打开并依次运行:

src/creditsimu.ipynb

creditsimu.ipynb 会调用 credit_model.py 中的复用函数,并使用以下真实信贷数据文件:

data/LC_loans_granting_model_dataset.csv

真实数据测试中使用的主要字段包括:

  • 数值变量:dti_nfico_nrevenueloan_amnt
  • 类别变量:emp_lengthpurposehome_ownership_n
  • 目标变量:Default

输出结果

outputs/ 目录中的最终文件为 src/creditsimu.ipynb 基于真实信贷数据运行后的模型测试结果:

  • model_report.csv:模型评估指标,包括 ROC-AUC、分类阈值和混淆矩阵结果。
  • feature_coefficients.csv:逻辑回归特征系数及其风险方向解释。
  • predictions_sample.csv:样本预测结果,包括真实违约标签、预测违约概率和风险分层。

注意:src/credit_model.pysrc/creditsimu.ipynb 共用同一套输出路径。如果直接运行 credit_model.py 的模拟数据验证流程,会覆盖当前真实数据模型测试结果;如需保留真实数据结果,请最后运行 src/creditsimu.ipynb

模型说明

当前可复用模型采用逻辑回归,优点是训练速度快、可解释性强,适合用于展示信贷风险评分中的变量方向和风险贡献。

模型流程包括:

  1. 选择建模字段。
  2. 划分训练集和测试集。
  3. 构建数值、对数和类别变量处理管道。
  4. 训练逻辑回归模型。
  5. 输出预测违约概率。
  6. 按预测概率划分风险等级。
  7. 导出评估指标、特征解释和预测样本。

SQL 分析补充

src/sql_practice.sql 提供了信贷风控常见分析场景示例,包括:

  • 按城市统计申请量、违约率和平均贷款金额。
  • 按负债收入比分层统计违约率。
  • 找出每个城市贷款金额最高的申请记录。
  • 按月统计申请量和违约率。

后续优化方向

  • 补充真实数据 EDA 与关键变量分布分析。
  • 增加 KS、Lift、PSI、WOE/IV 等风控评估指标。
  • 完善缺失值处理、分箱和业务衍生特征。
  • 对比逻辑回归、随机森林、XGBoost、LightGBM 等模型效果。
  • 补充阈值选择、风险分层和策略效果分析。

About

这是一个用于个人项目展示的信贷风险评分分析项目。

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors