机器学习之客户违约预测模型搭建之原理篇

news2024/11/26 4:19:28

前言

        这一章主要介绍机器学习在金融领域一个重要应用:客户违约预测模型的搭建,其所用到原理为机器学习中的决策树模型。通过本章的学习,您能了解在信息时代下金融风险控制的新手段,并对机器学习有一个初步的了解。

1. 机器学习在金融领域的应用

说到机器学习(Machine Learning),有的读者可能会感觉比较陌生,然而说到AlphaGo这一击败了世界顶级围棋选手的智能机器人,想必大家多少都有些耳闻。机器学习便是模拟或实现人类的学习行为,以探寻规律或者获得新的技能,机器学习某种程度上可以说是人工智能的核心

个简单的例子,如下图所示,该机器学习的目的就是要从一堆散点中寻找到这些散点背后的规律。

        本章主要介绍一下客户违约预测模型,作为机器学习在金融领域应用的典型案例。在传统金融领域,往往存在两方角色,一方为借钱的借款方,另一方则为借钱给别人的贷款方,而作为贷款方则非常关心借款方是否会违约,即借钱不还。有的借款方可能完全就是抱着借钱不还的心态去借的资金,而对于这些客户,则需要搭建一套客户违约预测模型,根据借款人的各方面特征,来训练出合适的模型进行违约概率预测,从而在源头上拒绝这些潜在违约客户。

        可用来搭建客户违约预测模型的方法有很多,如逻辑回归模型、决策树模型、神经网络模型等,这里则使用一个在商业上用的较多的决策树模型。

2. 决策树模型的基本原理

2.1 决策树模型简介

决策树模型是机器学习各种算法模型中比较好理解的一个模型,它的基本原理便是通过对一系列问题进行if/else的推导,最终实现相关决策

下图便是一个典型的决策树模型,首先判断是否曾经违约:

如果 答案是“是”则认为该用户会 违约
如果 答案是“否” 则,接着 判断其收入是否小于 10,000 元:
如果 答案是“是”则认为该用户会 违约
如果 答案是“否”则认为该用户不会 违约

        以下的决策树模型也是之后我们要搭建的客户违约预测模型的雏形。不过商业实战中不会单纯根据“曾经违约”以及“收入<10,000”两个特征就判断成违约或者非违约,而是根据多个特征来预测违约概率,并根据相应的阈值来判断是否违约,比如违约概率超过50%即认为该用户会违约。 

        这里解释几个决策树模型的重要关键词:根节点父节点子节点叶子节点

节点和子节点是相对的,子节点由父节点根据某一规则分裂而来,然后子节点作为新的父亲节点继续分裂,直至不能分裂为止
节点是没有父节点的节点,即初始 节点
叶子 节点则是没有子节点的节点,即最后的节点

        

        决策树模型的关键即是如何选择合适的节点进行分裂。在上图中,最上面的“曾经违约”就是根节点,其中“收入<10,000”则为其子节点,同时也是其下面两个节点的父节点,最后的“违约”及“不违约”则为叶子节点。

        实际应用中,风控人员会通过已有的数据来看违约客户都符合什么样的特征,比如看他们的:

历史 违约 记录
收入
年龄
历史 授信额度

        然后选择合适的特征进行节点分裂,便可以搭建出类似上图所示的决策树模型。利用该决策树模型就可以预测之后其他客户的违约可能性,从而避免潜在风险。

        决策树概念本身并不复杂,主要就是通过连续的逻辑判断来得到最后的结论,其关键的难点在于如何建立出这样一颗树来

        比如根节点应该选择哪一个特征,选“曾经违约”作为根节点和选“收入<10,000”作为根节点会起到不同的效果。其次收入作为一个连续变量,是选“收入<10,000”作为一个节点,还是选“收入<100,000”作为一个节点都是有考究的

2.2 决策树模型的建树依据

        决策树模型的建树依据主要用到一个基尼系数(gini)概念。基尼系数用于计算一个系统中的失序现象,也即系统的混乱程度。基尼系数越高,系统混乱程度越高,建立决策树模型的目的就是通过合适的分类来降低系统的混乱程度,其计算公式如下

其中pi为类别i在样本T中出现的频率,即类别为i的样本占总样本个数的比率。

∑"为" 求和公式,即把所有的pi^2进行求和。

        举例来说,对于一个全部都是违约客户的样本来说,里面只有一个类别:违约客户,其出现的频率是100%,所以该系统基尼系数为1 - 1^2 = 0,表示该系统没有混乱,或者说该系统的“纯度”很高

        如果样本里一半是违约客户,另一半是非违约客户,那么类别个数为2,每个类别出现的频率都为50%,所以其基尼系数为1 - 0.5^2 + 0.5^2= 0.5,也即其混乱程度很高。

       当引入某个用于进行分类的变量(比如“曾经违约”),则分割后的基尼系数公式为

