想象一下,你是一家银行的风控经理,每天要审批成千上万的贷款申请。如何快速判断谁会按时还款,谁可能会违约?这就是信贷风险预测要解决的问题。今天,我将带你看看三种主流机器学习模型在这个任务上的表现。

一、问题背景:为什么信贷风险预测很重要?

信贷风险,简单来说就是借款人无法按时偿还贷款的可能性。对于银行和金融机构来说,准确预测信贷风险意味着:

  • 💰 减少坏账损失:提前识别高风险客户
  • 📈 优化贷款审批:提高审批效率
  • 🎯 精准定价:根据风险水平设定利率

二、数据集:Give Me Some Credit

我们使用的是Kaggle上的经典数据集——Give Me Some Credit,包含15万条真实的信贷记录。

属性
样本量 150,000 条记录
特征数 11 个原始特征
目标变量 是否在2年内违约
正样本比例 6.68% (违约)
负样本比例 93.32% (未违约)

主要特征

特征 说明
RevolvingUtilizationOfUnsecuredLines 循环信用利用率
age 年龄
NumberOfTime30-59DaysPastDueNotWorse 30-59天逾期次数
DebtRatio 债务比率
MonthlyIncome 月收入
NumberOfTimes90DaysLate 90天以上逾期次数

三、三位选手登场

1. 逻辑回归 (Logistic Regression) —— 老将

逻辑回归是最经典的分类模型之一,就像一位经验丰富的老将:

  • 优点:简单、可解释、训练快
  • 缺点:难以捕捉复杂的非线性关系

2. LightGBM —— 速度之王

LightGBM是微软推出的梯度提升框架,以速度著称:

  • 优点:训练速度快、内存占用低、支持类别特征
  • 缺点:对参数敏感、容易过拟合

3. CatBoost —— 类别特征专家

CatBoost是Yandex开发的梯度提升框架,专门为类别特征设计:

  • 优点:自动处理类别特征、鲁棒性强、效果好
  • 缺点:训练速度相对较慢

四、实验结果:谁是冠军?

经过完整的数据预处理、特征工程和模型训练,结果如下:

模型 AUC KS F1-Score
CatBoost 0.8710 0.5853 0.2866
LightGBM 0.8700 0.5867 0.2729
Logistic Regression 0.8551 0.5547 0.3170

🏆 冠军:CatBoost

CatBoost以AUC=0.8710的成绩夺得冠军!

指标解读

  • AUC (曲线下面积):衡量模型区分正负样本的能力,越接近1越好
  • KS (Kolmogorov-Smirnov):衡量模型最大区分度,KS值越大说明模型区分能力越强
  • F1-Score:精确率和召回率的调和平均

五、特征工程:秘密武器

我们创建了6个新特征来提升模型表现:

特征名 说明
AgeGroup 年龄分组
IncomeGroup 收入分组(五分位数)
TotalPastDue 逾期次数总和
HasPastDue 是否有逾期记录
CreditDensity 信贷产品密度
IncomeDebtRatio 收入债务比

六、关键发现

  1. CatBoost的自动特征处理:CatBoost对类别特征的自动处理能力确实出色,无需手动编码
  2. 特征工程的价值:新增的特征对模型表现有明显提升
  3. 模型差异不大:三个模型的AUC差异在2%以内,说明特征质量更重要

七、如何运行这个项目?

环境要求

pip install pandas numpy scikit-learn lightgbm catboost matplotlib seaborn

运行分析

git clone https://cnb.cool/acidbunny/credit-risk-prediction.git
cd credit-risk-prediction
python credit_risk_comparison.py

输出文件

运行后会在 outputs/ 目录生成:

  • model_comparison.csv - 模型对比表格
  • analysis_report.md - 详细分析报告
  • roc_curves.png - ROC曲线对比图
  • confusion_matrices.png - 混淆矩阵对比图
  • ks_curves.png - KS曲线对比图
  • feature_importance.png - 特征重要性对比图

八、扩展建议

如果你想进一步提升模型表现,可以尝试:

  1. 超参数调优:使用Optuna进行更精细的参数优化
  2. 模型融合:尝试Stacking或Blending等集成方法
  3. 样本不平衡处理:使用SMOTE、ADASYN等过采样技术
  4. 更多特征工程:尝试特征交互和多项式特征

九、结语

通过这次实验,我们发现CatBoost在信贷风险预测任务上表现最佳。但更重要的是,没有最好的模型,只有最适合的模型。在实际应用中,还需要考虑模型的可解释性、训练成本、部署难度等因素。

希望这篇文章能帮助你了解信贷风险预测的基本流程。如果你有任何问题,欢迎在评论区留言!


项目链接https://cnb.cool/acidbunny/credit-risk-prediction

数据来源Kaggle - Give Me Some Credit