0 前言
隨著移動互聯(lián)網(wǎng)時代的到來,在移動通信市場上,內(nèi)部而言,各家運營商之間的產(chǎn)品優(yōu)勢相對有限;外部而言,運營商面臨互聯(lián)網(wǎng)企業(yè)的沖擊,對單個用戶價值的開發(fā)使得競爭更加激烈。在存量用戶十分有限的情況下,對于運營商而言,維護高價值老客戶的投入比開發(fā)新用戶的投入更能有效節(jié)省企業(yè)成本開支。電信客戶離網(wǎng)分析相關研究已經(jīng)開展了很多年,從早期利用數(shù)據(jù)庫進行OLAP分析,到使用數(shù)據(jù)挖掘算法進行用戶離網(wǎng)預測。針對離網(wǎng)傾向的用戶實施客戶挽留,展開維系與關懷,以利于電信企業(yè)客戶的保持,對增強電信企業(yè)的綜合競爭力具有重要意義[5-6]。本文介紹了使用近年來機器學習中的流行算法來分析潛在離網(wǎng)用戶的方法,和早期研究使用的邏輯回歸、決策樹[2]、SVM等方法相比,XGBOOST適用于二分類問題,并具有很好泛化能力。
1 數(shù)據(jù)挖掘流程
采用機器學習的方法進行數(shù)據(jù)挖掘,一般流程如圖1所示。
圖1 數(shù)據(jù)挖掘基本流程
給機器學習算法輸入的數(shù)據(jù),是經(jīng)過處理后的數(shù)據(jù),包括對空值、異常值的處理,對數(shù)據(jù)取值范圍和取值類型的處理,離散化、歸一化處理等;使其滿足所選擇的機器學習算法對數(shù)據(jù)類型和數(shù)據(jù)值的要求。算法選擇模塊包含訓練模型時的單個算法選擇以及多個算法融合時的多算法選擇,以實際開發(fā)時測試樣本集的預測正確率為標準調(diào)整。各階段耗費時間占比如圖2所示。
圖2 數(shù)據(jù)挖掘項目時間耗費占比
其中程序開發(fā)涵蓋算法選擇、算法實現(xiàn)和模型輸出。由于目前很多算法已經(jīng)實現(xiàn)了功能模塊化,因此,這部分算法可以通過直接調(diào)用現(xiàn)成API[3]或者安裝功能模塊來實現(xiàn)。
2 用戶離網(wǎng)預測問題
在預測離網(wǎng)客戶的分析中,通常有幾個關鍵步驟:問題定義、算法選擇、數(shù)據(jù)準備、結果評估、反饋修正。
問題定義:在電信企業(yè)實際業(yè)務中,對客戶離網(wǎng)理解最深入的是該領域的專家,因此對客戶流失的重要因素的判定具有指導意義。相關理解應包括,定義什么是離網(wǎng),離網(wǎng)用戶類型有哪些(高價值用戶還是普通用戶),離網(wǎng)有哪些形式(是主動流失,例如由于客戶不滿意當前服務或競爭對手提供了更優(yōu)質(zhì)服務而主動停止當前服務,進行轉(zhuǎn)網(wǎng)、退網(wǎng),還是被動流失,例如學生客戶畢業(yè)異地工作,或客戶職業(yè)升遷異地調(diào)動的原因),離網(wǎng)分析通常更關注高價值用戶的主動流失,他們是電信企業(yè)利潤的重要來源。
算法選擇:確定好問題以后,對離網(wǎng)用戶的分析是根據(jù)準備使用的算法來進行建模的,需要確定原始數(shù)據(jù)集的來源,以及使用潛在離網(wǎng)用戶的哪些相關屬性。同時,原始數(shù)據(jù)集通常也被拆分為2個部分,一部分是訓練集,用作構造算法模型,另一部分是測試集,用于評估分類算法通過學習生成的模型是否合理。兩者的拆分通常是按照1∶1的比例,也可以根據(jù)業(yè)務分析專家的判斷進行比例的調(diào)整。
數(shù)據(jù)輸入:據(jù)統(tǒng)計,電信企業(yè)平均每月有97.5%的在網(wǎng)客戶,以及2.5%的離網(wǎng)客戶,因此原始數(shù)據(jù)集存在嚴重的比例不平衡。另外,電信企業(yè)一個地(市)的用戶數(shù)據(jù)就達到幾十萬甚至上百萬,如果對所有數(shù)據(jù)進行訓練,時間上很難滿足要求。并且,原始數(shù)據(jù)集由于來源于電信企業(yè)的不同領域和部門,許多比較重要的屬性值存在缺失和錯誤,降低了對潛在用戶離網(wǎng)的預測精度。同時,要進行用戶離網(wǎng)預測,需要將能收集到的用戶相關屬性組織成一張表,稱為數(shù)據(jù)聚集,新生成的表稱為數(shù)據(jù)寬表,例如將用戶基本信息、持有終端信息和月消費信息整合為一張寬表。
效果評估:算法輸出的模型用于測試樣本集時,混淆矩陣約定:TP(True Positive)指真實為1,預測也為1;FN(False Negative)指真實為0,預測為1;FP(False Positive)指真實為1,預測為0;TN(True Negative)指真實為0,預測也為0,則模型效果可通過以下各項指標反映[4]。
準確率 P = TP/(TP+FP) (1)
召回率 R = TP/(TP+FN) (2)
F1-score = 2×P×R/(P+R) (3)
3個指標用于綜合評估模型效果優(yōu)劣。
模型輸出:通過指標的綜合評定,確定使用或保留何種機器學習算法,保存訓練模型以供調(diào)用。
3 機器學習算法
機器學習從無序的數(shù)據(jù)中挖掘有用的信息,狹義的指計算機“學習算法”的一門學問。關鍵術語包括:特征(也稱為屬性)、標識(標簽)、任務(分類或聚類、回歸)、訓練樣本集、測試樣本集等。開發(fā)機器學習應用程序的基本步驟通常包括[1]:收集數(shù)據(jù)、標準化輸入數(shù)據(jù)、分析輸入數(shù)據(jù)、訓練模型、測試驗證、實際應用。機器學習的目的就是給定輸入x,得到預測值,并希望預測值與真實值y之間的誤差盡可能的小。下面介紹機器學習的4個經(jīng)典挖掘算法。
3.1 邏輯回歸
相對于線性回歸處理因變量是連續(xù)變量,邏輯回歸能更好地適用于因變量是分類變量的回歸問題,常見的就是二分類問題。邏輯回歸的因變量和自變量之間通常采用Sigmoid函數(shù)來描述:
(4)
它是一個S形的曲線(見圖3)。
圖3 S形函數(shù)
3.2 決策樹
決策樹是最經(jīng)常使用的數(shù)據(jù)挖掘算法,大量地應用于分類問題。它是一種樹形結構,分為內(nèi)部節(jié)點,葉子節(jié)點和分支。每個內(nèi)部節(jié)點表示一個特征或者屬性上的測試,每個分支代表一個測試輸出,每個葉子節(jié)點代表一個類別。它的優(yōu)點是計算復雜度不高,輸出結果易于理解,對中間值的缺失不敏感,可以處理不相關的特征數(shù)據(jù)。圖4為決策樹經(jīng)典模型圖。
圖4 決策樹
3.3 支持向量機(SVM)分類算法與核函數(shù)
SVM是機器學習中的有監(jiān)督線性分類算法,最初正式發(fā)表于1995年。SVM應用在文本分類尤其是針對二分類任務顯示出卓越的性能,因此得到了廣泛的研究和應用,后期在多分類任務也進行了專門推廣。SVM通過向高維度空間映射來解決多維線性不可分問題,使樣本線性可分。如圖5所示,可將一維不可分問題轉(zhuǎn)化為二維可分問題[7]。核函數(shù)選擇是SVM中性能差別的最大原因。核函數(shù)選擇不合適,意味著樣本被映射到了不合適的特征空間,很可能導致性能不佳。
圖5 SVM高維映射
3.4 XGBoost
XGBoost(eXtreme Gradient Boosting)采用了回歸樹和集成Boosting 2種技術。在數(shù)據(jù)建模中,當我們有數(shù)個連續(xù)值特征時,經(jīng)常采用Boosting分類器將成百上千個分類準確率較低的樹模型組合起來,形成一個準確率很高的預測模型。XGB可以理解為多個樹的并行預測,并將預測分值相加用于類別判斷。這個樹模型經(jīng)過不斷地迭代,在每次迭代就生成一棵新的樹,從而使預測值不斷逼近真實值(即進一步最小化目標函數(shù))。
XGBoost的并行樹如圖6所示,以樣本1為例,預測得分為:Tree1.樣本1.得分(2)+ Tree2.樣本1.得分(0.9)=2.9,相比于樣本2的-0.8,樣本3的-0.1,樣本4、5的-1.9,具有更大的預測概率。注意到,由于XGBoost出眾的效率與較高的預測準確度在機器學習領域引起了廣泛關注。
圖6 XGBoost 并行樹
4 實驗驗證
電信企業(yè)可利用的輸入數(shù)據(jù)包括但不限于:用戶的基本信息、用戶的賬單信息、用戶的詳單信息、用戶的終端信息、用戶繳費情況等各種表結構信息。本次試驗采用了電信企業(yè)的用戶賬單信息、用戶詳單信息和終端庫信息3張表中的字段,通過用戶編號user_id的關聯(lián),匯聚成一張數(shù)據(jù)寬表,其中賬單和詳單信息使用至少3個月以上的信息(見表1)。
表1 數(shù)據(jù)寬表
為了增加模型的有效性,可以通過單個算法的測試以及融合多個算法的測試,例如可以在實踐應用時,第1次采用邏輯回歸算法建模和預測,第2次采用決策樹算法,第3次采用XGBoost算法,第4次采用將邏輯回歸和XGBoost算法的結果合并的預測方法。采用XGBoost算法建模的實驗偽代碼如下。
第1步:
#導入xgboost模塊:
import xgboost as xgb
第2步:
#讀取訓練屬性,為建模準備輸入數(shù)據(jù):用戶離網(wǎng)預測是一個典型的有監(jiān)督分類問題。因此需要讀入訓練特征,以及目標標識:
feature_file_name = "train.feat"
target_file_name = "train.target"
feature_file = open(feature_file_name,'rt')
target_file = open(target_file_name,'rt')
#準備矩陣型訓練數(shù)據(jù):
#讀寫樣本特征,生成訓練矩陣training_matrix和目標列表target_list。
第3步:
#生成訓練模型,在測試集上驗證并調(diào)參。
param = {'booster':'gbtree','objective':'binary:logistic','eval_metric':'auc','max_depth':5,'min_child_weight':1,'subsample':0.9,'lambda':10,'gamma':0.0,'eta':0.3,'silent':1 }
num_round = 100
dtrain=xgb.DMatrix(training_matrix,label=target_list)
bst = xgb.train(param,dtrain,num_round)
bst.save_model('model.xgb')
第4步:
#使用及應用。將生成的xgb模型用于需要生成標簽的樣本集。
#加載樣本屬性數(shù)據(jù)
#加載訓練模型數(shù)據(jù)
bst = xgb.Booster({'nthread':4})
bst.load_model("model.xgb")
#預測
dtest = xgb.DMatrix(trainingMatrix)
y_pred = bst.predict(dtest)
result_list = (y_pred ≥ 0.5) × 1
#結果寫入文件
result_file = open(result_file_name,'wt')
for index in range(len(y_pred)):
result_file.write('%s/t%d/n'%(uid_list[index],result_list[index]))
result_file.close()
第5步:
#如果采用多算法融合,例如除XGBoost之外同時采用邏輯回歸的判決概率,可將XGBoost輸出判決概率和邏輯回歸輸出判決概率取均值,作為最終判決依據(jù)。
bst = xgb.Booster({'nthread':4})
bst.load_model("model.xgb")
pred_leaves = bst.predict(xgb.DMatrix(test_matrix),pred_leaf=True)
tree_node_enc = OneHotEncoder()
lr_model = LogisticRegression()
……
transformed_feature = tree_node_enc.transform(pred_leaves).toarray()
y_pred = lr_model.predict_proba(transformed_feature)[:,1]
result_list = (y_pred ≥ 0.5) × 1
5 總結
使用機器學習來預測用戶離網(wǎng),是大數(shù)據(jù)相關技術在電信企業(yè)的一個典型應用[8-11]。機器學習在現(xiàn)代的應用已經(jīng)相當廣泛,用戶可以不必再開發(fā)最原始的算法代碼,而是直接安裝、調(diào)用現(xiàn)成的模塊或者API。電信企業(yè)的數(shù)據(jù)資產(chǎn)是寶貴的礦藏,通過數(shù)據(jù)挖掘,無論是用于提升企業(yè)內(nèi)部運營效率,還是和外部合作進行行業(yè)應用支撐,都將是一筆非?捎^的財富。
參考文獻:
[1] HARRINGTON P.機器學習實戰(zhàn)[M].李銳,李鵬,曲亞東,等,譯.北京:人民郵電出版社,2013
[2] 王凱. 數(shù)據(jù)挖掘在移動離網(wǎng)用戶分析模型中的研究與應用[D]. 鄭州:鄭州大學,2014.
[3] 陳康,向勇,喻超.大數(shù)據(jù)時代機器學習的新趨勢[J].電信科學,2012,28(12):88-95.
[4] 周志華,王玨. 機器學習及其應用[M]. 北京:清華大學出版社,2009.
[5] HASSOUNA M,TARHINI A,ELYAS T,et al. Customer Churn in Mobile Markets A Comparison of Techniques[J]. International Business Research,2015,8(6):224-237.
[6] SINGH I,SINGH S. Framework for Targeting High Value Customers and Potential Churn Customers in Telecom using Big Data Analytics[J]. International Journal of Education & Management Engineering,2017,7(1):36-45.
[7] DONG R,SU F,YANG S,et al. Customer Churn Analysis for Telecom Operators Based on SVM[C]// International Conference On Signal And Information Processing,Networking And Computers. Springer,Singapore,2017:327-333.
[8] 張婧姣. 電信社會網(wǎng)絡離網(wǎng)用戶預測及分析[D]. 北京:北京郵電大學,2017.
[9] 陳曄. 基于組合預測的電信客戶流失預測分析[D].長沙:湖南大學,2011.
[10] 楊曉峰,嚴建峰,劉曉升,等.深度隨機森林在離網(wǎng)預測中的應用[J].計算機科學,2016,43(6):208-213.
[11] 趙慧,劉穎慧,崔羽飛,等.機器學習在運營商用戶流失預警中的運用[J].信息通信技術,2018,12(1):14-21.
來源:郵電設計技術