【视频讲解】数据挖掘实战:Python金融贷款模型分类潜在贷款客户

news/2024/11/15 2:02:40/文章来源:https://www.cnblogs.com/tecdat/p/18385289

全文链接:https://tecdat.cn/?p=37521

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

分析师:Hengtao Fan

模型的存在依托于这样一个事实:基于概率的决策乃是最优之选。将概率转化为评分,能够便于对齐风险。而评分则是通过统计的方法来识别潜在客户,进而判断客户是否合乎心意。这里的 “合意” 由我们预先定义,可以涵盖诸如风险、收益率、响应率、续借意愿、违约后的偿还意愿等等诸多方面。

实际上,在业务的一系列环节中均可采用模型方案。当我们谈及风控中有哪些模型可做时,也就相当于在变相探讨业务上有哪些环节能够进行精细化决策。

在金融信贷领域,授信、定价等产品信息会直接左右客户是否选择用信。此外,客户自身的需求程度、竞品授信定价信息、自身经济能力、家庭环境等因素也都会对用信行为产生影响。对于放贷机构而言,在授信额度 / 定价处于允许范围内时(例如额度越高,风险也会相应升高),期望能够提高整体用信率,从而扩大业务规模。如此一来,如果能够提前预测出用户的用信概率,便可以将其用于指导运营活动和授信定价策略,以促进业务的增长。

在这个项目中,我们对如何使用分类模型来分辨客户是否会贷款进行了深入分析。

一、贷款对银行的重要性

贷款对于银行维持业务至关重要。为什么呢?因为货币是银行的产品!银行的主要业务包括吸收存款和发放贷款。存款人和贷款人分别与银行形成特定的关系。

存款人将资金存入银行,银行支付一定的利息(例如 3%)。而贷款人从银行获得贷款,并支付更高的利息(例如 8%)。银行通过这种利息差获取利润。

二、识别银行客户的重要性

(一)有贷款需求的客户
给予更多时间来促成贷款,以获得更有效的客户,增加市场竞争力。

(二)无贷款需求的客户
优先联系以确保时效性,但无需投入过多精力。此类客户价值较低且缺乏竞争力,不确定性较高,应最后联系以减少损失。

三、项目的必要性

对于任何企业来说,创造收入都是至关重要的。银行也是如此,发放贷款是银行获取收入的最重要方式之一。银行需要快速识别有贷款需求的用户,以便确定客户是否会贷款,同时考虑客户属性、贷款属性、联系属性以及社会和经济属性等因素,从而为银行创造收入。

四、业务问题及预期结果

(一)业务问题
准确识别有贷款需求的客户是关键问题。影响因素包括客户违约历史、家庭贷款历史、个人贷款历史、就业环境等。目前,识别有贷款需求客户的比例为 30%,期望未来能达到 90% 以上。

(二)预期结果
期望通过本项目能够识别更多有贷款需求的客户,为银行带来更多收入。

五、分析方法

关键问题是将每个观察对象(客户)分类为两类(会贷款 / 不会贷款)之一,这是一个二元分类问题。采用逻辑回归和决策树两种方法进行分析。

逻辑回归模型:
决策树:从根节点开始,根据条件进行分支,最终到达叶节点,每个叶节点代表一个分类结果。

两种方法都是为了将每个观察对象准确分类。

六、数据筛选与描述

在建模之前,需要选择满足逻辑回归和决策树数据要求的数据。本项目中,银行特别关注客户属性、贷款属性和宏观环境是否会影响客户的贷款需求。例如,在经济衰退时期,客户更有可能贷款。通过比较箱线图确定相关性,选择相关性高的特征。

七、分析计划

(一)模型构建

  1. 数据转换:
    • 本数据集无空值。
    • 平衡数据。
    • 对一些连续特征进行转换,使其值位于 0~1 区间,消除不同取值范围的影响。
    • 将输出变量从 “是” 和 “否” 转换为 0 和 1。
    • 将数据集分为训练集和测试集。
  2. 模型迭代与优化:
    • 选择本项目中要使用的变量子集。
    • 描述输出(分类)变量的分布(使用柱状图)。
    • 报告连续输入变量的均值、中位数和标准差等值。

(二)结果(数据转换)
创建平衡的训练集和测试集,对连续变量进行单位转换,使其值位于 0~1 区间;对分类变量进行因子转换,去除 “未知” 属性;转换输出变量。经过数据平衡和去除未知数据后,若某个变量失去分类意义则将其去除。

