基于python的银行信贷风险评估系统

本文介绍了使用Python和XGBoost构建的银行信贷风险评估平台,通过对用户基础信息和行为数据的分析,发现违约用户特征,并利用决策树模型进行用户风控预警,AUC指标达到0.72,实现了信贷风险的有效管理。
摘要由CSDN通过智能技术生成

欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。

一项目简介

   信贷业务又称为信贷资产或贷款业务,是商业银行最重要的资产业务,通过放款收回本金和利息,扣除成本后获得利润,所以信贷是商业银行的主要赢利手段。

信用风险是金融监管机构重点关注的风险,关乎金融系统运行的稳定,银行会根据客户的资质来评定,比如征信,贷款额度,贷款的用途,贷款的时间,还款的能力,收入的稳定性等多方面去分析。

二、任务描述

利用用户基础信息、行为数据,预测用户违约的可能性。

数据集:

训练集:102030 条
测试集:30000 条
(1) 用户基本属性信息

id: 用户唯一标识
certId:证件号
gender:性别
age:年龄
dist:所在地区
edu:学历
job:工作单位类型
ethnic:民族
highestEdu:最高学历
certValidBegin:证件号起始日
certValidStop:证件号失效日
(2)借贷相关信息

loanProduct:借贷产品类型
lmt:预授信金额
basicLevel:基础评级
bankCard:放款卡号
residentAddr:居住地
linkRela:联系人关系
setupHour:申请时段
weekday:申请日
(3) 用户征信相关信息

ncloseCreditCard:失效信用卡数
unpayIndvLoan:未支付个人贷款金额
unpayOtherLoan:未支付其他贷款金额
unpayNormalLoan:未支付贷款平均金额
5yearBadloan:五年内未支付贷款金额
x_0至x_78:该部分数据涉及较为第三方敏感信用数据,匿名化处理,不影响建模和数据分析

三、数据探索式分析

系统采用 flask 搭建 web 后台,利用 pandas 等工具包实现对当前城市二手房现状、二手房价格影响因素等进行统计分析,并利用 bootstrap + echarts 进行前端渲染可视化。系统通过构建机器学习模型(决策树、随机森林、神经网络等模型),对二手房价格进行预测。

(1)违约用户数量分布
在这里插入图片描述

可以看出,违约的用户较少,只占0.7%,样本不均衡,评测指标需要采用 AUC 或 F1 指标,本实验中采用 AUC 指标。

(2)违约用户性别分布

在这里插入图片描述

可以看出,违约用户的年龄差别较大,大部分为男性 gender=1

(3)违约用户年龄分布

在这里插入图片描述

可以看出,违约用户年龄集中在 19-35 岁之间。

(4)违约用户教育程度分布
在这里插入图片描述

(5)违约用户工作单位类型分布

在这里插入图片描述

(6)不同借贷产品类型的违约比例分布

在这里插入图片描述

(7) 不同借贷产品类型的违约随时间变化趋势

在这里插入图片描述

不同借贷产品类型的违约随时间变化存在一定的周期性。

(8)预授信金额分布
在这里插入图片描述

可以看出,预授信金额大于40的,都为风险用户。

(9)基础评级分布
在这里插入图片描述

(10)用户的民族分布情况

在这里插入图片描述

民族类别大于26编号的,大都为有风险用户

(11)用户最高学历分布情况
在这里插入图片描述

(12)用户申请信用卡时段分布

在这里插入图片描述

申请信用卡的时段大都集中在白天,晚上20时存在峰值。

(13)用户申请信用卡时段分布
在这里插入图片描述

(14)用户第三方敏感信用数据相关性分析

在这里插入图片描述

四、利用决策树模型构建用户风控预警

XGBoost是一套提升树可扩展的机器学习系统。目标是设计和构建高度可扩展的端到端提升树系统。提出了一个理论上合理的加权分位数略图来计算候选集。引入了一种新颖的稀疏感知算法用于并行树学习。提出了一个有效的用于核外树形学习的缓存感知块结构。用缓存加速寻找排序后被打乱的索引的列数据的过程。XGBoost是一个树集成模型,他将K(树的个数)个树的结果进行求和,作为最终的预测值。

import xgboost as xgb
from sklearn.model_selection import train_test_split
from sklearn.metrics import auc, roc_curve
from sklearn.metrics import accuracy_score, precision_score, recall_score
def evaluate_score(predict, y_true):
    """定义评估函数"""
    false_positive_rate, true_positive_rate, thresholds = roc_curve(y_true, predict, pos_label=1)
    auc_score = auc(false_positive_rate, true_positive_rate)
    return auc_score

五、基于python的银行信贷风险评估平台

在完成数据的探索式分析和机器学习算法建模之后,我们利用 flask + bootstrap + echarts 搭建银行信贷风险评估平台,其可视化效果如下:

6.1 系统注册登录
在这里插入图片描述

6.2 违约用户特征分析
在这里插入图片描述

6.3 借贷产品违约分析
在这里插入图片描述

6.4 信用卡信息分析

在这里插入图片描述

6.5 用户风控预警决策树建模

在这里插入图片描述

七. 总结

   本文利用 python 的 pandas、numpy,Matplotlib、seaborn等数据分析工具包,完成对银行信贷数据的可视化分析,对不同特征维度进行可视化,并利用 xgboost 决策树模型对数据进行建模,划分训练集、验证集和测试集,通过参数调优,最终测试集的 AUC 指标达到 0.72,取得了良好的评测效果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值