Python、R银行信用卡客户流失机器学习预测热门文章合集

news/2024/11/20 20:28:08/文章来源:https://www.cnblogs.com/tecdat/p/18345986

原文链接:https://tecdat.cn/?p=37244

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

分析师: Cengjun Wang

目前,众多银行由于服务质量的降低、同业竞争的日益激烈等因素,面临着信用卡客户流失的棘手难题,这给银行经理施加了沉重的压力。而且,获取新的信用卡用户所需成本通常高于维持现有用户的成本。本文将通过展示银行信用卡客户流失机器学习预测的案例,并结合一系列Python、R银行信用卡客户流失机器学习预测热门文章合集实例的代码数据,为读者提供一套完整的实践数据分析流程。


然而,如果能够基于客户的部分个人信息,预测出具有潜在流失可能性的信用卡用户,就能够极大程度地降低银行成本,推测出当前在客户管理及业务方面可能存在的问题,进而为制定挽留策略提供有力依据。所以,我们的目标是通过持续不断地优化算法,尽可能精准地预测出信用卡的流失客户。

解决方案

任务/目标

计划采用 Python 搭建神经网络算法,并运用集成学习的思想构建随机神经网络模型,逐步优化算法的内部结构与超参数,解决原始数据集训练过程中出现的问题,以获取更出色的预测效果。

数据源准备

我们获取了 10000 位银行信用卡客户的数据,包含年龄、性别、年收入水平、婚姻状况、信用卡额度、信用卡类型、过去 12 个月的总交易数和总交易金额、是否为流失客户等 18 个变量。在是否流失客户这一变量中,存在诸如年龄、受扶养人数量、与银行的关系期、信用卡额度等连续变量,我们发现它们之间的数量级差异较大,后续在优化过程中会详细阐述如何处理这一问题。

数据预处理

样本不均衡问题

在前期的试验中我们发现,无论是运用 SVM、Logistic Regression 还是 Neural Network,最终测试集的准确率均在 85%上下波动(结果如下图)。


经查看数据集,我们发现样本中存在严重的样本不均衡问题,实际流失的客户比例仅占总体样本的 16.07%,即若模型将所有客户都预测为不流失,整体准确率仍会达到 84%,这与我们最初设定的目标完全相悖,并非我们期望的情况。
因此我们采用了两种方式进行处理,一是 resample, 二是 bootstrap

梯度消失

在训练神经元网络模型时,有时会出现权重调整速度缓慢的情况。下图是对其中一个样本进行五次迭代的结果,我们发现其最终输出结果几乎未发生改变,即模型将其预测为非流失客户,但该样本的真实值是流失客户。

我们认为此问题可能有两个原因:其一,sigmoid 函数自身在接近 0 和 1 时梯度极小,这是无法改变的;其二,使用未经标准化的数据(由于数量级太大)会导致初始值接近 1,而 sigmoid 函数的导数值接近 0,最终造成梯度消失的情况,这部分是可以控制的。
我们假定样本服从正态分布,对其进行统一标准化操作后,下图显示该样本初始的预测值不再出现几乎为 1 的情况,并成功通过梯度下降算法完成了正确预测。

标准化后,能够有效防止极端值的出现,并大幅提升运算效率。

建模

神经网络

随机神经网络(集成学习)

模型优化

调整损失函数、调整迭代次数(early stopping)、调整神经网络的其他参数(学习率、隐藏层层数、隐藏层节点数、激活函数)

对照实验


作为对照,我们调用了 scikit-learn 的 Logistic Regression 模型对这个二分类模型进行预测,然后用 AUC 的指标来横向比较不同模型的预测效果。结果表明,我们的神经网络模型的 AUC(0.93)优于 LR 模型的 AUC(0.91),同时我们的随机神经网络模型的 AUC 也能达到 0.91 的水平。

 Python、R银行信用卡客户流失预测热门文章合集

01

R语言逻辑回归模型的移动通信客户流失预测与分析

02

PYTHON用户流失数据挖掘:建立逻辑回归、XGBOOST、随机森林、决策树、支持向量机、朴素贝叶斯模型和KMEANS聚类用户画像

03

PYTHON中用PYTORCH机器学习神经网络分类预测银行客户流失模型

图片

04

R语言决策树和随机森林分类电信公司用户流失churn数据和参数调优、ROC曲线可视化

