冀慧杰,倪 楓,劉 姜,陸祺靈,張旭陽,闕中力
(上海理工大學 管理學院,上海 200093)
隨著電信市場的飽和以及激烈的競爭,移動運營商要想占領龐大的移動通信市場,必須提供高質量的服務來吸引新客戶,同時留住現(xiàn)有客戶。不僅僅是電信業(yè),對任何行業(yè)來說客戶流失是現(xiàn)代企業(yè)客戶關系管理中面臨最多也是最難的問題。以往的研究發(fā)現(xiàn)客戶流失對企業(yè)造成的損失是巨大的。一是已流失客戶不能再為企業(yè)創(chuàng)造價值,每流失1%的客戶將會對企業(yè)造成5%~16%的利潤損失;二是流失的客戶可能會傳播一些負面口碑,不利于企業(yè)的形象,甚至會影響到其他客戶的流失;三是企業(yè)發(fā)展一個新客戶比挽留一位老客戶需要投入更多的精力和金錢等成本。有研究表明用戶保持率增加5%,則能給企業(yè)帶來85%的利潤增長。因此客戶保留已成為CRM部門重點關注的領域??蛻舯A羰侵腹玖糇∑洮F(xiàn)有客戶的能力,在很大程度上取決于準確、及時地預測客戶流失,并采取有效的防范措施??蛻袅魇ьA測對于電信公司挽留用戶和提供個性化服務至關重要,通過預測用戶的流失,根據流失的可能性將用戶分為不同的等級,并提供相應的服務;同時分析客戶流失的原因,盡可能減少客戶流失??蛻袅魇ьA測是電信行業(yè)中保留現(xiàn)有客戶的最有效策略之一。
國內外有大量文獻研究了客戶流失預測,研究領域涉及到電信、銀行、網絡以及游戲客戶的流失等??蛻袅魇ьA測是一個復雜的問題,其特殊性表現(xiàn)在高維的特征、大量的數據、流失與非流失類不平衡和分類準確性要求。目前經過多年的研究,客戶流失預測研究領域取得了諸多成果??蛻袅魇У默F(xiàn)有算法主要可分為四種:基于傳統(tǒng)統(tǒng)計學方法[1-2]、基于人工智能[3-4]、基于統(tǒng)計學習理論[5]以及基于集成分類器[6-7]的預測算法。此外,模糊分類器[8]、粗糙集[9]和社會網絡分析方法[10]也都被用于客戶流失預測。通過對以往文獻的分析,Logistic、決策樹和隨機森林[11]、Adaboost[12]、XGBoost[13]等集成分類器都是客戶流失預測中最常使用的方法。
其次,電信客戶流失預測包含用戶的人口統(tǒng)計學特征、通話、賬單等信息,往往是高維數據集,一些特征屬性對決策過程很有用,而另一些特征對客戶流失與否則不太重要,在構建模型時應選擇重要特征進行訓練。特征選擇就是從數據集中篩選掉與目標變量無關冗余的特征,選擇重要特征并減少無關屬性的數量可提高分類性能,節(jié)約模型訓練時間。特征選擇的方法有三種:過濾式(Filter)、包裝式(Wrapper)和嵌入式(Embedded)。過濾式特征選擇根據特征與類別的相關性,采用具體的評價準則通過設定閾值選擇特征。文獻中常用的方法有信息增益[11]、Pearson相關系數、Fisher Score[14]、MRMR[15]、relief等。Filter算法效率高,但獨立于分類器,導致特征子集的冗余度高,且部分弱相關特征可能對模型有用。包裝式特征選擇將特征選擇與分類器算法結合在一起,根據搜索策略選擇在分類器上預測精度較好的特征子集,如遞歸特征消除可以和算法本身能夠輸出特征重要性的分類器結合在一起。子集搜索策略有前向搜索、后向搜索和雙向搜索。Wrapper算法能夠選擇出較優(yōu)的特征子集,但采用子集搜索策略進行特征選擇需要耗費大量的時間。Embedded特征選擇將Wrapper和Filter結合起來,直接使用學習算法進行訓練,模型訓練結束后可根據特征的權值大小選擇特征,例如基于L1的特征選擇和基于樹的特征選擇(Adaboost、隨機森林、XGBoost等)。如文獻[16-18]使用XGBoost的特征重要性進行特征選擇,均是根據重要性度量選取指定數量的特征。李占山等(2019)混合了XGBoost特征重要性的三種指標,通過序列浮動前向搜索策略選擇特征[19]。XGBoost算法具有良好的防止過擬合的特性和計算效率,并且XGBoost可以提供三種特征重要性度量的方法,因此基于XGBoost的特征重要性度量來選擇特征的方法被廣泛使用。通過對以往文獻的分析,根據模型特征重要性度量直接刪除特征易導致存在冗余特征,且部分弱相關特征對提高模型的性能有正向作用,根據文獻[20]設計的基于隨機森林的雙向特征選擇,提出一種基于XGBoost的混合特征選擇算法XGB-BFS,該算法從兩個角度進行特征選擇。首先根據XGBoost內置的特征重要性度量Fscore值對特征進行排序,然后使用序列后向搜索的方式對排序好的特征依次刪除Fscore值最低的特征,根據驗證集的AUC值判斷是否保留刪除的特征,遍歷特征集,最后將選出的特征子集應用到XGBoost分類器中預測客戶流失。
XGBoost[21](extreme gradient boosting)是對GBDT的改進,在數據挖掘比賽中被廣泛使用,效果顯著。XGBoost構建客戶流失預測模型時以CART樹為基分類器進行組合構造強分類器,目標函數可表示為:
Obj(Θ)=L(Θ)+Ω(Θ)=
(1)
(2)
(3)
由上式可知,在構建二分類模型時,只需尋找一棵樹使得目標函數最小,然后迭代k次就可完成訓練。對損失函數使用二階泰勒展開可得:
(4)
對葉子節(jié)點進行L2正則化:
(5)
其中,T為葉子節(jié)點個數。
(6)
對wj進行求導,可以得到極值:
(7)
代入可得:
(8)
上式即為葉子節(jié)點取值的表達式。XGBoost在分裂時計算增益Gain:
(9)
γ用來控制樹的復雜度。
XGBoost提供了三種特征重要性度量指標。根據上述XGBoost原理,XGBoost模型構建了k棵分類樹,在所有樹中,統(tǒng)計一個特征在分裂節(jié)點被使用的次數得到第一種特征重要性排序方式Fscore值;二是特征在所有樹中的平均增益值AverageGain;三是在所有樹中,使用該特征作為分裂節(jié)點時覆蓋樣本數量的平均值AverageCover。該文使用Fscore值判斷特征重要性。
(10)
(11)
由于XGBoost模型可在訓練結束后輸出特征重要性排序,該文提出了一種基于XGBoost的混合特征選擇算法XGB-BFS。該算法根據XGBoost特征重要性度量的Fscore方法對特征進行排序,采用序列后向搜索的方式尋找最優(yōu)特征子集。將數據集分為訓練集、驗證集和測試集,首先將包含所有特征訓練集進行XGBoost建模,采用五折交叉驗證尋找最優(yōu)參數,根據Fscore對特征進行排序。然后對經過排序的特征集進行篩選,用Fscore值評價一個特征是否能夠保留,依次將Fscore得分最低的特征剔除特征集;用驗證集在新特征子集下的AUC值判斷留下特征的預測結果是否更優(yōu)。在選擇特征過程中需權衡特征數量以及對模型效果的提升,而部分特征對模型的提升效果有限,因此在實驗中為盡可能篩選對客戶流失預測影響較大的特征,通過設定閾值h(h的具體數值根據實驗結果設置)來選擇特征,若驗證集的AUC值提高大于h則保留剛刪除的特征,若AUC值提高小于h或者降低則仍剔除刪掉的特征。該算法既能夠篩選出對目標變量影響較大的特征,又能降低特征之間的冗余。算法的流程如圖1所示。
算法1:XGB-BFS。
輸入:含有M個特征的訓練集;
輸出:含有m(m 過程: (1)通過XGBoost訓練包含所有特征的訓練集,交叉驗證求出最佳參數值 (2)WhileM≠?: M=Selectfeature//根據Fscore對特征重要性進行排序 (3) ForfinM: NSelectfeature=M-{f}//移除Fscore值最低的特征 If AUC(NSelectfeature)-AUC(Selectfeature) deletefeature=f//刪除該特征 Selectfeature=NSelectfeature //更新特征集 Else Selectfeature=NSelectfeature+deletefeature //保留刪除的特征 End if End for (4) Return m //最終特征子集 圖1 XGB-BFS流程 (12) 表1 數據集部分屬性 在實驗中,該算法采用python3.6語言編寫,使用了公開的XGBoost、Imbalance、Scikit-Learn工具包。采用五折交叉驗證和網格搜索的方式找出XGBoost模型的最佳參數,經實驗設置XGBoost算法的參數為:max_depth=5,n_estimators=200,learning_rate=0.3。選擇Accuracy、AUC、Recall、Precision、F1 score作為模型的評價指標。 (13) 該文采用目前在客戶流失預測中流行的分類算法Logistic、Adaboost、隨機森林作為對照,這三個分類器在模型訓練完成后均可輸出特征重要性排序,因此采用現(xiàn)有的特征選擇技術分別構建RFE_logistic、Embedded_Adaboost和Embedded_RF模型與所提算法進行對比,驗證基于XGB-BFS特征選擇方法的客戶流失預測模型的性能。 (1)RFE_Logistic:基于Wrapper方法中的遞歸特征消除法使用邏輯回歸模型進行多輪訓練,每輪訓練完成后,移除部分特征,獲得最終特征子集后構建Logistic客戶流失預測模型; (2)Embedded_Adaboost:基于Embedded思想訓練Adaboost選擇重要特征,并構建Adaboost客戶流失預測模型; (3)Embedded_RF:基于Embedded思想根據隨機森林的基尼特征重要性排序刪除相關性較弱的特征,并構建隨機森林客戶流失預測模型; (4)XGB-BFS_XGBoost:按照所提算法選擇特征子集,構建XGBoost客戶流失預測模型。XGBoost特征重要性度量Fscore值排名前10的特征如圖2所示。根據實驗,將閾值h的值設為0.002,共刪除了13個特征,保留43個特征。各模型的對比結果如表2所示,圖3為所提算法的ROC曲線。 圖2 基于XGBoost的特征重要性排序 表2 各模型預測結果對比 圖3 XGBoost模型的ROC曲線 通過對五個評價指標的比較,可以看出提出的基于XGBoost的特征選擇方法在準確度、AUC值、精度和F1 score值在四個模型中均表現(xiàn)最佳。具體相較于其他三個模型而言,相比最低值在分類準確率上提高了6%,AUC值提高了2%,精度提高了13%,F(xiàn)1 score值提高了6%。從模型的召回率來看,雖然Logistic模型和Adaboost模型的Recall值高于XGBoost模型,但是這兩個模型的準確度和精度較低,意味著模型將未流失客戶預測為流失客戶的錯誤更高,對企業(yè)來說這會增加不必要的客戶挽留成本。因此綜合各個指標來看,構建的XGBoost模型在進行客戶流失預測時有更好的性能。 針對電信客戶流失預測數據集高維特征的問題,提出了一種混合的XGB-BFS特征選擇算法,該算法從兩個角度對特征進行選擇:首先使用XGBoost模型的Fscore值輸出特征重要性排序,然后采用序列后向搜索的方式依次移除重要性最低的特征計算驗證集的AUC值,根據設定AUC增長閾值選擇將特征移除還是保留,直到遍歷整個特征集。該特征選擇算法既可以篩選出對預測客戶流失最重要的特征,又能去除冗余特征。在電信客戶流失數據集上的實驗結果表明該方法具有良好的性能,也可應用到其他分類領域進行特征選擇。3 實驗分析
3.1 數據預處理
3.2 模型參數及評價指標
3.3 模型結果對比
4 結束語