首页 > 其他分享 >R语言基于决策树的银行信贷风险预警模型

R语言基于决策树的银行信贷风险预警模型

时间:2024-04-11 19:22:46浏览次数:20  
标签:被判 预警 模型 违约 贷款 信贷风险 数据 决策树

原文链接:http://tecdat.cn/?p=2783

原文出处:拓端数据部落公众号

 

引言

我国经济高速发展,个人信贷业务也随着快速发展,而个人信贷业务对提高内需,促进消费也有拉动作用。有正必有反,在个人信贷业务规模不断扩大的同时,信贷的违约等风险问题也日益突出,一定程度上制约着我国的信贷市场的健康发展。

挑战

近年来,个人消费贷款的类型呈现出多元化的变化与发展,由原本的单一贷款种类发展到今天各式各样的贷款种类,汽车按揭贷款,教育助学贷款,耐用消费品贷款(家电,电脑,厨具等),结婚贷款等在我国陆续开展。违约风险是指债务人由于各种原因不能按时归还贷款债务的风险,对于商业银行来说,违约风险主要是指由于贷款人得还款能力下降或者信用水平降低从而违约。

 

理论相关概述

决策树 

决策树(Decision Tree)是用于分类和预测的主要技术,它着眼于从一组无规则的事例推理出决策树表示形式的分类规则,采用自顶向下的递归方式,在决策树的内部节点进行属性值的比较,并根据不同属性判断从该节点向下分支,在决策树的叶节点得到结论。因此,从根节点到叶节点就对应着一条合理规则,整棵树就对应着一组表达式规则。决策树是数据分析中一种经常要用到且非常重要的技术,既能够用于数据分析,也能够作预测。基于决策树算法的一个最大的优点是它在学习过程中不需要使用者了解很多背景知识,只要训练事例能够用属性即结论的方式表达出来,就能使用该算法进行学习。


基于决策树的分类模型有如下几个特点:(1)决策树方法结构简单,,便于理解;(2)决策树模型效率高,对训练集数据量较大的情况较为适合;(3)树方法通常不需要接受训练集数据外的知识;(4)决策树方法具有较高的分类精确度。

预警方案设计

数据在进行操作的过程中,我们一共分了四步,分别是数据分析和分离数据集,建立训练数据集决策树,评估模型性能,提高模型性能。

数据分析和分离数据集

在数据进行分析时,可以从中知道所有申请者的违约情况在分离数据集这一步,我们将数据分成两部分:用来建立决策树训练数据集和用来评估模型性能的测试数据集,按照80%训练集和20%测试集来分离样本。总的来看,这两个数据集的比例是大致相同的,所以分离的两个数据集是合理的。

训练数据集 测试数据集    
违约 不违约 违约 不违约
0.31625 0.68375 0.235 0.765
25300 54700 4700 15300

表1

建立训练数据集决策树


图1

图1是训练数据集决策树的基本情况。


图2

图2是训练数据集的部分决策树。

由于我们我们的数据庞大,生成的决策树非常的大,上图的输出显示了决策树的部分分枝,我们用简单的语言来举例解释前五行:

(1)如果支票账户余额是未知的,则归类为不太可能违约。

(2)否则,如果支票账户余额少于0,或者1〜200之间;

(3)月贷款期限少于或等于11个月的

(4)信用记录是危及,好的,优秀的,差的,归类为不太可能违约。

(5)信用记录是非常优秀的,就归类为很有可能违约。

括号中的数字表示符合该决策准则的案例的数量以及根据该决策不正确分类的案例的数量。

在决策树中我们不难发现,为什么一个申请者的信用记录非常优秀,却被判成很有可能违约,而那些支票余额未知的申请者却不太可能违约呢?这些决策看似没有逻辑意义,但其实它们可能反映了数据中的一个真实模式,或者它们可能是统计中的异常值。

在决策树生成后,输出一个混淆矩阵,这是一个交叉列表,表示模型对训练数据错误分类的记录数:


众所周知,决策树有一种过度拟合训练数据模型的倾向,由于这个原因,训练数据中报告的错误率可能过于乐观,因此,基于测试数据集来评估决策树模型是非常重要的。

评估模型性能

在这一步中使用测试数据集做预测,结果如图3所示。

实际值 预测值 行合计  
不违约 违约    
不违约 125000.625 28000.140 15300
违约 23000.115 24000.120 4700
列合计 14800 5200 20000

表2