八、建议

经济状况对银行贷款业务有至关重要的影响。从两种模型来看,在经济良好时,银行应尽可能多地联系客户(此时客户类型不重要);在经济衰退时,应避免大规模寻找客户,而应寻找高净值、有贷款需求的个人,如已婚、高学历、无抵押贷款和个人贷款的人,因为他们违约的可能性较低。在经济繁荣时联系更多客户以获取更多利润,在经济低迷时联系更多优质客户,以实现项目目标:识别更多有贷款需求的客户并创造更多收入。

Python决策树、随机森林、朴素贝叶斯、KNN(K-最近邻居)分类分析银行拉新活动挖掘潜在贷款客户

最近我们被客户要求撰写关于银行拉新活动的研究报告,包括一些图形和统计输出。

项目背景:银行的主要盈利业务靠的是贷款,这些客户中的大多数是存款大小不等的责任客户(存款人)。银行拥有不断增长的客户

该银行希望增加借款人(资产客户),开展更多的贷款业务,并通过贷款利息赚取更多利润。因此,银行希望将负债的客户转换为个人贷款客户。(同时保留他们作为存款人)。该银行去年针对负债客户开展的一项活动显示,成功实现了9%以上的成功转化率。该部门希望建立一个模型,来帮助他们确定购买贷款可能性更高的潜在客户。可以增加成功率,同时降低成本。

数据集

下面给出的文件包含5000个客户的数据  查看文末了解数据获取方式  。数据包括客户人口统计信息(年龄,收入等),客户与银行的关系(抵押,证券账户等)以及客户对上次个人贷款活动的因变量(个人贷款)。在这5000个客户中,只有480个(= 9.6%)接受了先前活动中提供给他们的个人贷款

data.head()

图片

data.columns

图片

属性信息

属性可以相应地划分:

  • 变量 ID 一个人的客户ID与贷款之间没有关联,也无法为将来的潜在贷款客户提供任何一般性结论。我们可以忽略此信息进行模型预测。

二进制类别具有五个变量,如下所示:

  • 个人贷款-该客户是否接受上一个广告系列提供的个人贷款? 这是我们的目标变量
  • 证券帐户-客户在银行是否有证券帐户?
  • CD帐户-客户在银行是否有存款证明(CD)帐户?
  • 网上银行-客户是否使用网上银行?
  • 信用卡-客户是否使用银行发行的信用卡?

数值变量如下:

  • 年龄-客户的年龄
  • 工作经验
  • 收入-年收入(元)
  • CCAvg-平均信用卡消费
  • 抵押-房屋抵押价值

有序分类变量是:

  • 家庭-客户的家庭人数
  • 教育程度-客户的教育程度

标称变量是:

  • ID
  • 邮政编码
data.shape

图片

 

图片

 
  1.  
    # 文件中没有列有空数据
  2.  
    data.apply(lambda x : sum(x.isnull()))
 

图片

 

图片

 

图片

两两变量散点图

图片

  • 年龄 特征通常是分布的,大多数客户年龄在30岁到60岁之间。
  • 经验 大多分布在8年以上经验的客户。这里的 平均值 等于中 位数。有负数 。这可能是数据输入错误,因为通常无法衡量负数的工作经验。我们可以删除这些值,因为样本中有3或4条记录。
  • 收入出现 正偏斜。大多数客户的收入在45,000到55K之间。我们可以通过说平均值 大于 中位数来确认这一点
  • CCAvg 也是一个正偏变量,平均支出在0K到10K之间,大多数支出不到2.5K
  • 抵押 70%的人的抵押贷款少于4万。但是最大值为635K
  • 家庭和教育变量是序数变量。家庭分布均匀

有52条记录经验为负数。在进一步进行之前,我们需要对这些记录进行清理

 

有52条负数经验的记录

图片

以下代码执行以下步骤:

  • 对于具有ID的记录,获取Age column的值
  • 对于具有ID的记录,获取Education column的值
  • 从具有正数经验的记录的数据框中过滤符合以上条件的记录,并取中位数
  • 将中位数填充原本负数经验的位置
 
  1.  
    data.loc[np.where(['ID']==id)]["Education"].tolist()[0]
  2.  
    df_filtered['Experience'].median()
  3.  
    # 检查是否有负数经验的记录
  4.  
    data[data['Experience'] < 0]['Experience'].count()
 
 

