论文解析_客户分组对商业银行个人信用评分模型的提升作用研究,作者张亚京-中国人民银行征信中心博士后工作站

作者Toby,原文来源公众号:python风控模型,论文解析_客户分组对商业银行个人信用评分模型的提升作用研究

经典分组模型论文

大家好,我是Toby老师,之前发布过文章《银行客户分群模型-customer segmentation model-更好提升模型预测能力》。今天会为大家解析一篇客户分群论文。2021年有篇经典论文《客户分组对商业银行个人信用评分模型的提升作用研究》发布。其作者在中国人民银行征信中心博士后工作站工作,发布过多篇金融风控相关论文,在此论文有较深研究,其论文有一定深度。各位学员可以多关注和学习。

图片

此论文下载量较高,达到599。该论文得到国家三个基金资助,包括国家自然科学基金重点项目(71731003);国家自然科学基金项目(72071026); 中国博士后科学基金资助项目(2020M680804)

下面我简单解析一下论文经典地方。作者将总体样本进行分组,再对分组后的每个客群单独构建信用评分模型。作者采用 CART 决策树、模糊 C 均值聚类两种方法对样本数据中全部借款人进行客户分组,再对 分 组 后 的 每 个 客 群 进 行 WOE(Weight ofEvidence)数值转换和逻辑回归信用评分模型的构建,并采用模型性能指标AUC(Area Under Curve)、KS(Kolmogorov-Smirnov)进行模型对比,分析分组对于模型精度的影响,并比较无监督学习与有监督学习在分组模型中的优劣。

图片

分组模型意义

实际建模中,很多建模人员往往只重视机器学习技术,算法本身,试图从多算法比较,调参来提高模型性能,而忽略了如何从业务方面提升模型性能。

市场细分是知识营销最重要的领域之一。在银行中,这确实是一项具有挑战性的任务,因为数据库庞大且多维。

分组在我们专业领域也可以称为分群。客户分组是信用评分模型开发的重要一环,即根据客户特点将样本划分为不同客群,再针对每个客群构建信用评分卡。相较于直接使用全样本构建的单一信用评分模型,分组后构建的信用评分模型可能在一定程度上提升评分模型的准确率。

数据选择和划分

作者选取美国网络借贷平台 Prosper 的个人贷款数据集,样本时间跨度为2011年7月至2014年 7 月,共 71 817 个样本。作者抽取 80%的样本为训练集,20%的样本为测试集,如表1所示。将逾期90天以上的样本作为违约坏客户,令 y=1;其余为好客户,令y=0。Prosper数据集之前Toby老师有发文章介绍《美国真正的p2p鼻祖-PROSPER金融科技公司-理想风控建模数据集》。金融领域很多人长期把lendingclub当成美国p2p鼻祖。真相是Prosper公司才是美国真正意义上p2p鼻祖。lendingclub只是名气更大,让人产生错觉。Prosper Marketplace, Inc.是一家位于加利福尼亚州旧金山的金融服务公司。Prosper Funding LLC 是其子公司之一,运营着 Prosper.com,这是一个个人可以申请借钱、开信用卡或投资个人贷款的网站。

Prosper数据集在我们公司《Python风控建模实战案例数据库》里可以找到。

CART分类(有监督学习)

作者用CART模型把客户分为4组结果。参数选择上,作者用基尼系数评估变量重要性,叶子节点最小样本数min_sample设为5000,depth深度设为3。

CART(Classification and Regression Trees)模型是一种决策树学习技术,用于分类和回归任务。CART模型通过递归地将数据集分割成越来越小的组(或节点),每个组内的样本在目标变量上具有高度的相似性。

图片

Toby老师补充一下CART更多细节,CART使用基尼不纯度(Gini impurity)或交叉熵作为分割标准。在回归问题中,CART使用均方误差(MSE)作为分割标准。CART通常使用成本复杂度剪枝(cost-complexity pruning),这是一种在构建树之后进行的剪枝方法,旨在优化模型的泛化能力。

