盧光躍, 張宏建, 閆真光, 吳 洋
(西安郵電大學 陜西省信息通信網(wǎng)絡及安全重點實驗室, 陜西 西安 710121)
隨著通信和互聯(lián)網(wǎng)行業(yè)的快速發(fā)展,電信客戶更換運營商的次數(shù)日益增加。運營商獲取一個新客戶的成本是維持原有客戶成本的5~6倍,但是每增加5%的客戶,就可為運營商帶來將近85%的收益。因此,有效地預測客戶離網(wǎng)情況,可提升客戶挽留率[1]。
在預測電信客戶離網(wǎng)時,利用數(shù)據(jù)挖掘領域中的二分類問題,可對電信客戶是否離網(wǎng)進行判斷。常用的算法包括K近鄰算法(K-nearest neighbors method, KNN)[2]、隨機森林算法[3]和支持向量機(support vector machine,SVM)算法[4]等。KNN算法優(yōu)點是預測精度高、對異常值不敏感,缺點是計算復雜度大[5];隨機森林算法擅長處理高維數(shù)據(jù),泛化能力強,但是存在過擬合問題[6];SVM算法對小樣本數(shù)據(jù)的測試環(huán)境適應能力強,分類精度高,但是單一的SVM算法復雜度高[7]。隨著電信業(yè)務的不斷擴大,使得電信數(shù)據(jù)量增加,維度變高,導致上述幾種分類算法在預測電信客戶離網(wǎng)時出現(xiàn)過擬合現(xiàn)象,不能高效、準確地預測出電信客戶離網(wǎng)情況。
針對數(shù)據(jù)挖掘算法在預測電信客戶離網(wǎng)時存在的過擬合問題,提出一種基于特征選擇和支持向量機(feature selection and support vector machine,F(xiàn)SSVM)的電信客戶離網(wǎng)預測算法。將預處理后的電信數(shù)據(jù)進行特征選擇,找出影響電信客戶離網(wǎng)的主要因素,去除不相關或冗余特征,降低數(shù)據(jù)維度,防止過擬合;然后將處理后的數(shù)據(jù)作為SVM算法的輸入數(shù)據(jù),對客戶是否離網(wǎng)進行分類,預測客戶是否存在離網(wǎng)行為。
電信運營商數(shù)據(jù)由數(shù)值屬性和非數(shù)值屬性兩個部分組成。數(shù)值屬性可以直接使用,但是非數(shù)值屬性需通過整數(shù)編碼后才能使用。在預測電信客戶離網(wǎng)時,原始數(shù)據(jù)集存在4個方面問題:數(shù)據(jù)缺失,如某些數(shù)據(jù)沒有記錄;數(shù)據(jù)冗余,如所在城市的編碼和城市的名稱是對同一特征的不同表現(xiàn)形式;數(shù)據(jù)非結構化,如是否貴賓(very important people VIP)、是否欠費、是否離網(wǎng)等特征,這類特征存在“是”和“否”兩種非結構化屬性;數(shù)據(jù)不規(guī)范,如欠費和通話時長具有不同的量綱。問題的存在,嚴重影響預測離網(wǎng)客戶的精度,因此,在對原始數(shù)據(jù)進行離網(wǎng)預測前,需對數(shù)據(jù)進行預處理,消除這些問題的影響。電信數(shù)據(jù)預處理流程如圖1所示。
圖1 數(shù)據(jù)預處理流程
(1) 填充缺失值
根據(jù)數(shù)據(jù)本身的特點,通過刪除部分數(shù)據(jù)、擱置缺失數(shù)據(jù)或者對缺失數(shù)據(jù)進行插補等方法填充不足的內容。當原始數(shù)據(jù)集數(shù)據(jù)較大時,可以采取刪除少量的缺失樣本使數(shù)據(jù)集完整;若原始數(shù)據(jù)有較高的完備性,或者沒有明確要求必須填充缺失的內容,則可以不對原始數(shù)據(jù)進行處理;為了盡可能減少數(shù)據(jù)缺失的信息,可以通過樣本的中值、中位數(shù)或者是固定的值進行數(shù)據(jù)的填充。
(2) 去除冗余特征
通過檢索原數(shù)據(jù)集中多次出現(xiàn)的同一屬性,以及不同表現(xiàn)形式的同一個屬性去掉冗余特征。
(3) 數(shù)據(jù)結構化
在電信數(shù)據(jù)中,非數(shù)值屬性是通過文字的方式進行描述,不能直接使用,需要進行整數(shù)編碼。如是否為VIP、是否離網(wǎng)等屬性,可以將“是”編碼為“1”,“否”編碼為“0”,使非結構化數(shù)據(jù)轉變成結構化數(shù)據(jù)。
(4) 數(shù)據(jù)歸一化
原始數(shù)據(jù)中某些屬性量鋼不統(tǒng)一,影響特征選擇。如通話費用、短信發(fā)送量、月通話時長等單位。利用數(shù)據(jù)歸一化可消除量鋼差異,其歸一化屬性的數(shù)值計算表達式[8]為
(1)
在特征工程當中,通過特征選擇[9-10]過程,去除不相關或者相關性較小的特征,將更少的特征應用于機器學習流程。信息增益[11]反映某個特征對分類的影響程度,在進行特征選擇時,只需選擇信息增益值大的特征即可[12]。在預測電信客戶離網(wǎng)時,利用信息增益進行特征選擇。
設預處理后的電信數(shù)據(jù)訓練集為D,其特征A的信息增益值[13]為
g(D|A)=H(D)-H(D|A),
(2)
式中H(D)為集合D的熵,H(D|A)是特征A給定條件下D的條件熵。
將電信數(shù)據(jù)分為訓練集Dtrain和測試集Dtest,將Dtrain中的特征依次代入式(2),計算每個特征的信息增益值,并將其從大到小進行排序。根據(jù)電信數(shù)據(jù)本身的特點,設定閾值,去除信息增益值小于閾值的特征,剩余的特征即是影響電信客戶離網(wǎng)的主要因素。
在訓練數(shù)據(jù)集上運用SVM算法,找到分類最大間隔分離超平面[14],將正、負例樣本點準確分類。如圖2所示,實圈代表正例,空圈代表負例,H為超平面,H1和H2分別表示正例和負例中離超平面最近且相互平行的平面,H1和H2之間的間距2/‖w‖為分類間隔。
圖2 最大間隔分離超平面
以二類分類為例,假設輸入的訓練數(shù)據(jù)集為Dtrain={(x1,y1),(x2,y2),…,(xN,yN)},xi∈N代表N維樣本,yi∈{+1,-1},(i=1,2,…,N)代表樣本類別標簽。通過映射函數(shù)Φ(x),將輸入的訓練集Dtrain映射到某個高維度的線性空間中,在映射后的空間中求解最優(yōu)分類平面wΦ(x)+b=0,其中w為分類平面的法向量,b為分類平面的截距。為尋求最大間隔分離超平面,優(yōu)化目標函數(shù)[15]
(3)
式中,ξi為松弛變量,C為懲罰因子,用于平衡結構風險和經(jīng)驗風險。在保證錯分樣本盡可能少的前提下,C值越大,預測電信客戶離網(wǎng)分類效果越好。
上述問題(3)為求解凸二次規(guī)劃[16]問題,利用拉格朗日對偶性,可將原始問題轉化成對偶問題,求得最優(yōu)解的表達式[17]為
(4)
其中α=(α1,α2,…,αN)T為拉格朗日乘子向量。由式(4)可得
(5)
則分類決策函數(shù)[18]可表示為
(6)
通過式(6)便可以將正負例樣本分到超平面的兩端。根據(jù)電信數(shù)據(jù)特點,選取高斯徑向基核函數(shù)[19],K(x,xi)=e-σ‖x-xi‖2。其中σ為核函數(shù)寬度,xi為Dtrain中的樣本。
FSSVM算法去除了對電信客戶離網(wǎng)預測相關性小或者不相關的特征,降低了數(shù)據(jù)維度,改善了SVM算法復雜度高、容易過擬合的問題,提高了算法的預測速度。FSSVM算法具體步驟如下。
步驟1將原始數(shù)據(jù)進行數(shù)據(jù)缺失值填充、去除噪聲點、數(shù)據(jù)冗余識別、數(shù)據(jù)結構化和歸一化等預處理。
步驟2隨機選取80%數(shù)據(jù)作為訓練集Dtrain,其中20%數(shù)據(jù)作為測試集Dtest。
步驟3通過式(2)計算Dtrain中每個特征的信息增益值,并將其從大到小進行排序。根據(jù)設定的閾值,去除不相關或者相關性較小的特征,降低數(shù)據(jù)維度,防止過擬合。
步驟4根據(jù)式(6)判斷xi的分類類別。當f(xi)≥1時判斷客戶離網(wǎng),當f(xi)≤-1時判斷客戶沒有離網(wǎng)。調整懲罰因子C的值,直至xi的分類效果達到最優(yōu)。
步驟5去除Dtest中和Dtrain中不一樣的特征。將Dtest中樣本xi作為輸入數(shù)據(jù),對客戶是否離網(wǎng)進行分類,預測客戶離網(wǎng)行為。
將某電信運營商數(shù)據(jù)集中的3 250條數(shù)據(jù)作為實測數(shù)據(jù),隨機選取80%即2 600條數(shù)據(jù)作為訓練集,剩余20%即650條數(shù)據(jù)作為測試集。數(shù)據(jù)的基本屬性包括是否VIP、客戶屬性、是否離網(wǎng)、是否主動離網(wǎng)等,其中非數(shù)值屬性需經(jīng)過整數(shù)編碼后使用。
為了驗證算法的有效性,根據(jù)預測電信客戶離網(wǎng)分類效果評價指標[20-21], FSSVM算法與KNN、隨機森林、邏輯回歸、Adaboost和SVM算法的預測結果如表1所示。
表1 電信客戶離網(wǎng)預測結果
由表1可以看出,在預測電信客戶是否離網(wǎng)時,F(xiàn)SSVM算法預測離網(wǎng)客戶時的正確率為86%,預測非離網(wǎng)客戶的正確率為90.05%,整體評價指標為88.22%,優(yōu)于KNN、隨機森林、邏輯回歸、Adaboost和SVM等算法,提升了離網(wǎng)客戶預測準確率。
FSSVM算法將原始電信數(shù)據(jù)進行預處理后,利用信息增益的方法進行特征選擇,去除了對電信客戶離網(wǎng)預測相關性小或者不相關的特征,降低了數(shù)據(jù)維度,防止過擬合現(xiàn)象發(fā)生。測試結果表明,該算法預測離網(wǎng)客戶的正確率為86%,比其他預測客戶離網(wǎng)算法的準確率更高,提升了離網(wǎng)客戶預測準確率。