图片

收入和教育对个人贷款的影响

 

图片

观察 :看来教育程度为1的客户收入更高。但是,接受了个人贷款的客户的收入水平相同

图片

推论 :从上图可以看出,没有个人贷款的客户和拥有个人贷款的客户的抵押贷款较高。

图片

观察 :大多数没有贷款的客户都有证券账户

图片

观察:家庭人数对个人贷款没有任何影响。但是似乎3岁的家庭更有可能借贷。考虑未来的推广活动时,这可能是一个很好的观察结果。

图片

观察:没有CD帐户的客户,也没有贷款。这似乎占多数。但是几乎所有拥有CD帐户的客户也都有贷款

图片

图片

观察:该图显示有个人贷款的人的信用卡平均费用更高。平均信用卡消费中位数为3800元,表明个人贷款的可能性更高。较低的信用卡支出(中位数为1400元)不太可能获得贷款。这可能是有用的信息。

图片

观察 上图显示与经验和年龄呈正相关。随着经验的增加,年龄也会增加。颜色也显示教育程度。四十多岁之间存在差距,大学以下的人也更多

 
  1.  
    # 与热图的关联性
  2.  
     
  3.  
    corr = data.corr()
  4.  
    plt.figure(figsize=(13,7))
  5.  
    # 创建一个掩码,以便我们只看到一次相关的值
  6.  
     
  7.  
    a = sns.heatmap(corr,mask=mask, annot=True, fmt='.2f')
 

图片

观察

  • 收入和CCAvg呈中等相关。
  • 年龄和工作经验高度相关
 

看下面的图,收入低于10万的家庭比高收入的家庭更不可能获得贷款。

图片

应用模型

将数据分为训练集和测试集

 
  1.  
    train_labels = train_set
  2.  
    test_labels = test_set
 

决策树分类器

 
  1.  
    DecisionTreeClassifier(class_weight=None, criterion='entropy', ...)
  2.  
    dt_model.score
  3.  
    0.9773333333333334
  4.  
    dt_model.predict(test_set)
 
 

查看测试集

test_set.head(5)

图片

朴素贝叶斯

 
  1.  
    naive_model.fit(train_set, train_labels)
  2.  
    naive_model.score
  3.  
    0.8866666666666667
 

随机森林分类器

 

图片

 
  1.  
    randomforest_model.score(test_set,test_labels)
  2.  
    0.8993333333333333
 

KNN(K-最近邻居)

 
  1.  
    data.drop(['Experience' ,'ID'] , axis = 1).drop(labels= "PersonalLoan" , axis = 1)
  2.  
    train_set_dep = data["PersonalLoan"]
  3.  
    acc = accuracy_score(Y_Test, predicted)
  4.  
    print(acc)
  5.  
    0.9106070713809206
 

模型比较

 
  1.  
    for name, model in models:
  2.  
    kfold = model_selection.KFold(n_splits=10)
  3.  
    cv_results = model_selection.cross_val_score(model, X, y, cv, scoring)
  4.  
     
  5.  
     
  6.  
    # 箱线图算法的比较
  7.  
    plt.figure()
 

图片

图片

图片

结论

通用银行的目的是将负债客户转变为贷款客户。他们想发起新的营销活动;因此,他们需要有关数据中给出的变量之间的有联系的信息。本研究使用了四种分类算法。从上图可以看出,随机森林 算法似乎 具有最高的精度,我们可以选择它作为最终模型。


图片

本文选自《Python决策树、随机森林、朴素贝叶斯、KNN(K-最近邻居)分类分析银行拉新活动挖掘潜在贷款客户》。

关于分析师

在此对 Hengtao Fan 对本文所作的贡献表示诚挚感谢,他在昆士兰大学完成了商业分析与信息系统双专业的学位,专注数据分析、机器学习、Python 文本分析、数据建模(ANN、KNN、NB、决策树和随机森林等)领域。擅长 R 语言、Python、Excel、Office、SQL。

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

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

相关文章

源代码管理器tfs转git并保留历史提交记录

1、到GitHub https://github.com/git-tfs/git-tfs/releases 下载最新版本的GitTfs工具 2、下载的压缩包解压,并将压缩包路径添加到系统的环境变量 3、执行 git-tfs -help 有输出就可以了,程序就可以使用了 4、新建一个目录,用户拉取tfs代码并生成tfs提交记录 语法:git-tf…