'''
在这段代码中,我们使用了鸢尾花(Iris)数据集来训练和测试CART模型。我们创建了一个DecisionTreeClassifier对象,并指定了使用基尼不纯度(Gini index)作为分割标准。然后,我们训练模型并预测测试集,最后计算了模型的准确率。
代码问题反馈方式,QQ:231469242,微信:drug666123
'''
from sklearn.tree import DecisionTreeClassifier
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score# 加载数据集
iris = load_iris()
X = iris.data
y = iris.target# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)# 创建CART模型
cart_model = DecisionTreeClassifier(criterion='gini', random_state=42)# 训练模型
cart_model.fit(X_train, y_train)# 预测测试集
y_pred = cart_model.predict(X_test)# 计算准确率
accuracy = accuracy_score(y_test, y_pred)
print(f'Accuracy: {accuracy:.4f}')

模糊聚类Fuzzy Clustering(无监督学习)

作者使用模糊聚类方法,把数据集分为5组客群。提醒一下,模糊聚类之前,需要将数据进行归一化,本文采用“最大值最小值”方法将数据转化为 0 到 1 之间。

下图是作者采用模糊聚类(Fuzzy Clustering)后坏客户占比和样本比例。

图片

实验结果来看,模糊聚类在测试集的AUC略高于cart算法,accuracy稍差。

图片

模糊聚类(Fuzzy Clustering)是一种统计方法,用于将数据集中的样本划分为多个类别或簇,同时考虑到样本可能属于多个类别的程度。这种方法特别适用于处理具有不确定性或模糊性的分类问题。

基本原理

模糊聚类的核心思想是使用模糊集合理论来描述样本与类别之间的关系。在模糊聚类中,每个样本对于每个类别都有一个隶属度,表示样本属于该类别的程度。隶属度的取值范围在0到1之间,1表示完全属于该类别,0表示完全不属于。

常见算法

  1. 模糊C均值聚类(Fuzzy C-Means, FCM)

    • 这是最常用的模糊聚类算法之一。它通过迭代优化一个目标函数来确定样本的隶属度和类别中心。算法的目标是最小化样本与类别中心之间的加权距离的平方和。作者论文中使用的就是此方法。 

  2. 模糊C中心聚类(Fuzzy C-Centroid)

    • 与FCM类似,但更侧重于类别中心的确定。

  3. 模糊C均值聚类算法的改进版本

    • 包括模糊C均值聚类算法的多种改进版本,如模糊C均值聚类算法的改进版本,它们通过引入不同的距离度量、隶属度函数或优化策略来提高聚类性能 .

Python:使用scikit-fuzzy库可以实现模糊聚类(Fuzzy Clustering)

'''
pip install scikit-fuzzy
在这段代码中,我们首先生成了一些随机数据作为示例。然后,我们定义了模糊聚类的参数,包括聚类个数、隶属度的幂指数、误差阈值和最大迭代次数。接着,我们使用cluster.cmeans函数执行模糊C均值聚类,并绘制了聚类结果。
请注意,这个示例代码提供了一个基本的框架,你可能需要根据实际的数据集和问题进行调整。此外,你可以尝试不同的参数(如n_clusters和m)来观察聚类效果的变化。代码问题反馈方式,QQ:231469242,微信:drug666123
'''
import numpy as np
import matplotlib.pyplot as plt
from skfuzzy import cluster# 创建一些随机数据
data = np.random.rand(100, 2)# 定义模糊聚类的参数
n_clusters = 3  # 聚类个数
m = 2  # 隶属度的幂指数
error = 0.005  # 误差阈值
maxiter = 1000  # 最大迭代次数# 执行模糊C均值聚类
cntr, u, u0, d, jm, p, fpc = cluster.cmeans(data, n_clusters, m, error=error, maxiter=maxiter, init=None)# 绘制聚类结果
plt.scatter(data[:, 0], data[:, 1], c=p[:, 0], cmap='viridis', edgecolor='k', s=50, alpha=0.5)
plt.scatter(cntr[:, 0], cntr[:, 1], c='red', s=200, edgecolor='k', marker='x')  # 聚类中心
plt.title('Fuzzy C-Means Clustering')
plt.xlabel('Feature 1')
plt.ylabel('Feature 2')
plt.show()