从表2中可以得知,在测试集样本中,实际不违约被判为不违约的数量,占比为0.625;实际不违约被判为违约的数量,占比为0.140;而实际违约被判为不违约的数量占比为0.115;实际违约被判为违约的数量,占比为0.120。

从银行角度出发,申请人实际不违约被判为违约的影响远没有实际违约被判为不违约的影响大。原因有以下几点:一,申请人实际不违约被判为违约,银行可能不会通过贷款申请,从而不发放贷款,这样银行不会遭受贷款发放出去却收不回来的风险,只是少收部分贷款利息而已。二,申请人实际违约被判为不违约,银行可能会同意申请人的贷款申请同意发放贷款,在发放贷款后,被判为不违约的申请人可能会因为缺乏诚信,不遵守合约规定按时还款,这样银行不仅损失了利息的收入,连本金都有可能收不回来三,在测试数据集数据中,实际不违约的数量,占比0.183;而实际违约的数量,被判为不违约的数量,占比0.489。

由以上三点可以得出结论,基于训练测试集得出的模型,用测试数据集中的数据进行检验,最终出来的结果并不是很好。从银行角度出发,如果使用该模型引用到实际生活中,会因为申请人实际违约被误判为不违约的概率太大,而使银行做出错误的决定,从而产生损失。

模型优化方案 - 增加迭代次数,代价矩阵

由上面的评估模型性能可以得知,基于训练数据集得出的模型不太理想,因此我们来提高模型的性能。

1,迭代10次

首先我们选择使用迭代10次的方法进行对模型性能的提高。

实际值 预测值 行合计  
不违约 违约    
不违约 133000.665 20000.100 15300
违约 23000.115 24000.120 4700
列合计 15600 4400 20000

表3

由表3可以知道经过10次迭代,实际违约被判为不违约的数量占比0.115,与训练数据集的模型相比没有变化;而实际不违约被判为违约的数量,占比0.100。

从银行角度出发,这次的模型性能提高没有很大的实际意义,因为影响银行是否亏损的最主要因素是看实际违约被判为不违约的比重,而这次的性能提高并没有减少实际违约被判为不违约的数量,所以我们还要继续提高模型的性能。

2,迭代100次

根据上面的步骤知道,迭代10次出来的模型效果并不是很好,所以我们在这一步进行迭代100次的操作。

实际值 预测值 行合计  
不违约 违约    
不违约 129000.645 24000.120 15300
违约 24000.120 23000.115 4700
列合计 15300 4700 20000

表4

经过迭代100次的过程出来的结果由表4所示,与训练数据集的结果图相比,由此可以看出该次模型性能的提升没有较大效果。

3,代价矩阵

由于上述两次操作均没有使得模型的性能得到较大的提升,所以在这一步我们决定采用代价矩阵的方式来进行。

这里我们假设将一个违约用户错误的分类为不违约相比于将不违约用户错误的分类为违约来说,前者相较于后者会给贷款方造成4倍的损失,故代价矩阵为:

上述矩阵行表示真实值,列表示预测值,第一列和第一行代表不违约,第二列和第二行代表违约。假如该算法正确分类时,则没有分配代价。图6是加入代价矩阵的模型分类结果汇总。

实际值 预测值 行合计  
不违约 违约    
不违约 76000.380 77000.385 15300
违约 10000.050 37000.185 4700
列合计 8600 11400 20000

表5

相较于前面的结果,在加入代价矩阵后的模型效果不错,在实际违约被判为不违约的比例上得到了较大程度的下降。


图3

图3是测试数据集的部分决策树。

建议

现今,我国的生活水平逐步提升,个人的消费水平也跟着上升,但仍有很多人的工资薪酬涨幅跟不上消费的增长,就会从商业银行贷款作为经济生活维持,已提升自己的生活水平,不仅是车辆按揭贷,房产按揭贷款,教育助学贷款,耐用消费品贷款,结婚贷款等在我国陆续开展,数量与规模也越来越庞大。商业银行要从贷款中获利,就必须加强对于贷款的风险管理,在进行单一评估的同时从大量规律中获取经验,对于人力无法理解的大规模数据,就需相关研究来获取有用的规律,帮助商业银行及其他金融机构做出决策,而决策树对银行及金融机构来说就是一种很好的决策管理方法。

通过决策树的每一个子节点可以看出哪一个自变量会对贷款违约有多大的影响,从而商业银行可以更加的关注客户的这一方面,在这方面严格把关。算法能够为影响较大的错误分类进行误判代价值的设定,从而使模型在这类误判中的增加重视,降低这类错误发生的概率。假设银行将实际上不违约的客户判成了违约,银行仅仅是少获得几笔贷款的利息,不至于把整笔贷款都亏掉变成坏账;但假如银行使用了这种算法,对客户的违约可能性做出更为准确的判断,便能减少银行对实际违约的客户错判成不违约的情况,降低银行出现贷款无法追收的情况。

 

