Python基于逻辑回归分类模型、决策树分类模型、LightGBM分类模型和XGBoost分类模型实现车辆贷款违约预测项目实战

说明:这是一个机器学习实战项目(附带数据+代码+文档+视频讲解),如需数据+代码+文档+视频讲解可以直接到文章最后获取。

1.项目背景

随着经济的发展和人民生活水平的提高,汽车消费在居民消费中所占比例逐渐增加,汽车金融公司也因此得到了快速发展。然而,在这个过程中,车贷违约风险的问题也逐渐凸显。如何有效识别和预测车贷违约风险,成为汽车金融公司急需解决的问题。

金融机构因车辆贷款违约而蒙受重大损失。这导致汽车贷款承保收紧,汽车贷款拒绝率上升。通过分析汽车贷款违约情况,利用多种机器学习模型进行预测。

本项目通过逻辑回归模型、决策树模型、LightGBM模型和XGBoost模型进行车辆贷款违约预测。      

2.数据获取

本次建模数据来源于网络(本项目撰写人整理而成),数据项统计如下:

编号 

变量名称

描述

1

UniqueID

客户标识符

2

loan_default

到期日第一次的付款违约

3

disbursed_amount

已发放贷款

4

asset_cost

资产成本

5

ltv

资产贷款价值比

6

branch_id

发放贷款的分行

7

supplier_id

发放贷款的车辆经销商

8

manufacturer_id

汽车制造商(英雄、本田、TVS等)

9

Current_pincode

客户的当前密码

10

Date.of.Birth

客户的出生日期

11

Employment.Type

客户的就业类型(带薪/自雇)

12

DisbursalDate

支付日期

13

State_ID

付款状态

14

Employee_code_ID

记录支出的组织的员工

15

MobileNo_Avl_Flag

如果客户共享手机号码,则标记为1

16

Aadhar_flag

如果客户共享了aadhar,则将其标记为1

17

PAN_flag

如果pan由客户共享,则标记为1

18

VoterID_flag

如果投票者由客户共享,则标记为1

19

Driving_flag

如果DL由客户共享,则标记为1

20

Passport_flag

如果客户共享护照,则标记为1

21

PERFORM_CNS.SCORE

局分数

22

PERFORM_CNS.SCORE.DESCRIPTION

局分数说明

23

PRI.NO.OF.ACCTS

客户在支付时获得的贷款总额

24

PRI.ACTIVE.ACCTS

客户在支付时获得的活跃贷款数

25

PRI.OVERDUE.ACCTS

支付时的违约账户数

26

PRI.CURRENT.BALANCE

发放时活跃贷款的未偿本金总额

27

PRI.SANCTIONED.AMOUNT

发放时所有贷款的批准总额

28

PRI.DISBURSED.AMOUNT

发放时为所有贷款发放的总金额

29

SEC.NO.OF.ACCTS

客户在支付时获得的贷款总额

30

SEC.ACTIVE.ACCTS

客户在支付时获得的活跃贷款数

31

SEC.OVERDUE.ACCTS

支付时的违约账户数

32

SEC.CURRENT.BALANCE

发放时活跃贷款的未偿本金总额

33

SEC.SANCTIONED.AMOUNT

发放时所有贷款的批准总额

34

SEC.DISBURSED.AMOUNT

发放时为所有贷款发放的总金额

35

PRIMARY.INSTAL.AMT

主要贷款金额

36

SEC.INSTAL.AMT

二次贷款金额

37

NEW.ACCTS.IN.LAST.SIX.MONTHS

客户在支出前的最后6个月内获得的新贷款

38

DELINQUENT.ACCTS.IN.LAST.SIX.MONTHS

最近6个月内拖欠的贷款

39

AVERAGE.ACCT.AGE

平均贷款期限

40

CREDIT.HISTORY.LENGTH

自首次贷款以来的时间

41

NO.OF_INQUIRIES

客户办理的贷款手续

数据详情如下(部分展示):

3.数据预处理

3.1 用Pandas工具查看数据

使用Pandas工具的head()方法查看前五行数据: 

关键代码:

3.2数据缺失查看

使用Pandas工具的info()方法查看数据信息:

从上图可以看到,总共有41个变量,数据中无缺失值,共233154条数据。

关键代码: 

3.3数据描述性统计

通过Pandas工具的describe()方法来查看数据的平均值、标准差、最小值、分位数、最大值。

关键代码如下:  

4.探索性数据分析

4.1 loan_default变量柱状图

用Matplotlib工具的plot()方法绘制柱状图:

4.2 数据项空值统计

从上图可以看到,Employment_Type变量有空值,数量为7661。

4.3 相关性分析

从上图中可以看到,对部分特征进行了相关性分析,数值越大相关性越强,正值是正相关、负值是负相关。

4.4 绘制直方图

用Matplotlib工具的hist()方法绘制直方图:

从上图可以看出,对部分特征进行直方图绘制。

4.5 绘制折线图

如下是两个变量和因变量的折线图:

4.6 绘制柱状图

4.7 绘制散点图

5.特征工程

5.1 建立特征数据和标签数据

关键代码如下:

5.2 数据均衡化

如下所示,为数据均衡化后的数据:

5.3 数据标准化

数据标准化关键代码如下:

5.4 数据集拆分

通过train_test_split()方法按照90%训练集、10%测试集进行划分,关键代码如下:

6.构建分类模型 

主要使用逻辑回归分类算法、决策树分类算法、LightGBM分类算法和XGBoost分类算法,用于目标分类。  

6.1 构建模型 

编号

模型名称

参数

1

逻辑回归分类模型

默认参数值

2

决策树分类模型

默认参数值

3

random_state=123

4

LightGBM分类模型

默认参数值

5

random_state=42

6

XGBoost分类模型

默认参数值

7

random_state=42

7.模型评估

7.1评估指标及结果 

评估指标主要包括准确率、查准率、查全率、F1分值等等。

模型名称

指标名称

指标值

测试集

逻辑回归分类模型 

准确率

0.6642

查准率

0.6592

查全率

0.6807

F1分值

0.6698

决策树分类模型

准确率

0.7693

查准率

 0.7641

查全率

0.7795

F1分值

0.7717

LightGBM分类模型

准确率

0.8498

查准率

0.9925

查全率

 0.705

F1分值

0.8244

XGBoost分类模型

准确率

 0.8512

查准率

 0.9879

查全率

 0.7112

F1分值

0.827

从上表可以看出,LightGBM分类模型和XGBoost分类模型 F1分值分别为0.8244和0.827,说明这2个模型效果较好。   

7.2 分类报告

逻辑回归分类模型:

从上图可以看出,分类为0的F1分值为0.66;分类为1的F1分值为0.67。

  

决策树分类模型:

从上图可以看出,分类为0的F1分值为0.77;分类为1的F1分值为0.77。

LightGBM分类模型:

从上图可以看出,分类为0的F1分值为0.87;分类为1的F1分值为0.82。

XGBoost分类模型:

从上图可以看出,分类为0的F1分值为0.87;分类为1的F1分值为0.83。

7.3 混淆矩阵

逻辑回归分类模型:

从上图可以看出,实际为0预测不为0的 有6327个样本;实际为1预测不为1的 有5971个样本。  

决策树分类模型:

从上图可以看出,实际为0预测不为0的 有4395个样本;实际为1预测不为1的 有4027个样本。  

LightGBM分类模型:

从上图可以看出,实际为0预测不为0的 有101个样本;实际为1预测不为1的 有5375个样本。

XGBoost分类模型:

从上图可以看出,实际为0预测不为0的 有146个样本;实际为1预测不为1的 有5271个样本。

7.4 ROC曲线

逻辑回归分类模型:

从上图可以看出,逻辑回归分类模型的AUC值为0.73。

决策树分类模型:

从上图可以看出,决策树分类模型的AUC值为0.77。

LightGBM分类模型:

从上图可以看出,LightGBM分类模型的AUC值为0.89。

XGBoost分类模型:

从上图可以看出,XGBoost分类模型的AUC值为0.89。

8.结论与展望

综上所述,本文采用了逻辑回归、决策树、LightGBM和XGBoost算法来构建分类模型,最终证明了LightGBM和XGBoost模型效果良好。此模型可用于日常产品的预测。 

# 本次机器学习项目实战所需的资料,项目资源如下:# 项目说明:# 获取方式一:# 项目实战合集导航:https://docs.qq.com/sheet/DTVd0Y2NNQUlWcmd6?tab=BB08J2# 获取方式二:链接:https://pan.baidu.com/s/1SKKxNs2aWQyqe5Yrvp-gdw 
提取码:tlvp

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/36846.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

克服指标管理痛点,实现数据价值最大化

在当下的企业管理中,由于数据量的激增,管理方式逐渐从基于经验转向基于数据。在此过程中,我们能够通过数据探查业务情况、分析数据,从而获取更优的决策支持数据。这通常通过数据报表或分析平台来实现,对于临时性场景&a…

vue2组件内部获取路由前后变化

