其他分享
首页 > 其他分享> > 手把手教你:个人信贷违约预测模型

手把手教你:个人信贷违约预测模型

作者:互联网

系列文章


目录



一、项目简介

本文主要介绍如何使用python搭建:基于三个经典机器学习算法的个贷违约预测模型

项目只是用个贷违约预测作为抛砖引玉,其中包含了使用模型进行预测的相关代码。主要功能如下:

如各位童鞋需要更换训练数据,完全可以根据源码将图像和标注文件更换即可直接运行。

博主也参考过机器学习模型构建的文章,但大多是理论大于方法。很多同学肯定对原理不需要过多了解,只需要搭建出一个预测系统即可。

本文只会告诉你如何快速搭建一个基于个贷违约预测模型并运行,原理的东西可以参考其他博主

也正是因为我发现网上大多的帖子只是针对原理进行介绍,功能实现的相对很少。

如果您有以上想法,那就找对地方了!


不多废话,直接进入正题!

二、数据集介绍


三、环境安装

本项目开发IDE使用的是:jupyter notebook,大家可以直接csdn搜索安装指南非常多,这里就不再赘述。

因为本项目基于TensorFlow因此需要以下环境:

四、代码介绍

1.数据预处理

load_data_clean=load_data[['loan_amnt','funded_amnt','term','int_rate',
                           'installment','emp_length','dti',
                           'annual_inc','total_pymnt',
                          'total_pymnt_inv',
                          'total_rec_int','loan_status']]
del load_data
#注意输入的变量必须是量化的值,不能是字符串
#数据清洗主要做数据类型的转换,以及处理缺失数据
#采用针对矩阵的元素的函数实现
import re   #正则表达式的包
def extract_number(string):
    num=re.findall('\d+',str(string))  
    if len(num)>0:
        return int(num[0])
    else:
        return 0;
load_data_clean.emp_length=load_data_clean.emp_length.apply(extract_number)
load_data_clean.head()

2.数据可视化探索

2.1 各特征可视化

各特征可视化

2.2 贷款金额的情况

贷款金额的情况

2.3 贷款金额与分期付款关系

贷款金额与分期付款关系

2.4 是否还完贷款

是否还完贷款

3.构建模型并训练

3.1 朴素贝叶斯

	gnb_model=GaussianNB()
	gnb_model.fit(X_train,Y_train)
 	# 训练集
	#模型预测可以给出概率的结果
	train_probs=gnb_model.predict_proba(X_train)
	#返回概率最高的结果
	train_predict=gnb_model.predict(X_train)
	
	# 测试集
	#模型预测可以给出概率的结果
	test_probs=gnb_model.predict_proba(X_test)
	#返回概率最高的结果
	test_predict=gnb_model.predict(X_test)

模型得分情况

3.2 随机森林

from sklearn import datasets,svm,metrics,model_selection,preprocessing
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import GridSearchCV
# 实例化随机森林
rfc=RandomForestClassifier()
# 调参参数设置
rf_param_grid = {'n_estimators':[100,200,500], 'min_samples_split':[2,3,5,10], 
                 'min_samples_leaf':[4,6,10], 'max_depth':[10,50]}
rf_grid = model_selection.GridSearchCV(rfc, rf_param_grid, cv=5, n_jobs=12, verbose=1, scoring='accuracy')
# 训练模型
rf_grid.fit(X_train, Y_train)

2个模型的ROC曲线

3.3 逻辑回归

from sklearn.linear_model import LogisticRegression
#构建模型参数
LGR = LogisticRegression(penalty='l2', multi_class='multinomial',solver="newton-cg",n_jobs=12)
# 训练模型
LGR.fit(X_train, Y_train)

4.模型对比

模型对比


五、代码下载地址

由于项目代码量和数据集较大,感兴趣的同学可以直接下载代码,使用过程中如遇到任何问题可以在评论区进行评论,我都会一一解答。

代码下载:

标签:预测,违约,手把手,模型,train,贷款,model,代码
来源: https://blog.csdn.net/weixin_43486940/article/details/123094544