楊 榮 趙娟娟 賈郭軍
(山西師范大學數學與計算機科學學院,山西 臨汾 044600)
隨著全業(yè)務運營,各運營商之間的競爭日趨激烈,電信行業(yè)的傳統(tǒng)業(yè)務面臨巨大的壓力.因此,各運營商都加大了在存量市場的爭奪,對于不同業(yè)務的后進入者,市場競爭往往選擇跟隨策略,競爭目標多為存量市場,導致客戶在各運營商之間的流轉加快,各運營商拆機率均居高不下.與此同時,存量流失造成用戶發(fā)展效率低,資源消耗嚴重,損害了企業(yè)價值,存量下滑成為公司發(fā)展的重要風險.因此,實現存量用戶基本穩(wěn)定、提升客戶忠誠度,提升客戶價值已成為各大運營商的經營理念之一.有效降低存量客戶的流失率才能固其根本.
為加強針對存量經營工作的大數據支撐能力,形成以客戶為中心的管理運營模式,就需以存量客戶為切入點,并建立存量客戶流失預警模型,通過加強對高流失概率的用戶進行提前預警維系,以達到存量客戶保有率的提升效果.
客戶流失預警模型的應用研究如今已非常廣泛,常用算法包含神經網絡、決策樹、隨機森林等.李愛民[1]采用K-means聚類分析和Logistic回歸建立客戶流失預警模型相結合的算法來分析各種因素對客戶流失的影響程度.周靜等[2]構建了計量經濟模型,并研究了公司保留策略與延長客戶生命周期之間的相關性;陳紀銘[3]使用樸素貝葉斯算法建立了學員流失預警模型,但該模型假設屬性之間相互獨立,但在實際使用中屬性個數比較多或者屬性之間相關性較大時效果較差.林明輝[4]利用神經網絡的自適應算法,將代表離網用戶行為特征的45個指標進行樣本訓練,最終得到客戶流失行為傾向的判斷模型;Huang和He[5]提出了優(yōu)化PSO算法和BP神經網絡算法相結合的方法來建立企業(yè)客戶流失預警模型,但神經網絡模型需要大量的參數,且黑盒操作,不能觀察之間的學習過程,輸出結果難以解釋,會影響到結果的可信度和可接受程度;同時大多數公司都使用建模工具來直接建立流失預警機制,準確率仍然較低,本文使用python環(huán)境進行建模,并使用決策樹模型,并對模型進行優(yōu)化,使模型算法結果的預測準確率更高.
本文使用的是決策樹中的CART算法,決策樹學習一般分為三個步驟,即特征的選擇、決策樹的建立、決策樹的剪枝;該算法是一種二叉樹形式的決策樹算法,其中,二叉樹算法只把每個非葉節(jié)點引申為兩個分支,首先進行二元分割,將樣本數據劃分成兩個子集,其次對子集再分割,自頂向下不斷遞歸生成樹,直至分支差異結果不再顯著下降,即分支沒有意義,決策樹建立完成[6].因此確定分枝標準是CART算法的核心,從眾多分組變量中找到最佳分割點,本文通過 Gini 指標來衡量數據純度.
假設樣本數據分為K類,其中樣本點屬于第k類的概率為pk,則概率分布的基尼指數定義為:
(1)
對于二分類問題,若樣本點屬于第1個類的概率是p,則概率分布的基尼指數為
Gini(p)=2p(1-p).
對于給定的樣本集合D,其基尼指數為
(2)
這里,Ck是D中屬于第k類的樣本子集,K是類的個數.
如果樣本集合D根據特征A是否取某一可能值a被分割為D1和D2兩部分,即
D1={(x,y)∈D|A(x)=a},D2=1-D1.
(3)
則在特征A的條件下,集合D的基尼指數定義為
(4)
基尼系數Gini(D)表示集合D的不確定性,基尼指數Gini(D,A)表示經A=a分割后集合D的不確定性,基尼指數越大,樣本集合的不確定性也就越大.
輸入:訓練數據集D,停止計算的條件
輸出:CART決策樹
根據訓練數據集,從根結點開始,遞歸地對每個結點進行以下操作,構建二叉決策樹:
(1)設結點的訓練數據集為D,計算現有特征對該數據集的基尼指數.此時,對每一特征A,對其可能取的每個值a,根據樣本點對A=a的測試為“是”或“否”分割為D1和D2兩部分,利用式(4)計算A=a時的基尼指數.
(2)在所有可能的特征A以及他們所有可能的切分點a中,選擇基尼系數最小的特征及其對應的切分點作為最優(yōu)特征與最優(yōu)切分點.依最優(yōu)特征與最優(yōu)切分點,從現結點生成兩個子結點,將訓練數據集依特征分配到兩個子結點中去.
(3)對兩個子結點遞歸地調用(1)和(2),直至滿足停止條件
(4)生成CART決策樹
算法過程如下:
輸入: CART算法生成的決策樹T0
輸出: 最優(yōu)決策樹Tα
1)初始化αmin=∞, 最優(yōu)子樹集合ω={T};
3)得到所有節(jié)點的α值的集合M;
5)最優(yōu)子樹集合ω=ω∪Tkω,M=M-{αk};
6)如果M不為空,則回到步驟4.否則就已經得到了所有的可選最優(yōu)子樹集合ω;
7)采用交叉驗證在ω中選擇最優(yōu)子樹Tα.
(1)數據定義
數據表中共包含十個字段,如表1所示,表中部分數據如表2所示:
(2)缺失值處理及變量篩選
處理過程中未發(fā)現缺失值且未出現重復ID,因此可直接進行變量篩選.
分析發(fā)現已流失客戶的使用月數均小于25,因此判定該字段并不關鍵,選擇以下字段作為特征變量extra_time,extra_flow,pack_type, pack_change, asso_pur、contract以及group_use,并將連續(xù)變量轉換為二分類變量,將沒有超出套餐的通話時間和流量記為0,超出的記為1.轉換后部分數據如表3所示:
表1 相關字段及定義
表2 表中部分數據展示
表3 表中部分數據展示(處理后)
(3)相關性分析
通過相關性矩陣熱力圖觀察各變量之間的相關性,可發(fā)現各屬性間相關性較低.
圖1 相關性矩陣熱力圖
(1)建立自變量x,因變量y的二維數組;
(2)以7∶3的比例拆分訓練集及測試集;
(3)使用CART算法建立決策樹模型并擬合訓練,基于Gini系數進行分類,設置樹的最大深度為6,區(qū)分一個內部節(jié)點需要的最少的樣本數為9,一個葉節(jié)點所需要的最小樣本數為5;
(4)模型評分值對比
針對測試集和訓練集分別進行評分,如表4,得知測試集和訓練集評分值較接近,模型效果較好.
表4 評分值對比
對于決策樹來說,可調參數有
max_depth:限定了決策樹的最大深度,可有效防止過擬合;
min_samples_leaf:限定了葉子節(jié)點包含的最小樣本數,該屬性可有效防止數據碎片問題;
min_samples_split:分裂所需最小樣本數;
min_impurity_split:該值限制了決策樹的增長,若某節(jié)點的不純度(基尼系數,信息增益,均方差,絕對差)小于這個閾值,則該節(jié)點不再生成子節(jié)點.
圖2 模型參數與評分效果的關系
由于本文訓練數據有限,易出現過擬合現象,故期望能通過調整參數來有效防止過擬合.本文選擇對max_depth進行調整,緩慢增加深度來對模型進行訓練,并計算評分數據,利用交叉驗證法找出評分最高的索引.同時輸出模型參數與評分效果的關系圖及最優(yōu)參數值,如圖2所示,優(yōu)化后評分值對比如表5所示.
表5 評分值對比(調參后)
輸出決策樹模型評價結果,如表6所示.可得出建立的預測模型的精確率為0.86,說明在預測為流失的用戶中,實際流失的用戶占86%;同時召回率也為0.86,說明實際為流失的用戶中,預測為流失的占86%,F1值為0.86.使用邏輯回歸算法預測模型精確率為0.83,預測精度較低,且邏輯回歸算法易欠擬合,對比可得出決策樹模型算法的綜合效果較優(yōu).輸出決策樹模型的roc曲線圖,如圖3所示,可得auc值為0.73,模型還有待優(yōu)化.同時輸出決策樹結構圖,如圖4所示,部分決策樹詳情可見圖5.
表6 模型評價結果對比
圖3 roc曲線圖
圖4 決策樹結構圖
圖5 決策樹部分分支展示
本文通過決策樹中的CART算法成功預測到即將流失的客戶,預測成功率達到0.86,與邏輯回歸算法相較更優(yōu),且AUC達0.73,證明模型效果較好;但實際應用中要盡可能的找全部實際將流失的用戶,即實際流失的用戶中,模型能準確預測到的客戶規(guī)模.
在今后預測模型的優(yōu)化上,還有很多的改進之處,如調整決策樹的參數,特征的精細化篩選,或采用隨機森林、遺傳算法多算法相結合的方式進行模型評估,并分析用戶分類、生命周期以及各變量之間的交叉性和相關性等等,以達到更好的預測效果.