基於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條數據