金融评分卡项目—2.银行客户流失预警模型介绍(单因子与多因子分析)
文章目录
- 引言
- 一、银行业客户群体与产品的类别
- 二、客户流失预警模型的业务意义
- 三、数据介绍与描述
- 1.单因子分析之连续变量
- 2.单因子分析之类别变量
- 3.多因子分析
- 金融评分卡项目—3.流失预警模型中的数据预处理与特征衍生
- 金融评分卡项目—4.GBDT模型在流失预警模型中的应用
- 金融评分卡项目—5.神经网络模型在银行业客户流失预警模型中的应用—MLP
引言
下面使用的是jupyter notebook,完整代码解析见Github:https://github.com/Libra-1023/data-mining/blob/master/Bank_customer_churn/Bank_customer_churn_EDA.ipynb
一、银行业客户群体与产品的类别
银行的客户总体上可分为个人客户与公司客户。
银行对个人客户的业务主要是以合理安排客户的个人财务为手段,为之提供存取款、小额贷款、代理投资理财、信息咨询以及其他各类中介服务,由此为客户取得收益,并帮助其防范风险,同时提高银行自身效益。
公司客户指与银行发生业务关系的各企事业单位及政府机关,其中以企业单位为主体。公司客户能为银行带来大量的存款,贷款和收费业务,并成为银行利润的重要来源。
零售客户一般分为以下5种:
银行的业务一般分为资产类业务与负债类业务。
银行信贷类资产业务:
- 信用贷款
- 抵押贷款—分为存货抵押贷款与不动产抵押贷款
- 保证书担保贷款
- 贷款证券化
银行负债类业务:
- 活期存款
- 定期存款
- 储蓄存款
- 可转让定期存单
- 其他种类
二、客户流失预警模型的业务意义
严格来讲,客户流失指的是客户在该行所有业务终止并销号。但是具体业务部门可单独定义在该部门的全部业务或某些业务上,客户的终止行为。
研究结果表明:商业银行客户流失比较严重,国内商业银行,客户流失率可达到20%甚至更高。而获得新客户的成本,可达维护现有客户的5倍。因此,从海量的客户交易记录中挖掘出对流失有影响的信息,建立高效的客户流失预警体系尤为重要。
客户流失的主要原因包括:
- 价格流失
- 产品流失
- 服务流失
- 市场流失
- 促销流失
- 技术流失
- 政治流失
维护客户关系的基本方法:
- 追踪制度
- 产品跟进
- 扩大销售
- 维护访问
- 机制维护
建立量化模型,合理预测客群的潜在流失风险
- 常用的风险因子
- 客户持有的产品数量、种类
- 客户的年龄、性别
- 受地理区域的影响
- 受产品类别的影响
- 交易的间隔时间
- 营销、促销手段
- 银行的服务方式和态度
三、数据介绍与描述
该数据集共17241例客户数据,其中有1741例流失样本,总流失率达到10.10%
数据分为两部分:银行自有字段、外部第三方数据
银行自有字段:
- 账户类信息
- 个人类信息
- 存款类信息
- 消费、交易类信息
- 理财、基金类信息
- 柜台服务、网银类信息
外部第三方数据:
- 外呼客户数据
- 资产类数据
- 其他消费类数据
1.单因子分析之连续变量
有效记录的占比—缺失率
# 提取出不含空值的包含自变量和因变量的数据集, np.nan != np.nanvalidDf = df.loc[df[col] == df[col]][[col,target]]# 非缺失度的百分比validRcd = validDf.shape[0]*1.0/df.shape[0]# 格式化非缺失度validRcdFmt = "%.2f%%"%(validRcd*100)
整体分布
初始分布与截断分布# 截断 if truncation == True:# 截断分布pcnt95 = np.percentile(validDf[col],95)# 将流失客户与非流失客户的存款额大于截断值的赋值于截断值x = x.map(lambda x: min(x,pcnt95))y = y.map(lambda x: min(x,pcnt95))
按目标变量分布的差异
方差分析:维基百科—方差分析
2.单因子分析之类别变量
有效记录的占比
validDf = df.loc[df[col] == df[col]][[col, target]] validRcd = validDf.shape[0]*1.0/df.shape[0] recdNum = validDf.shape[0] validRcdFmt = "%.2f%%"%(validRcd*100)
种类
整体分布
# 对类别型变量进行单因子分析 filepath = path+r'/单因子分析/类别型变量/' for val in stringCols:CharVarPerf(Alldata,val,'CHURN_CUST_IND',filepath)
按目标变量分布的差异
卡方检验:维基百科—卡方检验
chisqDf = Alldata[['GENDER_CD','CHURN_CUST_IND']]
grouped = chisqDf['CHURN_CUST_IND'].groupby(chisqDf['GENDER_CD']) # 分组
count = list(grouped.count())
churn = list(grouped.sum())
chisqTable = pd.DataFrame({'total':count,'churn':churn})
# 0.101为期望流失率,相乘即为期望流失人数
chisqTable['expected'] = chisqTable['total'].map(lambda x: round(x*0.101))
chisqValList = chisqTable[['churn','expected']].apply(lambda x: (x[0]-x[1])**2/x[1], axis=1)
# chisqVal即为卡方
chisqVal = sum(chisqValList)
3.多因子分析
变量之间由于业务关系、计算逻辑等业务存在一定的两两共线性,需要研究这种共线性并做适当的处理
- 信息的冗余
- 维护数据的成本
- 对某些模型存在一定的影响
# 使用短名称代替原始名称,因为原始名称太长而无法显示
col_to_index = {numericCols[i] : 'var'+str(i) for i in range(len(numericCols))}
# 在columns列表中取样,因为单个图无法显示太多的列
corrCols = random.sample(numericCols,15)
sampleDf = Alldata[corrCols]
for col in corrCols:sampleDf.rename(columns = {col : col_to_index[col]},inplace = True)
# 画散点矩阵图
# diagonal = 'hist' or 'kde',当diagonal = 'hist'时,为对角线直方图,当diagonal='kde'时,为核密度估计函数
# alpha=0.2为透明度
scatter_matrix(sampleDf, alpha=0.2, figsize=(6, 6), diagonal='kde')
如果对您有帮助,麻烦点赞关注,这真的对我很重要!!!如果需要互关,请评论留言!
金融评分卡项目—2.银行客户流失预警模型介绍(单因子与多因子分析)相关推荐
- 银行客户流失预警模型——业务分析及代码(实战)
DataMiningCase 点击跳转GitHub地址 流失预警模型(二分类),代码原型为本人在某银行做的流失模型,AUC:83%.召回率:19.4%,精确率:85%(数据是外部数据/代码已脱敏) 你 ...
- 金融风控-- >客户流失预警模型-- >金融数据分析
从这篇博文开始,我将介绍机器学习,深度学习在金融风控这个行业上的应用.其实机器学习,深度学习在一些相关场景上的应用,其解决方法都是大同小异,差不多都是固定的解决套路,但是需要结合这个场景这个行业领域的 ...
- 7.Python数据分析项目之银行客户流失分析
1.总结 预测类数据分析项目 流程 具体操作 基本查看 查看缺失值(可以用直接查看方式isnull.图像查看方式查看缺失值missingno).查看数值类型特征与非数值类型特征.一次性绘制所有特征的分 ...
- DataScience:风控场景之金融评分卡模型的构建(逻辑回归)开发(转评分卡)、使用过程(线上实现)之详细攻略
DataScience:风控场景之金融评分卡模型的构建(逻辑回归)&开发(转评分卡).使用过程(线上实现)之详细攻略 目录 风控场景之金融评分卡模型的构建(逻辑回归)&开发(转评分卡) ...
- DataScience:风控场景之金融评分卡模型的简介、构建(逻辑回归)开发(转评分卡)、使用过程(线上实现)之详细攻略
DataScience:风控场景之金融评分卡模型的简介.构建(逻辑回归)&开发(转评分卡).使用过程(线上实现)之详细攻略 目录 逻辑回归之金融评分卡模型的简介.构建.开发.使用过程 1.金融 ...
- 分类任务如何用逻辑回归实现_如何用逻辑回归构建金融评分卡模型?(上)
虽然现在出现了很多性能优秀的分类算法,包括svm,RF,GBDT,DNN等,作为最简单的分类算法,lr依然是工业界主流的分类算法之一.那么lr到底有什么魔力,即使面对如此众多的 "高手&qu ...
- ML之FE:风控场景之金融评分卡模型之利用LoR模型权重变量系数正负符号结合p-value/P值大小实现变量筛选
ML之FE:风控场景之金融评分卡模型之利用LoR模型权重变量系数正负符号结合p-value/P值大小实现变量筛选 目录 利用LoR模型权重变量系数正负符号结合p-value/P值大小实现变量筛选
- DataScience:风控场景之金融评分卡模型的简介、构建(逻辑回归)开发(转评分卡)、使用过程(线上实现)、完整流程之详细攻略
DataScience:风控场景之金融评分卡模型的简介.构建(逻辑回归)&开发(转评分卡).使用过程(线上实现).完整流程之详细攻略 目录 逻辑回归之金融评分卡模型的简介.构建.开发.使用过程 ...
- 金融IC卡项目正式启动
金融IC卡项目正式启动了,即将封闭3个月,认真将事情圆满完成. 由于这是技术性比较强的项目,做些日志作为工作备忘吧. 第一天,对前期需求的理解. PBOC2.0标准 根据我国银行卡芯片化计划要求,20 ...
- DataScience:基于GiveMeSomeCredit数据集利用特征工程处理、逻辑回归LoR算法实现构建风控中的金融评分卡模型
DataScience:基于GiveMeSomeCredit数据集利用特征工程处理.逻辑回归LoR算法实现构建风控中的金融评分卡模型 目录 基于GiveMeSomeCredit数据集利用特征工程处理. ...
最新文章
- 【深度学习】(8) CNN中的通道注意力机制(SEnet、ECAnet),附Tensorflow完整代码
- 边缘使用 K8s 门槛太高?OpenYurt 这个功能帮你快速搭建集群!
- yii2.0 elasticsearch模糊查询
- [SDOI2013]直径 (树的直径,贪心)
- YII CRUD 例子
- [每日编程]求 largest Number - 给出一组非负整数,求这些非负整数可以拼接出的最大数字...
- 当前操作系统缺少黑体等字体_从零开始开发一个操作系统
- 记一次newCachedThreadPool造成的导入导出事故
- 基于virtualbox的centos7安装jdk1.8
- 摄像头实时画面转接到web页面
- 通常学校计算机实验室中的网络属于,增霸卡在学校计算机实验室维护中的应用研究...
- python ctype_Python ctype帮助:使用C unsigned char指针
- 如何在海外做游戏代理?
- html怎么打入文本框,html怎么在文本框里面输入文字
- 2019最新spark面试题,看了它,你还怕找不到工作吗?
- “Why Should I Trust You?”:Explaining the Predictions of Any Classifier 论文笔记
- ubuntu20.04设置为中文
- twctf_2018_bbq
- linux怎么用ping通测试连接,ping网络是否连通的步骤_使用ping命令检查网络连通性的方法-系统城...
- 【CSS】如何实现价格文字中间划一条线
热门文章
- LWIP_STM32_ENC28J60_NETCONN_TCP_CLIENT(4)
- 【leetcode】面试题 03.03. 堆盘子vector_stack的使用
- vuex , 简单入(liao)门(jie)
- Shell-cat url-list.txt | xargs wget -c
- 业务gis 怎么让别的开发人员不需要懂gis就可以搞开发? (一)
- 【转】linux常用命令:find、grep
- C#判断一个string是否为数字 --zt
- 图片没有.png或者jpg后缀能不能加载?
- 阿里云服务器windows系统上Nodejs监听80端口报错!
- PHP知识总结(一)