基于機(jī)器學(xué)習(xí)的用戶離網(wǎng)預(yù)測研究

相關(guān)專題: 大數(shù)據(jù)

0 前言

隨著移動互聯(lián)網(wǎng)時代的到來,在移動通信市場上,內(nèi)部而言,各家運(yùn)營商之間的產(chǎn)品優(yōu)勢相對有限;外部而言,運(yùn)營商面臨互聯(lián)網(wǎng)企業(yè)的沖擊,對單個用戶價值的開發(fā)使得競爭更加激烈。在存量用戶十分有限的情況下,對于運(yùn)營商而言,維護(hù)高價值老客戶的投入比開發(fā)新用戶的投入更能有效節(jié)省企業(yè)成本開支。電信客戶離網(wǎng)分析相關(guān)研究已經(jīng)開展了很多年,從早期利用數(shù)據(jù)庫進(jìn)行OLAP分析,到使用數(shù)據(jù)挖掘算法進(jìn)行用戶離網(wǎng)預(yù)測。針對離網(wǎng)傾向的用戶實(shí)施客戶挽留,展開維系與關(guān)懷,以利于電信企業(yè)客戶的保持,對增強(qiáng)電信企業(yè)的綜合競爭力具有重要意義[5-6]。本文介紹了使用近年來機(jī)器學(xué)習(xí)中的流行算法來分析潛在離網(wǎng)用戶的方法,和早期研究使用的邏輯回歸、決策樹[2]、SVM等方法相比,XGBOOST適用于二分類問題,并具有很好泛化能力。

1 數(shù)據(jù)挖掘流程

采用機(jī)器學(xué)習(xí)的方法進(jìn)行數(shù)據(jù)挖掘,一般流程如圖1所示。

圖1 數(shù)據(jù)挖掘基本流程

給機(jī)器學(xué)習(xí)算法輸入的數(shù)據(jù),是經(jīng)過處理后的數(shù)據(jù),包括對空值、異常值的處理,對數(shù)據(jù)取值范圍和取值類型的處理,離散化、歸一化處理等;使其滿足所選擇的機(jī)器學(xué)習(xí)算法對數(shù)據(jù)類型和數(shù)據(jù)值的要求。算法選擇模塊包含訓(xùn)練模型時的單個算法選擇以及多個算法融合時的多算法選擇,以實(shí)際開發(fā)時測試樣本集的預(yù)測正確率為標(biāo)準(zhǔn)調(diào)整。各階段耗費(fèi)時間占比如圖2所示。

圖2 數(shù)據(jù)挖掘項(xiàng)目時間耗費(fèi)占比

其中程序開發(fā)涵蓋算法選擇、算法實(shí)現(xiàn)和模型輸出。由于目前很多算法已經(jīng)實(shí)現(xiàn)了功能模塊化,因此,這部分算法可以通過直接調(diào)用現(xiàn)成API[3]或者安裝功能模塊來實(shí)現(xiàn)。

2 用戶離網(wǎng)預(yù)測問題

在預(yù)測離網(wǎng)客戶的分析中,通常有幾個關(guān)鍵步驟:問題定義、算法選擇、數(shù)據(jù)準(zhǔn)備、結(jié)果評估、反饋修正。

問題定義:在電信企業(yè)實(shí)際業(yè)務(wù)中,對客戶離網(wǎng)理解最深入的是該領(lǐng)域的專家,因此對客戶流失的重要因素的判定具有指導(dǎo)意義。相關(guān)理解應(yīng)包括,定義什么是離網(wǎng),離網(wǎng)用戶類型有哪些(高價值用戶還是普通用戶),離網(wǎng)有哪些形式(是主動流失,例如由于客戶不滿意當(dāng)前服務(wù)或競爭對手提供了更優(yōu)質(zhì)服務(wù)而主動停止當(dāng)前服務(wù),進(jìn)行轉(zhuǎn)網(wǎng)、退網(wǎng),還是被動流失,例如學(xué)生客戶畢業(yè)異地工作,或客戶職業(yè)升遷異地調(diào)動的原因),離網(wǎng)分析通常更關(guān)注高價值用戶的主動流失,他們是電信企業(yè)利潤的重要來源。

