摘 要:應用簡易支持向量機(SSVM)進行客戶流失預測,以提高機器學習方法的預測能力。以國外電信公司客戶流失預測為實例,與最近鄰算法(NPA)進行了對比,發(fā)現(xiàn)該方法在獲得與NPA近似準確率的條件下,所花費的時間和時間增加值遠小于NPA,是研究客戶流失預測問題的有效方法。
關鍵詞:客戶流失; 簡易支持向量機; 預測
中圖分類號:F830.133 文獻標志碼:A
文章編號:1001-3695(2010)03-0904-03
doi:10.3969/j.issn.1001-3695.2010.03.026
Customer churn prediction based on simple support vector machine
XIA Guo-en
(Dept. of Business Management , Guangxi UniversityofFinance Economics, Nanning 530003, China)
Abstract:To improve the prediction abilities of machine learning methods, this paper applied a simple support vector machine(SSVM) to customer churn prediction. The method was compared with NPA regarding customer churn prediction for foreign telecommunication carrier. It was found that the method need less time and adding time with the consistent precision, and provided an effective measurement for customer churn prediction.
Key words:customer churn; simple support vector machine(SSVM); prediction
0 引言
客戶流失預測是利用客戶記錄歷史數(shù)據(jù),對潛在的流失客戶進行判斷的過程。為了進一步提高預測模型的精度和穩(wěn)定性,近年來,研究人員開始探索基于結(jié)構(gòu)風險最小化原則的預測方法,這使客戶流失預測研究跨入了基于統(tǒng)計學習理論的預測方法研究階段。該類方法主要以支持向量機(support vector machine,SVM)為代表。趙宇等人[1]針對美國Duke大學客戶關系管理中心的調(diào)查數(shù)據(jù),利用改進的SVM來預測未來可能流失的客戶,取得了較高的整體準確率。Shao等人[2]為了平衡由數(shù)據(jù)抽樣帶來的預測偏差,引入了三種AdaBoost 算法,并利用SVM方法建立了預測模型。夏國恩等人[3~5]應用基于結(jié)構(gòu)風險最小化準則的SVM進行客戶流失預測,以提高機器學習方法的預測能力。但是,在處理實際大規(guī)模客戶流失預測問題時,由于存儲和計算量兩方面的要求,標準SVM所花費的時間成本過大。事實上,這些算法都要存儲與訓練樣本集相應的核矩陣,然而存儲核矩陣所需的內(nèi)存是隨著訓練樣本集中樣本點個數(shù)的平方增長的。當樣本點數(shù)以成千計時,所需內(nèi)存已相當大。例如,當樣本點數(shù)目超過4 000時,存儲核函數(shù)矩陣需要多達128 MB內(nèi)存[6]。另外,這些算法往往包含大量的矩陣運算,所需時間往往過長。上述事實迫使研究者設計專門針對SVM的新算法。專用算法的一個共同特點是:將大規(guī)模的原始問題分解成若干小規(guī)模的子問題,按照某種迭代策略,反復求解子問題,構(gòu)造出原問題的近似解,并使該近似解逐漸收斂到原始問題的最優(yōu)解。根據(jù)子問題的選取和迭代策略的不同,研究者提出的專用算法有選塊(chunking)算法[7]、分解(decomposing)[8]算法、序列最小最優(yōu)[9](sequential minimal optimization,SMO)算法和最近鄰算法[10](nearest point algorithm,NPA)。因此,將快速SVM迭代算法應用到客戶流失預測中是有必要的。
針對上述問題,本文在借鑒文獻[11]研究簡易支持向量機(SSVM)的基礎上,建立了用于客戶流失的SSVM預測模型。通過對某電信公司未來潛在的客戶進行預測,驗證了該方法在客戶流失預測中的有效性和可靠性。
1 簡易支持向量機原理
SSVM方法的主要思想是通過連續(xù)地增加數(shù)據(jù)點到解決方案中,使得一些處理過程能融合于每個分離的數(shù)據(jù)點。與在全體數(shù)據(jù)中運用相同處理過程的傳統(tǒng)SVM相比,這種方法能大大減少計算時間。其算法主要是將數(shù)據(jù)分成三組:工作組、靜止組和限制組。在這些組都是已知的情況下,解決SVM的優(yōu)化問題只需要工作組;同時該算法通過一個固定的方案來檢測組間的相關性,如果不相關,那么這些組就要更新。其迭代步驟可參看算法1。對于SSVM的詳細描述可參看文獻[11]。
算法1 SSVM
(Is,Io,Ic)←初始化
while 最小限制 == ‘假’
(a,λ)沒有任何限制
ifai≤0或者ai≥C
在允許的組中投影a
從Is到Io或者Io轉(zhuǎn)換相關聯(lián)的點, 在Is中變換相關聯(lián)的點到Io或Ic
else
在Ic和Io中尋找最好的候選變量xcand
if xcand被找到
轉(zhuǎn)換xcand成Is
else
最小限制為‘真’
end if
end if
end while
2 基于簡易支持向量機的客戶流失預測實證研究
2.1 指標體系的建立與數(shù)據(jù)預處理
本文數(shù)據(jù)來源于美國Duke大學TERADATA客戶關系管理中心,該數(shù)據(jù)包括6個月的客戶數(shù)據(jù),因此本研究將前4個月的客戶數(shù)據(jù)作為輸入指標,第6個月的客戶狀態(tài)為輸出指標,中間預留1個月作為時間延遲。首先對有30%以上缺失值的指標進行刪除,然后通過指標均值對缺失項進行處理,最后進行穩(wěn)健性處理,選用兩倍、三倍標準差檢驗進行異常數(shù)據(jù)剔除。通過抽樣,最終獲得1 678個訓練客戶樣本數(shù)據(jù)(其中835個非流失客戶,843個為流失客戶)、1 558個與訓練客戶樣本相同時間下的測試客戶樣本數(shù)據(jù)(其中1 347個非流失客戶,211個為流失客戶)、1 501個(其中1 325個非流失客戶,176個為流失客戶)比上述測試客戶樣本數(shù)據(jù)晚2~3個月的未來時間內(nèi)的未來客戶樣本數(shù)據(jù)。通過利用SPSS11.5對訓練客戶樣本的數(shù)據(jù)進行因子分析,并用方差最大正交旋轉(zhuǎn)法(VARIMAX)在特征值大于1的情況下,當前樣本數(shù)據(jù)條件下的解釋因子數(shù)為10,其累計方差貢獻為86.26%,從而指標被分成標準使用因子、生命周期使用因子、付費意愿因子、額外開銷因子、使用時間長度因子、客戶關懷因子、無線語音使用因子、產(chǎn)品價值因子、使用變化因子、產(chǎn)品質(zhì)量因子。
2.2 簡易支持向量機模型的構(gòu)造
根據(jù)上述分析,構(gòu)造樣本集(x,y),其中x的維數(shù)為10,y是樣本的類別屬性,對于流失客戶y=1,對于非流失客戶y=-1。對于核函數(shù)和參數(shù)的選擇,通過在MATLAB 6.5上進行實驗分析并借鑒文獻[10]中的參數(shù)選擇,采用參數(shù)σ=1.11的徑向基核函數(shù)K(xi,x)=exp{-|x-xi|22σ2}來構(gòu)造預測模型,在客戶流失率第一個10分位上能取得較好的效果(客戶流失率利用SVR計算)。另外SVR(support vector regression)模型也采用徑向基核函數(shù),其參數(shù)為σ=0.24,C=5,ε=0.02,評價標準為均方差。
2.3 實證結(jié)果分析
通過實證分析對SSVM和目前最優(yōu)秀的學習算法之一的最近鄰算法(NPA)在測試集客戶流失率在第一個10分位上的預測結(jié)果進行了對比。模型評價標準由表1可得:命中率=A/(A+C),覆蓋率=A/(A+B),模型準確率=(A+D)/(A+B+C+D),提升系數(shù)=命中率/驗證數(shù)據(jù)中的客戶流失率。所得到的客戶流失率在第一個10分位上的命中率、覆蓋率、模型準確率和提升系數(shù)如表2、3所示。對預測模型的結(jié)果可信度和可靠性分別利用p=2×N×f+z2a/2±za/2×z2a/2+4×N×f-4×N×f22×(N+z2a/2)和Kappa=Po-Pc1-Pc(其中:N為樣本個數(shù),f為期望成功率,Po=A+DN,Pc=(A+C)×(A+B)+(B+D)×(C+D)N2,a=0.05)來衡量,如表4、5所示。
表1 分類矩陣
樣本中客戶狀態(tài)預測流失預測非流失
實際流失AB
實際非流失CD
注:單位為個數(shù)
表2 當前時間下的預測結(jié)果對比
C
SSVMNPA
計算時間/s命中率覆蓋率準確率提升系數(shù)計算時間/s命中率覆蓋率準確率提升系數(shù)
0.0154.20.2060.9900.2061.52988.20.2300.9060.3551.705
0.154.80.2060.9900.2061.529115.10.2290.8440.3811.695
156.50.1970.9060.2191.461150.70.2370.8750.3941.758
259.40.2450.8130.4451.817187.30.2440.9060.4001.805
359.90.2190.7500.3691.620218.80.2420.9060.3941.790
462.30.2670.7190.5351.981257.90.2460.9060.4061.820
561.80.2310.8440.3871.709269.10.2460.9060.4061.820
1072.40.2500.8750.4321.852409.10.2440.9060.4001.805
5072.60.2020.6560.3941.496966.30.2330.8500.3811.728
10075.50.2380.7500.4521.7601050.70.2200.8440.3481.626
50074.30.2040.7190.3611.5081979.70.2250.8440.3681.667
100074.60.2290.7500.4261.6932335.40.2460.8750.4191.819
表3 未來時間下的預測結(jié)果對比
C
SSVMNPA
計算時間/s命中率覆蓋率準確率提升系數(shù)計算時間/s命中率覆蓋率準確率提升系數(shù)
0.0153.70.1130.9900.1130.96687.30.1190.7650.3331.017
0.155.90.1130.9900.1130.966110.00.1220.7650.3471.043
156.70.1160.9900.1130.991148.90.1120.7060.3340.957
258.30.1190.7650.3331.017187.30.1000.6470.2930.855
359.30.0960.6470.2670.821226.00.1080.7060.3070.923
460.90.0880.4710.3860.752283.20.1160.7650.3130.991
561.70.1120.7650.2860.957281.20.1140.7650.3000.974
1068.70.1170.7650.3201.000432.60.1190.8240.2871.017
5071.70.1200.7650.3401.026943.60.1180.8240.2801.009
10075.20.1340.7650.4131.1451098.00.1070.7650.2530.915
50073.30.1040.6470.3260.8892025.90.1100.7650.2730.940
100074.10.0970.5880.3300.8292400.80.1090.7650.2670.932
表4 當前時間下預測結(jié)果的可信度和可靠性
C
當前時間未來時間
命中率覆蓋率準確率Kappa命中率覆蓋率準確率Kappa
0.01[0.149,0.276][0.958,0.997][0.149,0.276]-0.004 [0.169,0.303][0.848,0.943][0.282,0.434]0.056
0.1[0.149,0.276][0.958,0.997][0.149,0.276]-0.004 [0.169,0.302][0.777,0.893][0.307,0.460]0.052
1[0.142,0.266][0.849,0.942][0.161,0.290]-0.023[0.176,0.311][0.812,0.918][0.319,0.473]0.072
2[0.183,0.318][0.744,0.866][0.369,0.523]0.087[0.182,0.318][0.848,0.943][0.325,0.479]0.087
3[0.161,0.290][0.676,0.811][0.297,0.447]0.008[0.180,0.316][0.848,0.943][0.319,0.473]0.083
4[0.203,0.341][0.643,0.783][0.456,0.611]0.127[0.183,0.320][0.848,0.943][0.330,0.485]0.091
5[0.171,0.303][0.778,0.892][0.313,0.465]0.056[0.183,0.320][0.848,0.943][0.330,0.485]0.091
10[0.188,0.323][0.813,0.918][0.356,0.510]0.100[0.182,0.318][0.848,0.943][0.325,0.479]0.087
50[0.146,0.272][0.578,0.726][0.320,0.472]-0.010[0.172,0.306][0.784,0.898][0.307,0.460]0.054
100[0.177,0.310][0.676,0.811][0.375,0.530]0.069[0.161,0.292][0.777,0.893][0.276,0.427]0.030
500[0.148,0.274][0.643,0.783][0.289,0.439]-0.007[0.165,0.298][0.777,0.893][0.295,0.447]0.044
1000[0.169,0.301][0.676,0.811][0.350,0.504]0.050[0.183,0.320][0.812,0.918][0.343,0.499]0.090
注:計算時間與表2相同。
表5 未來時間下預測結(jié)果的可信度和可靠性
C
當前時間未來時間
命中率覆蓋率準確率Kappa命中率覆蓋率準確率Kappa
0.01[0.072,0.172][0.958,0.997][0.072,0.172]-0.002[0.076,0.180][0.691,0.825][0.262,0.411]0.013
0.1[0.072,0.172][0.958,0.997][0.072,0.172]-0.002[0.078,0.184][0.691,0.825][0.275,0.426]0.018
1[0.074,0.175][0.958,0.997][0.072,0.172]-0.003[0.070,0.172][0.628,0.773][0.263,0.412]-0.002
2[0.077,0.179][0.692,0.824][0.263,0.410]0.013[0.061,0.158][0.567,0.718][0.226,0.370]-0.031
3[0.058,0.152][0.569,0.717][0.203,0.341]-0.038[0.067,0.167][0.628,0.773][0.238,0.384]-0.011
4[0.052,0.143][0.394,0.549][0.312,0.464]-0.053[0.074,0.177][0.691,0.825][0.244,0.391]0.006
5[0.071,0.171][0.692,0.824][0.220,0.361]-0.003[0.072,0.174][0.691,0.825][0.232,0.377]0.002
10[0.075,0.177][0.692,0.824][0.251,0.397]0.008[0.076,0.180][0.755,0.876][0.220,0.363]0.012
50[0.077,0.180][0.692,0.824][0.270,0.417]0.015[0.075,0.179][0.755,0.876][0.214,0.356]0.009
100[0.089,0.196][0.692,0.824][0.338,0.491]0.044[0.066,0.166][0.691,0.825][0.190,0.328]-0.013
500[0.065,0.162][0.569,0.717][0.257,0.403]-0.021[0.069,0.170][0.691,0.825][0.208,0.349]-0.007
1000[0.059,0.153][0.509,0.662][0.260,0.407]-0.036[0.068,0.168][0.691,0.825][0.202,0.342]-0.009
注:計算時間與表3相同。
從表2、4中可以看出,在預測當前時間下的潛在流失客戶時,SSVM獲得與NPA近似相當?shù)拿新省⒏采w率、模型準確率、提升系數(shù)、命中率置信度區(qū)間、覆蓋率置信度區(qū)間、整體準確率置信度區(qū)間和Kappa,所花費的時間遠小于NPA。另外隨著懲罰系數(shù)C的增加,SSVM和NPA所花費的時間都在增加,但SSVM的增加值遠小于NPA。從表3、5可以看出,在預測未來時間的潛在流失客戶時,SSVM所花費的時間和時間增加值也遠小于NPA,不過SSVM和NPA所獲得的命中率、覆蓋率、整體準確率和提升系數(shù)多低于在當前時間下的預測結(jié)果,說明隨著數(shù)據(jù)時間跨度增加,需重新訓練模型才可能得到滿意的結(jié)果。
3 結(jié)束語
本文針對客戶流失中大規(guī)模樣本問題,引入了SSVM方法并取得了比較好的效果。目前的快速預測算法只是基于迭代策略的不同建立的,在后續(xù)工作中,可根據(jù)數(shù)據(jù)的不變性特征來提高快速算法的預測精度。另外,對于核函數(shù)和參數(shù)的選取也需進一步研究。類似的工作也可以啟發(fā)客戶流失以外的其他客戶信息數(shù)據(jù)的分類預測,這樣大規(guī)模的客戶流失問題處理就會更有意義。
參考文獻:
[1]趙宇,李兵,李秀. 基于改進支持向量機的客戶流失分析研究[J]. 計算機集成制造系統(tǒng), 2007,13(1):202-207.
[2]SHAO J B, XIU L, LIU W H. The Application of adaboost in customer churn prediction[C]//Proc ofInternational Conference on Service Systems and Service Management. 2007:1-6.
[3]夏國恩, 陳云, 金煒東. 電信企業(yè)客戶流失預測模型[J]. 統(tǒng)計與決策, 2006(10):163-165.
[4]夏國恩, 金煒東. 客戶流失預測中兩類錯誤的平衡控制研究[J]. 營銷科學學報,2006,2(4):1-7.
[5]夏國恩, 金煒東. 基于支持向量機的客戶流失預測模型[J]. 系統(tǒng)工程理論與實踐,2008,28(1):71-77.
[6]鄧乃揚, 田英杰. 數(shù)據(jù)挖掘中的新方法——支持向量機[M]. 北京:科學出版社,2004:214-221.
[7]CORTES C,VAPNIK V N. Support vector networks[J]. Machine Learning,1995,20(3):273-297.
[8]OSUNA E,F(xiàn)REUND R,GIROSI F. An improved training algorithm for support vector machines[C]//Proc of IEEE Workshop on Neural Networks for Signal Processing. New York: IEEE Press, 1997:276-285.
[9]PLATT J C. Fast training of support vector machines using sequential minimal optimization[C]//Proc of Advances in Kernel Methods: Support Vector Learning.Cambridge, MA: MIT Press,1999:185-208.
[10]KEERTHI S S,SHEVADE S K, BHATTACHARYYA C, et al. A fast iterative nearest point algorithm for support vector machine classifier desin[J]. IEEE Trans on Neural Networks, 2000,11(1):124-136.
[11]夏國恩,金煒東,張葛祥. 融合不變性的簡易支持向量機[J].計算機工程,2006,32(18):184-186.