实战中分群模型更复杂

上述论文《客户分组对商业银行个人信用评分模型的提升作用研究》只给我们展示了部分实验数据,并没有显示所有数据。实战中分群模型更复杂,分群模型并不一定能提升模型性能。有时候可以,有时候反而更低。这取决于分类方法,变量选择和数据分布。

样本分群后,也不意味着每个分群子模型性能都能得到提高。Toby老师在分群模型实验中发现,部分分群子模型性能可以提高,其它子模型会降低。

在大量实验中,有监督学习的模型效果会明显高于无监督学习模型,此论文的结论不一定适用于其它数据集,泛化能力有待进一步验证。

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

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

相关文章

软件设计之Maven(2)

软件设计之Maven(2) 路线图推荐: 【Java学习路线-极速版】【Java架构师技术图谱】 尚硅谷新版Maven教程(高效入门maven,上手又快又稳) 资料可以去尚硅谷官网免费领取 学习内容: 依赖管理版本统一及维护依赖范围Buil…

【RabbitMQ】面试题

在本篇文章中,主要是介绍RabbitMQ一些常见的面试题。对于前几篇文章的代码,都已经在码云中给出,链接是mq-test: 学习RabbitMQ的一些简单案例 (gitee.com),如果存在问题的话欢迎各位提出,望共同进步。 MQ的作用以及应用…

【Redis】持久化机制--RDB和AOF

目录 1. RDB持久化 1.1 触发机制 1.2 流程说明 1.3 RDB文件的处理 1.4 RDB机制演示 1.5 RDB的优缺点 2. AOF持久化 2.1 使用AOF与基本演示 2.2 AOF的工作流程 2.3 文件同步(缓冲区刷新策略) 2.4 重写机制 2.5 AOF重写流程 2.6 启动时数据恢复 …

时序必读论文13|ICLR24 “又好又快”的线性SOTA时序模型FITS

论文标题:FITS: Modeling Time Series with 10k Parameters 开源代码:https://anonymous.4open.science/r/FITS/README.md 前言 FITS(Frequency Interpolation Time Series Analysis Baseline)这篇文章发表于ICLR2024&#xff…

Python自动化脚本,工作实现自动化附代码

Python是一种流行的编程语言,以其简洁和易读性而闻名。它提供了大量的库和模块,使其成为自动化各种任务的绝佳选择。 我们将探讨9个Python脚本及其代码,可以帮助您自动化各种任务并提高工作效率。无论您是开发人员、数据分析师还是只是想简化…

[EBPF] 实时捕获DM数据库是否存在SQL阻塞

1. 介绍 eBPF(extened Berkeley Packet Filter)是一种内核技术,它允许开发人员在不修改内核代码的情况下运行特定的功能。eBPF 的概念源自于 Berkeley Packet Filter(BPF),后者是由贝尔实验室开发的一种网…

Linux系统进程控制

目录 一、进程创建 1.进程创建过程 2.写时拷贝 3.fork函数的两种常规用法 二、进程终止 1.进程终止的三种情况 2.进程退出信息 (1)退出码 (2)退出信号 3.进程终止的方式 三、进程等待 1.为什么要有进程等待&#xff1f…

5个最佳开源RPA框架之一UI.Vision介绍

博主介绍: 大家好,我是Yuperman,互联网宇宙厂经验,17年医疗健康行业的码拉松奔跑者,曾担任技术专家、架构师、研发总监负责和主导多个应用架构。技术范围: 目前专注java体系,以及golang、.Net、…

Golang优雅关闭gRPC实践

本文主要讨论了在 Go 语言中实现gRPC服务优雅关闭的技术和方法,从而确保所有连接都得到正确处理,防止数据丢失或损坏。原文: Go Concurrency — Graceful Shutdown 问题 我在上次做技术支持的时候,遇到了一个有趣的错误。我们的服务在 Kubern…

webshell-HTTP常见特征

一、总体特点 二、蚁剑 数据中可以看到一些明文字符串函数,响应中可以看到响应的明文数据。 ant特征以及对数据base64可以解码 chr类别的会出现大量的chr编码 大量的百分号字符 三、哥斯拉 第一个请求包很大 响应为0 密钥被拆分到数据前后 响应包cookie带&#xf…