算法選擇:確定好問題以后,對離網(wǎng)用戶的分析是根據(jù)準(zhǔn)備使用的算法來進(jìn)行建模的,需要確定原始數(shù)據(jù)集的來源,以及使用潛在離網(wǎng)用戶的哪些相關(guān)屬性。同時,原始數(shù)據(jù)集通常也被拆分為2個部分,一部分是訓(xùn)練集,用作構(gòu)造算法模型,另一部分是測試集,用于評估分類算法通過學(xué)習(xí)生成的模型是否合理。兩者的拆分通常是按照1∶1的比例,也可以根據(jù)業(yè)務(wù)分析專家的判斷進(jìn)行比例的調(diào)整。

數(shù)據(jù)輸入:據(jù)統(tǒng)計(jì),電信企業(yè)平均每月有97.5%的在網(wǎng)客戶,以及2.5%的離網(wǎng)客戶,因此原始數(shù)據(jù)集存在嚴(yán)重的比例不平衡。另外,電信企業(yè)一個地(市)的用戶數(shù)據(jù)就達(dá)到幾十萬甚至上百萬,如果對所有數(shù)據(jù)進(jìn)行訓(xùn)練,時間上很難滿足要求。并且,原始數(shù)據(jù)集由于來源于電信企業(yè)的不同領(lǐng)域和部門,許多比較重要的屬性值存在缺失和錯誤,降低了對潛在用戶離網(wǎng)的預(yù)測精度。同時,要進(jìn)行用戶離網(wǎng)預(yù)測,需要將能收集到的用戶相關(guān)屬性組織成一張表,稱為數(shù)據(jù)聚集,新生成的表稱為數(shù)據(jù)寬表,例如將用戶基本信息、持有終端信息和月消費(fèi)信息整合為一張寬表。

效果評估:算法輸出的模型用于測試樣本集時,混淆矩陣約定:TP(True Positive)指真實(shí)為1,預(yù)測也為1;FN(False Negative)指真實(shí)為0,預(yù)測為1;FP(False Positive)指真實(shí)為1,預(yù)測為0;TN(True Negative)指真實(shí)為0,預(yù)測也為0,則模型效果可通過以下各項(xiàng)指標(biāo)反映[4]。

準(zhǔn)確率 P = TP/(TP+FP) (1)

召回率 R = TP/(TP+FN) (2)

F1-score = 2×P×R/(P+R) (3)

3個指標(biāo)用于綜合評估模型效果優(yōu)劣。

模型輸出:通過指標(biāo)的綜合評定,確定使用或保留何種機(jī)器學(xué)習(xí)算法,保存訓(xùn)練模型以供調(diào)用。

3 機(jī)器學(xué)習(xí)算法

機(jī)器學(xué)習(xí)從無序的數(shù)據(jù)中挖掘有用的信息,狹義的指計(jì)算機(jī)“學(xué)習(xí)算法”的一門學(xué)問。關(guān)鍵術(shù)語包括:特征(也稱為屬性)、標(biāo)識(標(biāo)簽)、任務(wù)(分類或聚類、回歸)、訓(xùn)練樣本集、測試樣本集等。開發(fā)機(jī)器學(xué)習(xí)應(yīng)用程序的基本步驟通常包括[1]:收集數(shù)據(jù)、標(biāo)準(zhǔn)化輸入數(shù)據(jù)、分析輸入數(shù)據(jù)、訓(xùn)練模型、測試驗(yàn)證、實(shí)際應(yīng)用。機(jī)器學(xué)習(xí)的目的就是給定輸入x,得到預(yù)測值,并希望預(yù)測值與真實(shí)值y之間的誤差盡可能的小。下面介紹機(jī)器學(xué)習(xí)的4個經(jīng)典挖掘算法。

3.1 邏輯回歸

相對于線性回歸處理因變量是連續(xù)變量,邏輯回歸能更好地適用于因變量是分類變量的回歸問題,常見的就是二分類問題。邏輯回歸的因變量和自變量之間通常采用Sigmoid函數(shù)來描述:

(4)

它是一個S形的曲線(見圖3)。

圖3 S形函數(shù)

3.2 決策樹

決策樹是最經(jīng)常使用的數(shù)據(jù)挖掘算法,大量地應(yīng)用于分類問題。它是一種樹形結(jié)構(gòu),分為內(nèi)部節(jié)點(diǎn),葉子節(jié)點(diǎn)和分支。每個內(nèi)部節(jié)點(diǎn)表示一個特征或者屬性上的測試,每個分支代表一個測試輸出,每個葉子節(jié)點(diǎn)代表一個類別。它的優(yōu)點(diǎn)是計(jì)算復(fù)雜度不高,輸出結(jié)果易于理解,對中間值的缺失不敏感,可以處理不相關(guān)的特征數(shù)據(jù)。圖4為決策樹經(jīng)典模型圖。