python3安装编译_tkinter模块丢失

1.make的时候报缺少_tkinter模块,上一步./configure已经checking发现_tkinter missing 2.安装tk、tcl相关的包,包括python3-tk仍然没有解决问题。讲相关库移到/usr/lib也没解决问题。3.查看./configure的命令行参数,在环境变量中有两个参数:TCLTK_CFLAGSC compiler flags f…

来自OpenAI官网的Function calling介绍与最佳实践

学习如何将大型语言模型连接到外部工具。 介绍 函数调用允许您将模型如gpt-4o与外部工具和系统连接起来。这对于许多事情都很有用,比如为AI助手赋能,或者在你的应用程序与模型之间建立深度集成。 在2024年8月,我们推出了结构化输出功能。当你在函数定义中通过设置strict: tr…

局域网内两台设备只有一方可以ping通问题解决

场景 局域网内有两台笔记本,都是windows系统,都是连接的同一个路由器,在同一个网段中。 但是其中的一台笔记本192.168.1.101,另外一台是192.168.1.100 ping命令测试发现192.168.1.101无法ping通192.168.1.100这是为什么呢? 排查与修复 首先的两台电脑为了安全,防火墙都是…

prometheus学习笔记之cAdvisor

一、cAdvisor简介监控Pod指标数据需要使⽤cadvisor, cadvisor由⾕歌开源, cadvisor不仅可以搜集⼀台机器上所有运⾏的容器信息,还提供基础查询界⾯和http接⼝,⽅便其他组件如Prometheus进⾏数据抓取cAdvisor可以对节点机器上的资源及容器进⾏实时监控和性能数据采集,包括C…

国产化适配——人大金仓V8R6(1)

本文主要记录kingbase安装及存储过程修改相关内容,或有错漏,请指正。 原数据库:Mysql8.0.31 现数据库:KingbaseES V008R006C008M001B0030 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-28), 64-bit 一、kingbase安装1.安装前准备 1.1查看…

南沙区信奥赛CSP-J/S 陈老师解题:1350:【例4-11】最短网络(agrinet)

​【题目描述】农民约翰被选为他们镇的镇长!他其中一个竞选承诺就是在镇上建立起互联网,并连接到所有的农场。当然,他需要你的帮助。约翰已经给他的农场安排了一条高速的网络线路,他想把这条线路共享给其他农场。为了用最小的消费,他想铺设最短的光纤去连接所有的农场。你…

从零开始带你玩转 AI 变现公开课

在这个数字化时代,AI技术正以前所未有的速度改变着我们的创作与变现方式。小红书,作为年轻人喜爱的社交电商平台,更是为创作者们提供了广阔的舞台。但如何在小红书上利用AI技术实现内容创作与收益转化的双赢?我们的公开课将为你一一揭晓答案! 主课程亮点:掌握DALLE模型文…

C++基础/C++中的多态(关于虚...)

C++中的多态(关于虚...) 1.前置基础知识 1.1对象是如何存储在内存中的 #include <iostream> #include <string>class Animal { private:string name;int age;public:Animal(std::string name, int age) : name(name), age(age) {};~Animal();virtual void eat() …

算法与数据结构——哈希算法

哈希算法 前面介绍了哈希表的工作原理和哈希冲突的处理方法。然而无论是开放寻址还是链式地址,它们只能保证可以在发生冲突时正常工作,而无法减少哈希冲突的发生。 如果哈希冲突过于频繁,哈希表的性能则会急剧劣化。如下图所示,对于链式哈希表,理想情况下键值对均匀分布在…

Proxyless的多活流量和微服务治理

1. 引言 1.1 项目的背景及意义 在当今的微服务架构中,应用程序通常被拆分成多个独立的服务,这些服务通过网络进行通信。这种架构的优势在于可以提高系统的可扩展性和灵活性,但也带来了新的挑战,比如:服务间通信的复杂性:不同服务之间需要进行可靠的通信,处理失败重试、负…

报表融合大屏,做不一样的财务分析!

冷冰冰的数据如何让人眼前一亮? 千篇一律的表格如何让数据可视化? ...... 赶快丢掉那些传统的表格工具吧!!!现在我们都用更智能的工具来做报表了!财务报表是什么? 财务报表是企业财务状况、经营成果及现金流量的综合反映,通过表格、图表等形式,系统地展示了企业在一定…