其中S1S2为划分成两类的样本量,gini(T1)gini(T2)为划分后的两类各自的基尼系数。

        举例来说,一个初始样本中有1000个客户,其中已知有400人违约,600人不违约,我们希望通过这个样本来搭建一个决策树模型来预测之后的客户违约情况

        其划分前该系统的基尼系数为1 - (0.4^2 + 0.6^2) = 0.48,可以看到其混乱程度还是挺高的,那么下面采用两种不同的划分方式来决定初始节点

1. 根据“曾经违约”进行分类

2. 根据“收入<10,000”进行分类

        可以看到不划分的时候系统的基尼系数为0.48,在根据“曾经违约”进行划分后系统的基尼系数为0.3,而根据“收入<10,000”进行划分后系统的基尼系数为0.45。基尼系数越低表示系统的混乱程度越低,能够比较好的作为一个预测模型,所以这里选择“曾经违约”作为第一个节点。这里演示了第一个节点如何进行选择,而第一个节点下面的节点也是用类似的方法来进行选择的 

         对于“收入”这一变量来说,是选择“收入<10,000”还是选择“收入<100,000”来进行划分,也是根据计算在这两种情况下划分后的基尼系数来进行判断。如果还有其他的变量,比如说“年龄”、“性别”等,也是通过类似的手段计算划分后的系统的基尼系数,来看如何进行节点的划分,从而搭建一个较为完善的决策树模型。

3. 实战

文章地址:机器学习之客户违约预测模型搭建之案例实战-CSDN博客

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

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

相关文章

【JavaScript】JavaScript 运算符 ⑤ ( 运算符优先级 )

文章目录 一、JavaScript 运算符优先级1、运算符优先级 概念2、运算符优先级 列举3、运算符示例 一、JavaScript 运算符优先级 1、运算符优先级 概念 JavaScript 的 运算符 是有 " 优先级 " 的 , " 运算符优先级 " 决定 一个表达式中 多个 运算符的 执行顺…

【每日一题】好子数组的最大分数

Tag 【单调栈】【暴力枚举】【数组】【2024-03-19】 题目来源 1793. 好子数组的最大分数 解题思路 本题和 84. 柱状图中最大的矩形 一样&#xff0c;计算的都是最大矩形的面积。只不过多了一个约束&#xff1a;矩形必须包含下标 k。 以下的方法一和方法二是 84. 柱状图中最…

你还在花钱看短剧吗?这些人做短剧推广已经通过短剧赚钱了

短剧分销&#xff0c;简单来说&#xff0c;就是你在抖音、快手、小红书等短视频平台浏览时看到的一半时&#xff0c;指引你去其他平台观看完整版的操作。 而使用“蜂小推”做短剧推广&#xff0c;你也能利用短剧快速致富~ 想要进行短剧分销&#xff0c;你需要经过一系列步骤&a…

23.python标准库之turtle库

一、窗体函数 turtle.setup(width, height, startx, starty) width:窗口宽度 height:窗口高度 startx:窗口与屏幕左侧距离&#xff08;单位象素&#xff09; starty:窗口与屏幕顶部距离&#xff08;单位象素&#xff09; 二、画笔状态函数 三、画笔运动函数

理清大数据技术与架构

大数据并不是一个系统软件&#xff0c;更不是一个单一的软件&#xff0c;它实际上是一种技术体系、一种数据处理方法&#xff0c;甚至可以说是一个服务平台。在这个技术体系中&#xff0c;涵盖了许多不同的部件&#xff0c;比如Hadoop服务平台。这一服务平台可以根据具体情况自…

Mybatis-Plus通用枚举介绍和使用

本文使用的是 Mybatis-Plus 从 3.4.2 版本来实现通用枚举配置&#xff0c;不同的版本&#xff0c;通用枚举配置会不一样&#xff0c;而且从Mybatis-Plus 从 3.5.2 版本开始只需使用 EnumValue 注解枚举属性&#xff0c;就可以实现一系列功能&#xff0c;而不需要其他配置。 这…

【python】python结合js逆向,让有道翻译成为你的翻译官,实现本地免费实时翻译

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN新星创作者等等。 🏆《博客》:Python全栈,前后端开发,人工智能,js逆向,A…

Spring Cloud 整合 GateWay

目录 第一章 微服务架构图 第二章 Spring Cloud整合Nacos集群 第三章 Spring Cloud GateWay 第四章 Spring Cloud Alibaba 整合Sentinel 第五章 Spring Cloud Alibaba 整合SkyWalking链路跟踪 第六章 Spring Cloud Alibaba 整合Seata分布式事务 第七章 Spring Cloud 集成Auth用…

Jenkins通知目标服务器拉取Harbor镜像部署