圖4 決策樹

3.3 支持向量機(jī)(SVM)分類算法與核函數(shù)

SVM是機(jī)器學(xué)習(xí)中的有監(jiān)督線性分類算法,最初正式發(fā)表于1995年。SVM應(yīng)用在文本分類尤其是針對二分類任務(wù)顯示出卓越的性能,因此得到了廣泛的研究和應(yīng)用,后期在多分類任務(wù)也進(jìn)行了專門推廣。SVM通過向高維度空間映射來解決多維線性不可分問題,使樣本線性可分。如圖5所示,可將一維不可分問題轉(zhuǎn)化為二維可分問題[7]。核函數(shù)選擇是SVM中性能差別的最大原因。核函數(shù)選擇不合適,意味著樣本被映射到了不合適的特征空間,很可能導(dǎo)致性能不佳。

圖5 SVM高維映射

3.4 XGBoost

XGBoost(eXtreme Gradient Boosting)采用了回歸樹和集成Boosting 2種技術(shù)。在數(shù)據(jù)建模中,當(dāng)我們有數(shù)個連續(xù)值特征時,經(jīng)常采用Boosting分類器將成百上千個分類準(zhǔn)確率較低的樹模型組合起來,形成一個準(zhǔn)確率很高的預(yù)測模型。XGB可以理解為多個樹的并行預(yù)測,并將預(yù)測分值相加用于類別判斷。這個樹模型經(jīng)過不斷地迭代,在每次迭代就生成一棵新的樹,從而使預(yù)測值不斷逼近真實(shí)值(即進(jìn)一步最小化目標(biāo)函數(shù))。

XGBoost的并行樹如圖6所示,以樣本1為例,預(yù)測得分為:Tree1.樣本1.得分(2)+ Tree2.樣本1.得分(0.9)=2.9,相比于樣本2的-0.8,樣本3的-0.1,樣本4、5的-1.9,具有更大的預(yù)測概率。注意到,由于XGBoost出眾的效率與較高的預(yù)測準(zhǔn)確度在機(jī)器學(xué)習(xí)領(lǐng)域引起了廣泛關(guān)注。

圖6 XGBoost 并行樹

4 實(shí)驗(yàn)驗(yàn)證

電信企業(yè)可利用的輸入數(shù)據(jù)包括但不限于:用戶的基本信息、用戶的賬單信息、用戶的詳單信息、用戶的終端信息、用戶繳費(fèi)情況等各種表結(jié)構(gòu)信息。本次試驗(yàn)采用了電信企業(yè)的用戶賬單信息、用戶詳單信息和終端庫信息3張表中的字段,通過用戶編號user_id的關(guān)聯(lián),匯聚成一張數(shù)據(jù)寬表,其中賬單和詳單信息使用至少3個月以上的信息(見表1)。

表1 數(shù)據(jù)寬表

為了增加模型的有效性,可以通過單個算法的測試以及融合多個算法的測試,例如可以在實(shí)踐應(yīng)用時,第1次采用邏輯回歸算法建模和預(yù)測,第2次采用決策樹算法,第3次采用XGBoost算法,第4次采用將邏輯回歸和XGBoost算法的結(jié)果合并的預(yù)測方法。采用XGBoost算法建模的實(shí)驗(yàn)偽代碼如下。

第1步:

#導(dǎo)入xgboost模塊:

import xgboost as xgb

第2步:

#讀取訓(xùn)練屬性,為建模準(zhǔn)備輸入數(shù)據(jù):用戶離網(wǎng)預(yù)測是一個典型的有監(jiān)督分類問題。因此需要讀入訓(xùn)練特征,以及目標(biāo)標(biāo)識:

feature_file_name = "train.feat"

target_file_name = "train.target"

feature_file = open(feature_file_name,'rt')

target_file = open(target_file_name,'rt')

#準(zhǔn)備矩陣型訓(xùn)練數(shù)據(jù):

#讀寫樣本特征,生成訓(xùn)練矩陣training_matrix和目標(biāo)列表target_list。

第3步:

#生成訓(xùn)練模型,在測試集上驗(yàn)證并調(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步:

