当前位置:   article > 正文

Python贷款违约预测:Logistic、Xgboost、Lightgbm、贝叶斯调参/GridSearchCV调参|数据分享...

Python贷款违约预测:Logistic、Xgboost、Lightgbm、贝叶斯调参/GridSearchCV调参|数据分享...

原文链接:https://tecdat.cn/?p=35392

分析师:Linseng Bo

银行贷款业务是银行的主要盈利方式,对于具体的贷款申请人,是否可以同意贷款申请是一件十分重要的步骤,如果贷款人在贷款后出现违约行为,这将对银行的资金流稳定性造成不利的影响。因此针对贷款人的“数据信息”进行处理和违约预测具有举足轻重的作用。对于金融行业来说,贷款业务及人员信息十分复杂,对于数据特征的处理十分重要,在数据处理完成后,通过机器学习模型进行预测以判断贷款人是否会违约点击文末“阅读原文”了解更多)。

解决方案

任务/目标

根据金融业务要求,运用数据源分析预测贷款人是否违约。

数据源准备

特征转换

  • 对于贷款金额、年收入等数值型数据,使用数据分箱的方法分为四类用数字0-3表示,阈值根据样本总数均分位处的值确定;对于贷款目的、贷款等级等类别型数据,使用独热编码的方法处理;对于放贷日期等时间类型数据,转换成标准时间格式;对于匿名n系列数据,使用seaborn进行特征性筛查,剔除相关性高的特征。

构造特征

结合金融业务特点,由贷款金额、利率、年限构建新特征贷款利息,由信贷开立时间和放贷时间构建新特征经历时间等。

划分训练集和测试集

将训练集划分为:训练集训练模型、验证集评估模型、测试集最后一次测试模型,比例为:6:2:2 ,最后使用训练集预测结果,最后不加载测试集去训练,会造成测试集数据泄露。本项目中80万训练集,20万验证集,20万测试集查看文末了解数据免费获取方式

建模

Logistic:

逻辑回归是一种分类算法,多用于 两个类别之间的判断, 逻辑回归的损失称为对数似然损失, 使用梯度下降的方法优化损失函数的值。 

Xgboost:

GBDT是基于boosting方法将所有弱分类器的结果相加等于预测值,然后下一个弱分类器去拟合误差函数对预测值的残差,每棵树就是一个弱分类器。Xgboost本质上也是一种GBDT,在损失函数中添加了正则化项L1和L2来控制模型的复杂度,提高泛化能力。

Lightgbm

LightGBM(Light Gradient Boosting Machine)是一个实现GBDT算法的框架,具有 支持高效率的并行训练,并且具有更快的训练速度、更低的内存消耗、更好的准确率。GBDT在每一次迭代过程中,都需要遍历整个训练集多次,因此与内存产生冲突,对于海量数据是很不利的。Xgboost采用预排序方法的决策树算法,虽然对于分割点的寻找较为准确,但同时保存了特征值和特征排序的结果,空间消耗很大,并且在遍历分割点时计算分裂增益,时间消耗也大。Lightgbm采用直方图算法将连续特征放入直方图箱子中,从而减少内存使用和时空复杂度。

模型优化

1.特征工程,贝叶斯调参/GridSearchCV调参

在此案例中,Xgboost和Lightgbm算法模型预值的AUC值较好,其预测结果如下:

调参前两种模型的AUC值:

0b3c771ab8942c44206717b7a2c8c47a.png

调参后:

Xgboost的AUC值获得一定的提升,关于模型还有较大的优化空间。

5cdc5db5b939e00545b64a9feea1e303.png


点击标题查阅往期内容

6038db20867a561459ae5cfd09caa62a.jpeg

数据分享|Python决策树、随机森林、朴素贝叶斯、KNN(K-最近邻居)分类分析银行拉新活动挖掘潜在贷款客户

outside_default.png

左右滑动查看更多

outside_default.png

01

646e41eddfadbb1714979a6d209ef449.png

02

3318528af62775041f141b96dc4e40e2.png

03

66413736915ee917da14fce758d5f956.png

04

01d62986c1f68506089f02229f60355e.png

Lightgbm:

通过贝叶斯调参后,找到了一组最优解,AUC值提升至0.7234。

15eff49929b48943de780382a95033ff.png

最后输出为测试集样本发生贷款违约的概率值。

0ebd6cf1ee9b13d683a1b4c0f81c697f.png

关于分析师

在此对Linseng Bo对本文所作的贡献表示诚挚感谢,他专注机器学习、材料科学、数据挖掘。擅长编程语言:python、mysql,技术栈:pandas、sklearn。

数据获取

在公众号后台回复“贷款违约数”,可免费获取完整数据。

929ec0d707ef4c54208448f0becce736.jpeg

本文中分析的数据分享到会员群,扫描下面二维码即可加群!

e9d862a6e5b02811603e5ebdcf5eedff.png

5aaabb28008812278d6516dc6b20fdfe.jpeg

点击文末“阅读原文”

获取全文完整代码数据资料。

本文选自《Python贷款违约预测:Logistic、Xgboost、Lightgbm、贝叶斯调参/GridSearchCV调参》。

fca2c703e74a91524055ec07b3dc679e.jpeg

3c2feec629135d2b3fb7d06bef041676.png

点击标题查阅往期内容

PYTHON银行机器学习:回归、随机森林、KNN近邻、决策树、高斯朴素贝叶斯、支持向量机SVM分析营销活动数据|数据分享

用PyTorch机器学习神经网络分类预测银行客户流失模型

R语言用FNN-LSTM假近邻长短期记忆人工神经网络模型进行时间序列深度学习预测4个案例

Python中TensorFlow的长短期记忆神经网络(LSTM)、指数移动平均法预测股票市场和可视化

R语言KERAS用RNN、双向RNNS递归神经网络、LSTM分析预测温度时间序列、 IMDB电影评分情感

Python用Keras神经网络序列模型回归拟合预测、准确度检查和结果可视化

Python用LSTM长短期记忆神经网络对不稳定降雨量时间序列进行预测分析

R语言中的神经网络预测时间序列:多层感知器(MLP)和极限学习机(ELM)数据分析报告

R语言深度学习:用keras神经网络回归模型预测时间序列数据

Matlab用深度学习长短期记忆(LSTM)神经网络对文本数据进行分类

R语言KERAS深度学习CNN卷积神经网络分类识别手写数字图像数据(MNIST)

MATLAB中用BP神经网络预测人体脂肪百分比数据

Python中用PyTorch机器学习神经网络分类预测银行客户流失模型

R语言实现CNN(卷积神经网络)模型进行回归数据分析

Python使用神经网络进行简单文本分类

R语言用神经网络改进Nelson-Siegel模型拟合收益率曲线分析

R语言基于递归神经网络RNN的温度时间序列预测

R语言神经网络模型预测车辆数量时间序列

R语言中的BP神经网络模型分析学生成绩

matlab使用长短期记忆(LSTM)神经网络对序列数据进行分类

R语言实现拟合神经网络预测和结果可视化

用R语言实现神经网络预测股票实例

使用PYTHON中KERAS的LSTM递归神经网络进行时间序列预测

python用于NLP的seq2seq模型实例:用Keras实现神经网络机器翻译

用于NLP的Python:使用Keras的多标签文本LSTM神经网络分类

ff63ad3cbd6bd74e44b95038963ce13c.png

18d9af29ed23c0134b19ab1089524ec9.jpeg

8de1d21ff8700626cba723664b80c635.png

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/299549
推荐阅读
相关标签
  

闽ICP备14008679号