1.告诉目标服务器拉取哪个镜像 2.判断当前有没有正在运行此容器&#xff0c;有就删除 3.接着查看拉取的镜像目标服务器上是否已存在&#xff0c;有就删除 4.拉取Harbor镜像 5.运行容器 目标服务器编写脚本 创建个部署脚本 vim deploy.sh告诉目标服务器Harbor地址、仓库、镜像…

零基础学python:5、循环语句的使用

循环 目标 程序的三大流程while 循环基本使用break 和 continuewhile 循环嵌套01. 程序的三大流程 在程序开发中,一共有三种流程方式: 顺序 —— 从上向下,顺序执行代码分支 —— 根据条件判断,决定执行代码的 分支循环 —— 让 特定代码 重复 执行02. while 循环基本使用…

基于卷积神经网络实现手写数字识别

基于卷积神经网络实现手写数字识别 基于卷积神经网络实现手写数字识别。具体过程如下&#xff1a; &#xff08;1&#xff09; 定义ConvNet结构类及其前向传播方式 &#xff08;2&#xff09; 设置超参数以及导入相关的包。 &#xff08;3&#xff09; 定义训练网络函数和绘…

R语言实现多要素偏相关分析

偏相关分析是指当两个变量同时与第三个变量相关时&#xff0c;将第三个变量的影响剔除&#xff0c;只分析另外两个变量之间相关程度的过程&#xff0c;判定指标是相关系数的R值。 在GIS中&#xff0c;偏相关分析也十分常见&#xff0c;我们经常需要分析某一个指数与相关环境参…

基于Java中的SSM框架实现快餐店线上点餐系统项目【项目源码+论文说明】

基于Java中的SSM框架实现快餐店线上点餐系统演示 摘要 随着计算机互联网的高速发展。餐饮业的发展也加入了电子商务团队。各种网上点餐系统纷纷涌现&#xff0c;不仅增加了商户的销售量和营业额&#xff0c;而且为买家提供了极大的方便&#xff0c;足不出户&#xff0c;就能订…

Docker进阶教程 - 4 Docker网络

更好的阅读体验&#xff1a;点这里 &#xff08; www.doubibiji.com &#xff09; 4 Docker网络 先说我们现在遇到的问题&#xff1a; 我们现在有一个 Redis 容器&#xff0c;一个 SpringBoot 项目容器&#xff0c;在 SpringBoot 项目的代码中如何访问 Redis 容器中的服务呢…

Harbor镜像仓库的安装和使用

1 Harbor安装 参考文章&#xff1a; 银河麒麟v10离线安装harbor 由于配置了本地私有yum源&#xff0c;因此&#xff0c;直接使用yum命令安装docker和docker-compose 1.1 安装docker yum install docker-ce1.2 安装docker-compose yum install docker-compose1.3 安装harbo…

服务器被挖矿后修改密码报错Authentication token manipulation error

服务器被挖矿&#xff0c;需要修改密码&#xff0c;结果执行的时候发现报错 passwd: Authentication token manipulation error 尝试执行下列命令后再进行密码修改&#xff0c;修改成功 chattr -i /etc/passwd /etc/shadowchattr的主要用法 参考文章: https://c.biancheng.ne…

GEE遥感云大数据林业应用典型案例及GPT模型应用

近年来遥感技术得到了突飞猛进的发展&#xff0c;航天、航空、临近空间等多遥感平台不断增加&#xff0c;数据的空间、时间、光谱分辨率不断提高&#xff0c;数据量猛增&#xff0c;遥感数据已经越来越具有大数据特征。遥感大数据的出现为相关研究提供了前所未有的机遇&#xf…

威纶通触摸屏在编辑画面时如何更改窗口画面大小?

威纶通触摸屏在编辑画面时如何更改窗口画面大小&#xff1f; 如下图所示&#xff0c;Windows11系统下&#xff0c;打开威纶通触摸屏编程软件easy builder pro&#xff0c;此时可以看到画面窗口非常小&#xff0c;不方便编辑和操作&#xff0c; 如下图所示&#xff0c;点击上方工…

swagger3快速使用

目录 &#x1f37f;1.导入依赖 &#x1f32d;2.添加配置文件 &#x1f9c2;3.添加注解 &#x1f96f;4.访问客户端 1.导入依赖 引入swagger3的依赖包 <dependency><groupId>io.springfox</groupId><artifactId>springfox-boot-starter</artif…

B3870 [GESP202309 四级] 变长编码(膜拜版)

本题包括&#xff1a; 1.进制的超强使用 2.进制的截位使用 本题参考洛谷题解&#xff1a;https://www.luogu.com.cn/article/daqzhu5m &#xff08;在线膜拜作者的代码中&#xff09; 难度&#xff1a;普及- 对于笔者而言&#xff1a; 这道题在洛谷上通过率很高&#xff0c;…