SUP-NeRF-ECCV2024: 单目3D对象重建的新突破

2024-09-25,由Bosch Research North America和Michigan State University联合发布的SUP-NeRF,是一个基于单目图像进行3D对象重建的新型方法。一个无缝集成姿态估计和物体重建的统一网格。 ECCV:欧洲计算机视觉会议的缩写,它是计算…

Rust 语言开发 ESP32C3 并在 Wokwi 电子模拟器上运行(esp-hal 非标准库、LCD1602、I2C)

文章目录 esp-rs 简介GithubRust 包仓库Wokwi 电子模拟器开发环境Rust 环境esp-rs 环境创建 ESP32C3 项目项目结构编译项目命令运行模拟器ESP32C3 烧录 esp-rs 简介 esp-rs 是一个专注于为 Espressif 系列芯片(如 ESP32、ESP32-S2、ESP32-C3 等)提供 Ru…

学日语必备神器!这4款翻译APP你用过吗?

小伙伴们,你们有没有在日常生活或工作中遇到过需要翻译日语的场景呢?无论是阅读日本原著、工作文档还是和日本小伙伴交流,一个好的翻译工具绝对能成为你的贴心小助手;今天,我就来跟大家分享几款我个人非常喜欢的日语翻…

2024年合肥市职业院校技能大赛(中职组)赛 网络安全 竞赛样题

2024年合肥市职业院校技能大赛(中职组)赛 网络安全 竞赛样题 (总分100分) 培训、环境、资料、考证 公众号:Geek极安云科 网络安全群:624032112 网络系统管理群:223627079 网络建设与运维群:870959784 极安云科专注于技能提升&am…

数据结构与算法——Java实现 19.队列

目录 一、概述 二、链表实现队列 接口定义 接口实现类 测试类 三、环形数组实现队列 优点 下标计算 判满和判空 判满 判空 辅助变量size判空和判满 方法1 接口定义 接口实现类 测试类 方式2 接口定义 接口实现类 测试类 方法3 接口定义 接口实现类 测试类 生活鲜少给人留下退…

Nginx配置及部署前端项目,安排!

哈喽小伙伴们大家好!我是程序媛小李,一位正在往全栈方向发展的前端小姐姐,今天给大家分享一下在日常编码中我们是怎么使用nginx来部署前端项目的! Nginx安装 浏览器输入nginx,来到官网 右边找到doewnload&#xff0c…

短剧向左,体育向右,快手前途未卜?

最近,辗转于多项业务的快手收到了来自于市场“寓褒于贬”的评价。 麦格理发表报告表示,短剧业务正成为快手近期新的增长动力,亦维持对快手的正面看法,给予“跑赢大市”评级,预期上市前投资者出售2%股份对基本面没有太…

掌握AI提示词的艺术:应用、防护与成为提示词专家的策略

掌握好提示词的编写,可以用来做的事情: 写简历、输出面试题、输出ppt、思维导图、提取摘要、翻译、总结会议纪要、总结审计报告、数据分析、写广告/营销/请假等跟文字相关的文案、爆款文章、小说、写周报/月报。 如何写提示词 4大原则 1、 指令要精简…

Python精选200Tips:176-180

针对图像的经典卷积网络结构进化史及可视化 P176--LeNet-5【1988】模型结构说明模型结构代码模型结构可视化 P177--AlexNet【2012】模型结构及创新性说明模型结构代码模型结构可视化 P178--VGGNet【2014】VGG19模型结构及创新性说明VGG19模型结构代码VGG19模型结构可视化 P179-…

广东自闭症寄宿学校:为大龄自闭症儿童提供全寄宿制教育

在广东这片温暖的土地上,有一类特殊的孩子,他们以自己独特的方式感知世界,却往往因为自闭症的障碍而在成长的道路上步履维艰。为了给予这些大龄自闭症儿童更加全面、专业的关怀与教育,广东地区涌现出了一批自闭症寄宿学校&#xf…