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