基于SPSS Moderler和R语言的数据挖掘宽表处理
—电信业客户流失分析
一、商业理解
1、问题的提出:
1)问题1:预测哪些客户(尤其是高价值客户)可能会流失?
2)问题2:可能流失客户的特征是什么?
3)问题3: 商场挽留活动的预期收益是多少?
2、流失的定义:
这里将客户分为三类:正常使用电信业务的客户、主动放弃电信业务的客户、由于欠费被停机的客户。这里将后两类都定义为流失,用1(或T)表示,将第一类定义为不流失,用0(或F)表示。
3、用于预测流失的变量表:
有哪些描述客户的数据可以用来作为预测客户流失的变量?
客户基本信息数据、客户行为数据(业务使用情况)、产品信息数据
4、时间窗口:
定义预测输入变量(自变量)和预测目标变量(因变量)的时间窗口。取前六个月数据作为预测输入变量的数据(训练数据),以8到10月三个月作为预测目标变量的数据(测试数据)。中间的7月作为间隔期。
二、数据导入和理解
1、表1-客户基本信息表(custinfo.csv):
可以看出表1中包括:客户编号、性别、年龄、在网时长、话费方案、手机品牌这六个输入变量以及他们的变量类型
2、客户通话情况表
这张表显示的是客户的月度通话行为数据,包括:客户编号、高峰时期电话数、高峰时期电话时长、低谷时期电话数、低谷时期电话时长、周末时期电话数、周末时期电话时长、国际电话时长、国内电话花费、月份10个输入变量,高峰时期是指平时工作时间,非高峰时期是指不含周末的非上班时间
3、话费方案表
这张表显示的是客户的话费方案,变量包括:话费类型、固定费用、免费时长、高峰时期单价、非高峰时期单价、周末单价、国际长途单价
4、客户是否流失标记
churn:客户是否流失:1表示流失,0表示不流失
三、数据处理
用SPSS Moderler生生数据挖掘宽表,将多个表中数据重新整合到一个表中:
1、对客户通话情况表(custcall)中的高峰、非高峰、周末时期的通话时长建立趋势分析和波动分析变量
趋势分析:,,x:表示月份,y表示通话时长,n表示总月份个数
建立多个节点计算趋势值和波动值:
计算高峰期通话时长趋势值:(n * Peak_Mins_Month_Sum - Peak_mins_Sum * month_Sum)/( n * month_month_Sum - month_Sum * month_Sum)
计算高峰期通话时长波动值:
(Peak_mins_Max-Peak_mins_Min) / Peak_mins_Min
2、过滤掉中间变量,只留下趋势值和波动值:
3、创建超节点:因为中间变量的节点太多,太冗余,所以建立超节点,将中间变量隐藏
4、生成求和指标、占比指标、和平均指标
按照以上步骤类似处理客户通话信息表,求出国内电话数合计、国内通话时长合计、所有通话时长合计;高峰时期、非高峰时期、周末时期、全部国内平均每次通话时长;高峰时期、非高峰时期、周末时期通话时长占比以及国际通话时长占比
5、将处理好的客户通话表(表2)与客户基本信息表(表1)合并,选取Customer_ID为关键字
6、将花费方案表(表3)合并入表1中,选取Tariff为关键字
7、建立超节点处理客户花费表:
8、将客户流失标记表(表4)合并,关键字Customer_ID
9、排列整理字段,并且导出.csv格式的表
该表格就是流失分析的基础宽表。
10、用R语言读取该表:
churn_analysis<-read.table("E:/churn_analysis.csv",header=TRUE,sep=\',\') #导入表-客户流失分析宽表
str(churn_analysis) #变量类型
head(churn_analysis) #显示部分数据
得到的宽表中共有40个变量和18550条数据