利用python建立客户流失预警模型(上)——数据处理部分

本文利用Python构建客户流失预警模型,聚焦数据处理部分。先将商业银行客户数据集分为训练集和测试集,接着进行数据探索,包括查看缺失值、重复样本等。对变量进行整理与衍生,还进行值替换、变量筛选、数据归一或标准化,最后介绍了处理不平衡数据的采样方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

利用python建立客户流失预警模型(上)——数据处理部分

前言

看了不少文章受益匪浅,我也来在这里尝试总结一下自己运用到的,旨在和大家一起交流学习,请各位大佬多多指教。
下面进入正题,数据为商业银行的客户数据,将数据集分为训练集和测试机:
1、构建客户流失预警模型(bad_good为被解释变量);
2、通过相关变量构建客户画像系统;
3、根据两个模型,提出流失客户的应对策略
我将从数据处理和模型建立两个部分来展开。

数据处理

数据探索

一、读入数据

import pandas as pd
data=pd.read_csv('train.csv',sep=',',index_col=None)

二、数据探索
1、是否有缺失值

data.isnull().any().any()#查看data是否存在缺失值
v_null=data.isnull().any()#查看每个变量是否缺失
v_null=v_null[v_null==True].reset_index()#取出有缺失值的变量
v_null=data[v_null['index']]#取出有缺失值
v_isnull().sum()
#若缺失值比较多使用fillna进行填充
data['变量名'].fillna(data['变量名'].mean())

2、查看是否有逻辑上的重复数据,即重复样本

len(np.unique(data['主键名']))#若等于样本数则没有重复,否则运行下列代码
sta=data['主键名'].value_counts()#统计出现次数
sta=sta[sta>1]#取出重复样本,并予以删除

3、查看离散与连续数据分布

dis=data[离散变量].apply(pd.value_counts)#查看离散连续变量
con=data[连续变量].describe()

在此数据中看到性别有X的样本,需要后续处理,同时大多FLAG变量属性不统一,存在N、Y、0、1共存的情况,需要后续将其统一
4、变量整理与衍生变量
首先从变量层面对原有的628个变量做整理,得到离散变量、交易金额和笔数最大最小变量、存在本期3个月6个月变量以及其他变量
1)离散变量:
首先进行属性的统一,使用map将之映射为0或1
对于其中基金,将所有基金标志合并,只要有一类为1,即最终为1
对于其中国债,将所有国债标志合并,只要有一类为1,即最终为1
对于客户卡,按带有白金、钻石以及无限卡作为VIP,其余为非VIP
2)最大最小变量:
删除最小变量,因为其仅有极少数样本有值且值都不大,研究意义不大
有的变量可以整合成一个变量,将其取最大来表示
新衍生变量转入转出金额最大为不同途径金额最大和
3)本期3个月6个月变量:
首先,考虑仅保留6个月变量作为较稳定的衡量指标
新衍生变量活跃度:本期除以3个月比率和3个月除以6个月比率以7:3权重综合得到
新衍生变量转入转出比率
新衍生变量资产负债比
新衍生变量集中度,不同渠道或产品的最大值以及最大值对应的活跃度:分别对于交易金额与笔数、投资金额、转入转出金额与笔数进行构造
4)其他变量:
有的无6个月数据但可以根据其他变量计算出6个月数据,故将其他中的本期与3个月数据删除,还可以删除一些对业务没有影响的变量
5)当数据量大时,每做完一次操作可考虑保存数据,否则每次运行耗费大量时间

#对分类与连续变量做统计进行清洗并初步筛选变量
all_names=data.columns.values.tolist()                                              #取所有变量名
all_names.remove('bad_good')
remove_variable=[]
data['GENDER']=data['GENDER'].map({
   1:'1',2:'2','2':'2','1':'1','X':'X'
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值