标签:被判,预警,模型,违约,贷款,信贷风险,数据,决策树
From: https://www.cnblogs.com/tecdat/p/18129912

相关文章

  • 决策树模型(4)Cart算法
    Cart算法Cart是Classificationandregressiontree的缩写,即分类回归树。它和前面的ID3,C4.5等算法思想一致都是通过对输入空间进行递归划分并确定每个单元上预测的概率分布,进而进行回归和分类任务。只不过由于任务的不同,所以回归树和分类树的划分准则并不相同。Cart生成回归......
  • 树模型系列——2、决策树生成算法
    1ID3算法ID——IterativeDichotomiser(迭代二分器)从根结点(rootnode)开始,对结点计算所有可能的特征的信息增益,选择信息增益最大的特征作为结点的特征,由该特征的不同取值建立子结点;在对子结点递归地调用以上方法,构建决策树;直到所有特征的信息增益均很小或没有特征可以选择为......
  • Hadoop3.1.3+Spark2.3.4全分布决策树
    该文档是一些配置全分布的注意事项(遇到的坑)与个人的一些指令备注,阅读文档前需要配置好网络,具体可以参考:网络配置。linux系统选择的是Centos7首先是一些小工具:小技巧1.Xshell:可以更方便地批量操控虚拟机进行全分布:这样输入任何指令都可以输入给所有虚拟机,方便全分布的配置......
  • 经典机器学习算法:线性回归。逻辑回归。决策树。支持向量机(SVM)。朴素贝叶斯(Naive Baye
    目录经典机器学习算法分别举例说明这些算法的应用,并对比优劣以及实际应用场景。......
  • 树模型系列——1、决策树算法简介
    1.决策树简介决策树(decisiontree)是机器学习中一种非参数的监督学习算法,可用于分类与回归。其中分类决策树是基于变量特征对离散变量目标值进行分类的,可用于二分类或多分类;回归决策树是基于变量特征对连续变量目标值进行分类的,可用于连续变量的回归拟合。从上图看,可知树形结构......
  • 1.7 - 决策树
    1.模型理念香农信息论:一个系统越是混乱,信息熵越高,系统越是有序,信息熵越低。S= ∑(-plog(p)),因此,系统内变量越多,信息熵越大,变量之间出现的概率越平均,信息熵越大。在银行借贷决策模型中,判定一个人是否可以借贷,每个选中这个人的一个特征数据进行判断,然后再上次判断......
  • Zabbix绝配!Linux用户密码过期预警与自动发现脚本大揭秘
    Zabbix绝配!Linux用户密码过期预警与自动发现脚本大揭秘原创 脚本家园 脚本家园 2024-04-0206:35 云南 1人听过在Linux系统管理中,用户密码的安全性和有效性是至关重要的。为了保持系统的安全性,管理员经常需要确保用户密码定期更换,并提前警告用户其密码即将过期。在这方面,Z......
  • 甘特图进度跟踪与风险预警机制
    项目管理就像一场跋涉,甘特图则是我们的路线图和指南针。制定好行程计划后,我们就要跟着它一路前行,时刻核对进度,防患于未然。一张优秀的甘特图不仅绘制了任务的起止时间,更重要的是它将各项工序的逻辑关系和制约条件清晰可见。我们遵循这个时间线前进,就能确保万无一失。通过实......
  • NodeJS 高校学业预警系统 毕业设计-10551
    摘 要随着科学技术的飞速发展,社会的方方面面、各行各业都在努力与现代的先进技术接轨,通过科技手段来提高自身的优势,教育行业当然也不能排除在外。高校学业预警系统是以实际运用为开发背景,运用软件工程开发方法,采用Node.JS技术构建的一个管理系统。整个开发过程首先对软件系......
  • TSINGSEE青犀智慧工厂视频汇聚与安全风险智能识别和预警方案
    在智慧工厂的建设中,智能视频监控方案扮演着至关重要的角色。它不仅能够实现全方位、无死角的监控,还能够通过人工智能技术,实现智能识别、预警和分析,为工厂的安全生产和高效运营提供有力保障。TSINGSEE青犀智慧工厂智能视频监控方案,主要是采用高清摄像头,通过智能分析技术,实现对工厂......