关于分析师

在此对Cengjun Wang对本文所作的贡献表示诚挚感谢。他在上海交通大学完成了商务数据科学专业学位,专注于商务数据分析和数据科学领域。Cengjun Wang擅长使用Python和SQL进行数据分析和处理,同时在决策树、神经网络和回归分析等数据科学领域有着深入的研究和实践经验。他的专业技能和对数据科学的深刻理解为本文的研究提供了宝贵的支持。

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

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

相关文章

AntDesignVue的a-tree实现selectable和checkable同步

无论是点击勾选框还是点击树中的title名称 选中逻辑同步<a-treecheckableselectablev-model:tree-data="treeData"v-model:selectedKeys="selectedKeys"v-model:checkedKeys="checkedKeys"@select="handleTreeSelect"></a-tr…

存储系统基本概念

存储器的层次化结构存储系统的分类 存储器的种类繁多,我们可以从不同的角度对存储器进行分类

线性丢番图方程

线性丢番图方程定理 设 \(a,b\) 是整数且 \(gcd(a,b) = d\). 如果 \(d\) 不能整除 \(c\) , 那么方程 \(ax+by=c\) 没有整数解, 如果\(d\) 可以整除 \(c\), 则存在无穷个解. 另外, 如果 \((x_0,y_0)\) 是方程的一个特解, 那么所有解都可以表示为 : \[x = x_0 + (\frac{b}{d})n, …

DFJX[2024] 游记

暑假第二次集训的记录……备战CSP-S ing…… 谨以此记,记录我们共同热爱的OI!洛谷食用 博客食用 这七天没什么事的话都会更新的(8.4-8.11) Day 0 集训, 因为在自己学校,总有种开学的感觉 也是提前住上九年级的新宿舍楼了,喜提一床+班长 下午到学校,食堂没给我们准备饭…

七层网络协议

应用层  应用层的作用是为应用程序提供服务并规定应用程序中通讯相关的细节,也就是为应用提供服务。常见的协议有 HTTP,FTP,TELNET、SMTP 等。 是用户与应用程序之间的接口。 相当于收件员。当客户(应用)打电话(发起请求)给收件员(应用层)时,收件员可以根据客户的不…

Qt/C++最新地图组件发布/历时半年重构/同时支持各种地图内核/包括百度高德腾讯天地图

一、前言说明 最近花了半年时间,专门重构了整个地图组件,之前写的比较粗糙,有点为了完成功能而做的,没有考虑太多拓展性和易用性。这套地图自检这几年大量的实际项目和用户使用下来,反馈了不少很好的建议和意见,经过这几年的整理,刚好趁着近期经济下行严重,抽出时间把整…

[WACV2022]Addressing out-of-distribution label noise in webly-labelled data

该论文考虑了一个现实的场景:数据集来自网络爬虫,即存在开集噪声OOD样本和闭集噪声ID样本。作者提出了一个简单但有效的策略:通过新设计的指标区分OOD样本,并对OOD样本软化(soften)弥补与干净样本的差距,该方法称为:Dynamic Softening of Out-of-distribution Samples …

异常处理

异常概述 程序中的异常: 在Java语言中,异常是指程序在运行期间发生的事件,它是导致程序中断运行的正常指令流。 例如,在算术运算中除数为0、数组越界、空指针异常等,这些事件的发生都会阻止程序的正常运行。 *示例:**演示除法运算*** public class MathCalc {public stat…

Matlab第一章

Matlab第一章 1.命令行窗口里写的命令,当文件关闭时命令行窗口和工作区内容消失。 2.想要保存代码,方法是: 新建脚本->写代码->保存->运行 3.脚本语言 (1)clear;清空工作区 clc;清空命令行窗口 x=20; y=30; x+y(2)clear; clc; x=20; y=30; x+y;如果x+y有分号则…

【题解】暑假集训CSP提高模拟14

目录Rank&挂分A. BA题目内容部分分10pts10+20pts正解思路代码B. BB题目内容部分分5pts正解思路代码C. BCD. BD Rank&挂分T4暴搜后来改了记搜,不知道哪里锅了,挂5pts。 A. BA 题目内容 现在有 \(m\) 块烙板,\(n\) 张饼,第 \(i\) 张饼需要烙 \(a_i\) 个单位时间,一张…