问题: 在账户列表页面,需要检测路由变化进行拉取用户数据,不在mounted里面写,就是要检测路由变化并且要获取前后路由的路径,进行一些逻辑的判断 解决: export default {data() {return {user: "&qu…

Feign调用异常

TimeLimiter SuperCareAPI#originalWave(String,String) recorded a timeout exception. 解决方案: 针对超时的接口设置响应时间 feign:client:config:default:connect-timeout: 500000000read-timeout: 500000000 resilience4j:timelimiter:instances:SuperCare…

护眼大路灯哪个牌子好用?五款好用的护眼灯分享

护眼大路灯哪个牌子好用?现在的孩子从幼儿园开始就开始学习,面临的用眼压力就很大,但想要孩子视力不受影响,大路灯是得好好安排起来,但动辄大几千的护眼灯真是让我们这些普通家庭的家长望而却步,有没有好用…

ruoyi-cloud部署过程遇到的问题总结

nacos启动失败 1.集群cluster模式改为单机standalone 修改bin/startup.cmd文件 set MODE"cluster" 改为 set MODE"standalone" 2.密钥长度不够“the length of secret key must great than or equal 32 bytes; ” 转到官网查看一些配置,发现…

控制系统稳定性常见策略

提升控制系统稳定性是确保系统可靠运行的关键,以下是一些常见策略: 1. 控制算法优化 优化控制算法是提升系统稳定性的核心方法之一。常见的控制算法包括PID控制、模糊控制、自适应控制等。通过调整和优化这些算法的参数,可以显著提高系统的…

FITC-链霉亲和素在生物成像技术中的应用

生物成像技术是现代生物学和医学研究中的工具之一,它使得研究者能够直观地观察和了解生物体内部的结构和功能。其中,荧光成像技术因其高灵敏度和高分辨率而受应用。FITC-链霉亲和素作为一种荧光标记试剂,在生物成像技术中发挥着作用。 FITC-…

Java List操作详解及常用方法

Java List操作详解及常用方法 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿! 什么是Java List? Java中的List是一种动态数组,它允许存…

填报高考志愿时,学校、专业和城市怎么选择呢?

我的观点是: 专业>城市>学校 专业是兴趣导向,符合自己的价值观,失去了这种驱动力的专业学习,会变得非常艰难的,而且没有竞争力,所以我的排序第一位是专业。 其次是城市,最好是一线城市&…

ubuntu22.04下编译安装dlib

为什么要自己编译,请自行摆渡。 #--------------------------------------------------------------------------- # compile and inistall dlib C library #--------------------------------------------------------------------------- cd /opt mkdir dlib-ro…

垃圾回收算法和 GC Roots 的对象

判断对象是否要回收有两种算法, 引用计数法和可达性算法。无论哪种都离不开引用,下面将介绍 Java 语言的四种引用。 众所周知,Java 语言的 JVM 垃圾回收机制,用可达性分析算法来判断堆里的对象是否正在使用。 可达性分析算法是从 GC ROOTS 开…

划重点!炒伦敦金看k线图的要点

对于刚刚开始参与伦敦金交易,还在学习如何看K线的投资者来说,掌握一些看k线图的要点,对于更好地分析市场的行情走势,找到有利的入场机很有帮助,以下是一些关键的建议,希望能够供大家参考。 K线有阳线和阴线…

区块链不可能三角

区块链不可能三角:探索去中心化、安全与可扩展性的权衡 引言 区块链技术自诞生以来,以其去中心化、透明、安全等特点吸引了全球的关注,成为金融科技领域的重要革新力量。然而,随着区块链应用的日益广泛,一个核心问题…

Coze搭建《测测你的本命宠物》

前言 本文讲解如何从零开始,使用扣子平台去搭建《测测你的本命宠物》 《测测你的本命宠物》:测测你的本命宠物 - 扣子 AI Bot (coze.cn) 欢迎大家去体验一下!!! 正文 接下来我们开始讲解制作这个bot的流程吧&#…

微信小程序常用的事件

1.点击事件 WXML 中绑定点击事件&#xff1a; <!-- index.wxml --> <button bindtap"handleTap">点击我</button> 对应的 JS 文件中编写点击事件处理函数&#xff1a; // index.js Page({handleTap: function() {console.log(按钮被点击了);} }…

【python入门】数组、元组、字典

文章目录 数组&#xff08;List&#xff09;元组&#xff08;Tuple&#xff09;字典&#xff08;Dictionary&#xff09; Python 是一种非常灵活的编程语言&#xff0c;它提供了多种数据结构来存储和操作数据。下面是 Python 中数组、元组和字典的详细说明&#xff0c;以及一些…

rclone 上传资料到 onedrive 遇到限速问题解决

原因分析 可能和脚本参数设置有关系,我的参数是: rclone copy "F:\阿里云盘\6666\局域网" "od:影视" --ignore-existing -u -v -P --transfers20 --ignore-errors --buffer-size128M --check-first --checkers10 --drive-acknowledge-abuse差不多8G大小的…

图像直方图的计算

1.1 cv.calcHist()函数&#xff0c;函数原型如下&#xff1a; void cv::calcHist ( const Mat * images,int nimages,const int * channels,InputArray mask,OutputArray hist,int dims,const int * histSize,const float ** ranges,bool uniform true,bool accumu…

如何使得Macos的剪切板感知fileURL并当fileURL被执行paste 动作时 回调到某个监听的函数 从而来填充file content

问题及尝试&#xff1a; 我在做一个跨平台文件拷贝的功能&#xff0c;文件可能是从其他操作系统比如Linux 或者Windows 拷贝到Macos上&#xff0c; 但是我试过所有可以hook NSPasteboard的方法&#xff0c;确实没有找到可以监听macos 剪切板的方法&#xff0c;因为fileURL 确实…

邮件接口代码案例中的SMTP服务器配置详解!

邮件接口代码案例的编写技巧&#xff1f;如何集成邮件服务API&#xff1f; 对于开发者来说&#xff0c;邮件接口代码案例提供了丰富的参考和实践机会&#xff0c;其中SMTP服务器配置是不可或缺的一环。AoKSend将详细讲解如何配置SMTP服务器&#xff0c;并解析其中的重要参数和…