文章目录

  • 引言
  • 一、银行业客户群体与产品的类别
  • 二、客户流失预警模型的业务意义
  • 三、数据介绍与描述
    • 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种:

  银行的业务一般分为资产类业务与负债类业务。
银行信贷类资产业务:

  1. 信用贷款
  2. 抵押贷款—分为存货抵押贷款与不动产抵押贷款
  3. 保证书担保贷款
  4. 贷款证券化

银行负债类业务:

  1. 活期存款
  2. 定期存款
  3. 储蓄存款
  4. 可转让定期存单
  5. 其他种类

二、客户流失预警模型的业务意义

  严格来讲,客户流失指的是客户在该行所有业务终止并销号。但是具体业务部门可单独定义在该部门的全部业务或某些业务上,客户的终止行为。
  研究结果表明:商业银行客户流失比较严重,国内商业银行,客户流失率可达到20%甚至更高。而获得新客户的成本,可达维护现有客户的5倍。因此,从海量的客户交易记录中挖掘出对流失有影响的信息,建立高效的客户流失预警体系尤为重要。
客户流失的主要原因包括:

  1. 价格流失
  2. 产品流失
  3. 服务流失
  4. 市场流失
  5. 促销流失
  6. 技术流失
  7. 政治流失

维护客户关系的基本方法:

  1. 追踪制度
  2. 产品跟进
  3. 扩大销售
  4. 维护访问
  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.银行客户流失预警模型介绍(单因子与多因子分析)相关推荐

  1. 银行客户流失预警模型——业务分析及代码(实战)

    DataMiningCase 点击跳转GitHub地址 流失预警模型(二分类),代码原型为本人在某银行做的流失模型,AUC:83%.召回率:19.4%,精确率:85%(数据是外部数据/代码已脱敏) 你 ...

  2. 金融风控-- >客户流失预警模型-- >金融数据分析

    从这篇博文开始,我将介绍机器学习,深度学习在金融风控这个行业上的应用.其实机器学习,深度学习在一些相关场景上的应用,其解决方法都是大同小异,差不多都是固定的解决套路,但是需要结合这个场景这个行业领域的 ...

  3. 7.Python数据分析项目之银行客户流失分析

    1.总结 预测类数据分析项目 流程 具体操作 基本查看 查看缺失值(可以用直接查看方式isnull.图像查看方式查看缺失值missingno).查看数值类型特征与非数值类型特征.一次性绘制所有特征的分 ...

  4. DataScience:风控场景之金融评分卡模型的构建(逻辑回归)开发(转评分卡)、使用过程(线上实现)之详细攻略

    DataScience:风控场景之金融评分卡模型的构建(逻辑回归)&开发(转评分卡).使用过程(线上实现)之详细攻略 目录 风控场景之金融评分卡模型的构建(逻辑回归)&开发(转评分卡) ...

  5. DataScience:风控场景之金融评分卡模型的简介、构建(逻辑回归)开发(转评分卡)、使用过程(线上实现)之详细攻略

    DataScience:风控场景之金融评分卡模型的简介.构建(逻辑回归)&开发(转评分卡).使用过程(线上实现)之详细攻略 目录 逻辑回归之金融评分卡模型的简介.构建.开发.使用过程 1.金融 ...

  6. 分类任务如何用逻辑回归实现_如何用逻辑回归构建金融评分卡模型?(上)

    虽然现在出现了很多性能优秀的分类算法,包括svm,RF,GBDT,DNN等,作为最简单的分类算法,lr依然是工业界主流的分类算法之一.那么lr到底有什么魔力,即使面对如此众多的 "高手&qu ...

  7. ML之FE:风控场景之金融评分卡模型之利用LoR模型权重变量系数正负符号结合p-value/P值大小实现变量筛选

    ML之FE:风控场景之金融评分卡模型之利用LoR模型权重变量系数正负符号结合p-value/P值大小实现变量筛选 目录 利用LoR模型权重变量系数正负符号结合p-value/P值大小实现变量筛选

  8. DataScience:风控场景之金融评分卡模型的简介、构建(逻辑回归)开发(转评分卡)、使用过程(线上实现)、完整流程之详细攻略

    DataScience:风控场景之金融评分卡模型的简介.构建(逻辑回归)&开发(转评分卡).使用过程(线上实现).完整流程之详细攻略 目录 逻辑回归之金融评分卡模型的简介.构建.开发.使用过程 ...

  9. 金融IC卡项目正式启动

    金融IC卡项目正式启动了,即将封闭3个月,认真将事情圆满完成. 由于这是技术性比较强的项目,做些日志作为工作备忘吧. 第一天,对前期需求的理解. PBOC2.0标准 根据我国银行卡芯片化计划要求,20 ...

  10. DataScience:基于GiveMeSomeCredit数据集利用特征工程处理、逻辑回归LoR算法实现构建风控中的金融评分卡模型

    DataScience:基于GiveMeSomeCredit数据集利用特征工程处理.逻辑回归LoR算法实现构建风控中的金融评分卡模型 目录 基于GiveMeSomeCredit数据集利用特征工程处理. ...

最新文章

  1. 【深度学习】(8) CNN中的通道注意力机制(SEnet、ECAnet),附Tensorflow完整代码
  2. 边缘使用 K8s 门槛太高?OpenYurt 这个功能帮你快速搭建集群!
  3. yii2.0 elasticsearch模糊查询
  4. [SDOI2013]直径 (树的直径,贪心)
  5. YII CRUD 例子
  6. [每日编程]求 largest Number - 给出一组非负整数,求这些非负整数可以拼接出的最大数字...
  7. 当前操作系统缺少黑体等字体_从零开始开发一个操作系统
  8. 记一次newCachedThreadPool造成的导入导出事故
  9. 基于virtualbox的centos7安装jdk1.8
  10. 摄像头实时画面转接到web页面
  11. 通常学校计算机实验室中的网络属于,增霸卡在学校计算机实验室维护中的应用研究...
  12. python ctype_Python ctype帮助:使用C unsigned char指针
  13. 如何在海外做游戏代理?
  14. html怎么打入文本框,html怎么在文本框里面输入文字
  15. 2019最新spark面试题,看了它,你还怕找不到工作吗?
  16. “Why Should I Trust You?”:Explaining the Predictions of Any Classifier 论文笔记
  17. ubuntu20.04设置为中文
  18. twctf_2018_bbq
  19. linux怎么用ping通测试连接,ping网络是否连通的步骤_使用ping命令检查网络连通性的方法-系统城...
  20. 【CSS】如何实现价格文字中间划一条线

热门文章

  1. LWIP_STM32_ENC28J60_NETCONN_TCP_CLIENT(4)
  2. 【leetcode】面试题 03.03. 堆盘子vector_stack的使用
  3. vuex , 简单入(liao)门(jie)
  4. Shell-cat url-list.txt | xargs wget -c
  5. 业务gis 怎么让别的开发人员不需要懂gis就可以搞开发? (一)
  6. 【转】linux常用命令:find、grep
  7. C#判断一个string是否为数字 --zt
  8. 图片没有.png或者jpg后缀能不能加载?
  9. 阿里云服务器windows系统上Nodejs监听80端口报错!
  10. PHP知识总结(一)