盧光躍, 閆真光, 呂少卿, 吳 洋
(西安郵電大學(xué) 陜西省信息通信網(wǎng)絡(luò)及安全重點(diǎn)實(shí)驗(yàn)室, 陜西 西安 710121)
電信用戶網(wǎng)別更換是指原有使用電信運(yùn)營商2G、3G網(wǎng)絡(luò)服務(wù)的用戶遷移至該運(yùn)營商的4G網(wǎng)絡(luò)。電信用戶網(wǎng)別更換是一種非契約關(guān)系下的用戶遷移。在非契約關(guān)系下,用戶發(fā)生遷移網(wǎng)絡(luò)行為甚至離網(wǎng)行為很難被電信運(yùn)營商所知,而利用數(shù)據(jù)挖掘模型,則可準(zhǔn)確識(shí)別即將換網(wǎng)的潛在目標(biāo)用戶,對其進(jìn)行針對性的勸轉(zhuǎn)分流。
電信業(yè)務(wù)預(yù)測本質(zhì)上屬于監(jiān)督學(xué)習(xí)的分類任務(wù),但真實(shí)電信用戶數(shù)據(jù)集中的分類問題,如用戶欠費(fèi)、用戶離網(wǎng)以及用戶網(wǎng)別更換等問題都是不平衡比例較大的分類問題?,F(xiàn)有的決策樹、隨機(jī)森林和支持向量機(jī)等分類器算法,通常在均衡數(shù)據(jù)集上具有良好的分類效果[1],而對不平衡數(shù)據(jù)進(jìn)行預(yù)測時(shí),會(huì)偏向多數(shù)類樣本而忽略少數(shù)類樣本的預(yù)測性能,導(dǎo)致分類器算法對少數(shù)類樣本預(yù)測精度遠(yuǎn)小于對多數(shù)類樣本預(yù)測精度[2-3]。
目前,處理不平衡數(shù)據(jù)集有數(shù)據(jù)層面和算法層面[4]兩種解決途徑。算法層面主要是對分類器算法進(jìn)行改善以適應(yīng)不平衡數(shù)據(jù),但這樣會(huì)增加算法開銷[5-7]。數(shù)據(jù)層面方法主要使用過采樣和欠采樣技術(shù)對原始數(shù)據(jù)進(jìn)行均衡處理[8]。人工合成少數(shù)類過采樣方法(synthetic minority oversampling technique,SMOTE)[9]通過對少數(shù)類樣本的插值進(jìn)行數(shù)據(jù)擴(kuò)充,可應(yīng)用于各不平衡子集,結(jié)合隨機(jī)森林分類器實(shí)現(xiàn)分類預(yù)測[10];或者給少數(shù)類邊界樣本更高的支持度,從而根據(jù)支持度較高的樣本進(jìn)行SMOTE采樣,以避免過采樣的盲目性[11]。欠采樣技術(shù)則是對多數(shù)類采樣,自動(dòng)聚類欠采樣(automatic clustering under-sampling,ACUS)通過帶有樣本權(quán)值的聚類,選擇每個(gè)簇中權(quán)值較高的多數(shù)類樣本和全部少數(shù)類樣本,構(gòu)建平衡數(shù)據(jù)集提高分類器算法精度[12];基于遺傳算法的欠采樣方法(under-sampling method using genetic algorithm,GAUS)通過遺傳算法進(jìn)行多數(shù)類樣本選擇,并且使用分類器性能作為遺傳算法的適應(yīng)函數(shù)以避免分類邊界的失真[13]。但是,單獨(dú)采用欠采樣或者過采樣方法,都會(huì)發(fā)生關(guān)鍵數(shù)據(jù)丟失或模型過擬合的問題。
基于具有噪聲的密度聚類欠采樣方法(density-based spatial clustering of applications with noise,DBSCAN)[14]不必事先指定簇?cái)?shù)目,并對噪聲數(shù)據(jù)不敏感,根據(jù)數(shù)據(jù)中元素密度進(jìn)行數(shù)據(jù)集聚類,便能夠分析出任意空間形狀。因此,本文擬基于DBSCAN與SMOTE相結(jié)合的混合采樣方法(DS-HS),對電信用戶數(shù)據(jù)集進(jìn)行均衡處理,并利用Stacking集成學(xué)習(xí)算法訓(xùn)練得出分類結(jié)果,從而建立網(wǎng)別預(yù)測模型,識(shí)別潛在的網(wǎng)別更換用戶。
電信用戶數(shù)據(jù)包括脫敏后用戶標(biāo)識(shí)、用戶入網(wǎng)齡、用戶性別、用戶年齡、月使用流量、月通話時(shí)長和使用網(wǎng)別等12維屬性。其中數(shù)值類型屬性可以直接使用,性別屬性需通過one-hot編碼后使用。確定電信用戶數(shù)據(jù)集的網(wǎng)別更換標(biāo)簽,便可利用混合采樣方法對電信用戶數(shù)據(jù)集進(jìn)行均衡處理,再通過Stacking集成學(xué)習(xí)算法訓(xùn)練分類預(yù)測模型,從而完成網(wǎng)別更換的分類預(yù)測。
將電信用戶前10個(gè)月的使用數(shù)據(jù)作為歷史數(shù)據(jù),后2個(gè)月的用戶信息生成用戶換網(wǎng)標(biāo)簽,0表示網(wǎng)別未發(fā)生改變,1表示網(wǎng)別改變。電信用戶數(shù)據(jù)集中始終使用4G網(wǎng)絡(luò)的用戶占數(shù)據(jù)集多數(shù),為多數(shù)類樣本,對應(yīng)標(biāo)簽為0;電信用戶數(shù)據(jù)集中2G、3G網(wǎng)絡(luò)遷移至4G網(wǎng)絡(luò)的用戶占數(shù)據(jù)集少數(shù),為少數(shù)類樣本,對應(yīng)標(biāo)簽為1。
設(shè)多數(shù)類樣本鄰域半徑為ε,鄰域半徑內(nèi)包含最少樣本點(diǎn)個(gè)數(shù)為Mp。若某一多數(shù)類樣本的ε領(lǐng)域內(nèi)樣本點(diǎn)個(gè)數(shù)大于Mp,則為核心用戶點(diǎn);若小于Mp且在其余核心用戶點(diǎn)鄰域半徑內(nèi),則為邊界樣本點(diǎn);余下樣本點(diǎn)屬于噪聲樣本。
將DBSCAN聚類過程遍歷多數(shù)類樣本集,并設(shè)置ε=0.8、Mp=15實(shí)現(xiàn)樣本標(biāo)識(shí)。若某一多數(shù)類樣本點(diǎn)被標(biāo)識(shí)為核心用戶點(diǎn),則創(chuàng)建包含該樣本點(diǎn)的新簇C,并將其鄰域內(nèi)全部樣本對象放入簇C的候選集中。若候選集中樣本對象還未屬于其他簇,則檢查候選樣本鄰域內(nèi)是否包含至少M(fèi)p個(gè)樣本點(diǎn),滿足則添加至簇C;遍歷檢查候選集中樣本并擴(kuò)展簇C。循環(huán)檢查每次加入簇C中的候選集,直至簇C中再無新樣本點(diǎn)加入,即簇C完成聚類。從剩余多數(shù)類樣本集合中隨機(jī)選擇未被標(biāo)識(shí)的樣本點(diǎn),根據(jù)上述過程繼續(xù)聚類,直至所有樣本點(diǎn)遍歷完畢,最終完成多數(shù)類樣本集合的DBSCAN聚類。
利用DBSCAN聚類實(shí)現(xiàn)電信用戶多數(shù)類樣本集合的簇集合劃分,剔除所有噪聲樣本點(diǎn),選擇各簇中的核心樣本點(diǎn)提升欠采樣效果。
SMOTE過采樣通過啟發(fā)式方法合成少數(shù)類樣本,避免對少數(shù)類樣本的反復(fù)選擇,使用插值生成新的少數(shù)類樣本,從而避免分類器模型的過擬合[12]。過采樣方法步驟如下。
步驟1設(shè)少數(shù)類樣本集合
D={x1,x2,…,xM},
其中xM表示第M個(gè)樣本,初始化過采樣率為N。
步驟2利用歐式距離計(jì)算所有少數(shù)類樣本與樣本xM的距離,得到k個(gè)最近鄰樣本。
步驟3根據(jù)過采樣率N,從k個(gè)最近鄰樣本中隨機(jī)選擇P個(gè)樣本。假設(shè)最近鄰樣本為xp,[0,1]區(qū)間內(nèi)的隨機(jī)數(shù)為ω,則新合成的少數(shù)類樣本可表示為
x′=xM+ω(xp-xM)。
(1)
步驟4依次選擇少數(shù)類樣本集合中每一個(gè)樣本并確定其最近鄰樣本,再根據(jù)式(1)生成新樣本,最終實(shí)現(xiàn)全體少數(shù)類樣本的過采樣。
對于電信用戶數(shù)據(jù)集生成標(biāo)簽后的兩類樣本集合,并行使用過采樣和欠采樣構(gòu)建平衡數(shù)據(jù)集。多數(shù)類樣本采樣率為N=1/10,即使用DBSCAN聚類欠采樣,選擇原多數(shù)類樣本總數(shù)的1/10樣本;少數(shù)類樣本則根據(jù)采樣完成后全體多數(shù)類樣本總數(shù)設(shè)定過采樣率,利用SMOTE過采樣插值生成新少數(shù)類樣本,從而完成數(shù)據(jù)集均衡過程。
Stacking(Stacked generalization)也稱堆疊算法[15],是一種基分類器集成學(xué)習(xí)方法,可以整合多個(gè)異質(zhì)基分類器,從而根據(jù)不同基分類器的預(yù)測差異性保證整合后的最終預(yù)測結(jié)果[16]。
將混合采樣均衡后的電信用戶數(shù)據(jù)集輸入至兩層Stacking集成學(xué)習(xí)結(jié)構(gòu),第一層學(xué)習(xí)結(jié)構(gòu)由決策樹、隨機(jī)森林和Adboost等3個(gè)異質(zhì)分類器組成,第二層學(xué)習(xí)結(jié)構(gòu)則由單個(gè)邏輯回歸分類器構(gòu)成。具體網(wǎng)別預(yù)測模型訓(xùn)練過程如下。
步驟1輸入均衡數(shù)據(jù)集I,劃分為訓(xùn)練集Itrain和測試集Itest,設(shè)置交叉驗(yàn)證折數(shù)為10折。
步驟2第一層學(xué)習(xí),將訓(xùn)練集Itrain按照交叉驗(yàn)證折數(shù)劃分10份,挑選其中9份不相交樣本集用于異質(zhì)分類器訓(xùn)練,訓(xùn)練所得分類器對剩余1份樣本集和Itest集合預(yù)測,獲得網(wǎng)別更換標(biāo)簽;重復(fù)上述過程10次,獲得Itrain全部樣本分類預(yù)測結(jié)果和全部異質(zhì)分類器對Itest的10次預(yù)測結(jié)果。
步驟3第一層3個(gè)分類器對Itrain的全部分類預(yù)測標(biāo)簽和其原始網(wǎng)別更換標(biāo)簽構(gòu)成第二層學(xué)習(xí)訓(xùn)練集,對Itest的10次預(yù)測結(jié)果求平均后標(biāo)簽值和其原始類標(biāo)簽構(gòu)成第二層學(xué)習(xí)測試集。
步驟4第二層學(xué)習(xí)。將步驟3中訓(xùn)練數(shù)據(jù)輸入第二層分類器,并完成第二層測試集數(shù)據(jù)的預(yù)測,實(shí)現(xiàn)電信用戶數(shù)據(jù)集網(wǎng)別更換預(yù)測。
構(gòu)建電信用戶網(wǎng)別更換預(yù)測模型的流程如圖1所示。
圖1 電信用戶網(wǎng)別更換預(yù)測模型構(gòu)建流程
實(shí)驗(yàn)數(shù)據(jù)集分別為Crowd sourced Mapping、Winequality-White和Wilt等3個(gè)不平衡的UCI數(shù)據(jù)集[17]及脫敏電信用戶數(shù)據(jù)集,如表1所示。將均衡后的數(shù)據(jù)集中75%樣本為訓(xùn)練數(shù)據(jù),剩余25%為測試數(shù)據(jù)進(jìn)行訓(xùn)練。
根據(jù)不平衡電信數(shù)據(jù)集分類評價(jià)指標(biāo)[18],即少數(shù)類樣本檢測精度TPR、多數(shù)類樣本檢測精度TNR和整體預(yù)測性能的評價(jià)指標(biāo)Gm,分別驗(yàn)證隨機(jī)混合采樣方法、ACUS欠采樣方法、DE-NHS采樣方法[19]和DS-HS采樣方法處理不平衡電信用戶數(shù)據(jù)集的均衡性能,對比結(jié)果如表2所示。由表2可以看出,DS-HS采樣方法預(yù)測網(wǎng)別更換用戶的精度為86.1%,預(yù)測未更換網(wǎng)別用戶的精度為85.5%,整體預(yù)測性能為85.9%,均高于隨機(jī)混合采樣、ACUS和DE-NHS方法,具有較好的數(shù)據(jù)集均衡性能。
采用DS-HS采樣方法,將均衡后數(shù)據(jù)集分別輸入至Stacking、Adaboost和使用投票法代替原Stacking二層分類器的分類算法,進(jìn)而對比預(yù)測結(jié)果,如表3所示。從表3可見,Stacking分類算法預(yù)測少數(shù)類樣本性能和整體預(yù)測精度性能均優(yōu)于Adaboost和Stacking二層投票分類算法。
表1 數(shù)據(jù)集信息描述
表2 不同采樣方法的均衡性能對比
表3 不同分類算法仿真結(jié)果對比
基于混合采樣和Stacking集成學(xué)習(xí)的電信用戶網(wǎng)別預(yù)測模型,根據(jù)歷史用戶數(shù)據(jù)生成網(wǎng)別更換標(biāo)簽,結(jié)合DBSCAN聚類欠采樣去除樣本集中噪聲樣本和SMOTE過采樣插值生成新樣本的混合采樣方法,完成了數(shù)據(jù)集均衡處理。通過Stacking集成學(xué)習(xí)算法訓(xùn)練分類預(yù)測模型,從而完成了網(wǎng)別更換的分類預(yù)測。實(shí)驗(yàn)結(jié)果表明,該模型比隨機(jī)混合采樣、ACUS和DE-NHS采樣方法預(yù)測準(zhǔn)確率高,具有較好的數(shù)據(jù)集均衡性能,同時(shí)與Adaboost和Stacking二層投票分類算法相比,能夠更好識(shí)別潛在的網(wǎng)別更換用戶。