#使用及應(yīng)用。將生成的xgb模型用于需要生成標(biāo)簽的樣本集。

#加載樣本屬性數(shù)據(jù)

#加載訓(xùn)練模型數(shù)據(jù)

bst = xgb.Booster({'nthread':4})

bst.load_model("model.xgb")

#預(yù)測

dtest = xgb.DMatrix(trainingMatrix)

y_pred = bst.predict(dtest)

result_list = (y_pred ≥ 0.5) × 1

#結(jié)果寫入文件

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 總結(jié)

使用機(jī)器學(xué)習(xí)來預(yù)測用戶離網(wǎng),是大數(shù)據(jù)相關(guān)技術(shù)在電信企業(yè)的一個典型應(yīng)用[8-11]。機(jī)器學(xué)習(xí)在現(xiàn)代的應(yīng)用已經(jīng)相當(dāng)廣泛,用戶可以不必再開發(fā)最原始的算法代碼,而是直接安裝、調(diào)用現(xiàn)成的模塊或者API。電信企業(yè)的數(shù)據(jù)資產(chǎn)是寶貴的礦藏,通過數(shù)據(jù)挖掘,無論是用于提升企業(yè)內(nèi)部運(yùn)營效率,還是和外部合作進(jìn)行行業(yè)應(yīng)用支撐,都將是一筆非?捎^的財(cái)富。

參考文獻(xiàn):

[1] HARRINGTON P.機(jī)器學(xué)習(xí)實(shí)戰(zhàn)[M].李銳,李鵬,曲亞東,等,譯.北京:人民郵電出版社,2013

[2] 王凱. 數(shù)據(jù)挖掘在移動離網(wǎng)用戶分析模型中的研究與應(yīng)用[D]. 鄭州:鄭州大學(xué),2014.

[3] 陳康,向勇,喻超.大數(shù)據(jù)時代機(jī)器學(xué)習(xí)的新趨勢[J].電信科學(xué),2012,28(12):88-95.

[4] 周志華,王玨. 機(jī)器學(xué)習(xí)及其應(yīng)用[M]. 北京:清華大學(xué)出版社,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)絡(luò)離網(wǎng)用戶預(yù)測及分析[D]. 北京:北京郵電大學(xué),2017.

[9] 陳曄. 基于組合預(yù)測的電信客戶流失預(yù)測分析[D].長沙:湖南大學(xué),2011.

[10] 楊曉峰,嚴(yán)建峰,劉曉升,等.深度隨機(jī)森林在離網(wǎng)預(yù)測中的應(yīng)用[J].計(jì)算機(jī)科學(xué),2016,43(6):208-213.

[11] 趙慧,劉穎慧,崔羽飛,等.機(jī)器學(xué)習(xí)在運(yùn)營商用戶流失預(yù)警中的運(yùn)用[J].信息通信技術(shù),2018,12(1):14-21.

來源:郵電設(shè)計(jì)技術(shù)


微信掃描分享本文到朋友圈
掃碼關(guān)注5G通信官方公眾號,免費(fèi)領(lǐng)取以下5G精品資料
  • 1、回復(fù)“YD5GAI”免費(fèi)領(lǐng)取《中國移動:5G網(wǎng)絡(luò)AI應(yīng)用典型場景技術(shù)解決方案白皮書
  • 2、回復(fù)“5G6G”免費(fèi)領(lǐng)取《5G_6G毫米波測試技術(shù)白皮書-2022_03-21
  • 3、回復(fù)“YD6G”免費(fèi)領(lǐng)取《中國移動:6G至簡無線接入網(wǎng)白皮書
  • 4、回復(fù)“LTBPS”免費(fèi)領(lǐng)取《《中國聯(lián)通5G終端白皮書》
  • 5、回復(fù)“ZGDX”免費(fèi)領(lǐng)取《中國電信5GNTN技術(shù)白皮書
  • 6、回復(fù)“TXSB”免費(fèi)領(lǐng)取《通信設(shè)備安裝工程施工工藝圖解
  • 7、回復(fù)“YDSL”免費(fèi)領(lǐng)取《中國移動算力并網(wǎng)白皮書
  • 8、回復(fù)“5GX3”免費(fèi)領(lǐng)取《R1623501-g605G的系統(tǒng)架構(gòu)1
  • 本周熱點(diǎn)本月熱點(diǎn)

     

      最熱通信招聘

      最新招聘信息