唐靜
摘 要 特征選擇是數(shù)據(jù)預(yù)處理的一個重要手段,本文介紹了特征選擇的幾種常用方法:過濾法,封裝法及這兩種方法的混合,最后結(jié)合客戶流失預(yù)測這個特定的問題提出適當(dāng)?shù)姆椒ā?/p>
關(guān)鍵字 客戶流失預(yù)測 特征選擇 神經(jīng)網(wǎng)絡(luò)
中圖分類號:C93;F830. 文獻(xiàn)標(biāo)識碼:A
一、引言
特征選擇作為一個重要的數(shù)據(jù)預(yù)處理手段,對于我們一個特定的客戶關(guān)系管理問題而言,客戶流失預(yù)測是一個典型的二元分類問題,它將客戶分為流失與不流失,要想建立預(yù)測模型,并不是特征越多越好,我們需要選擇與類別變量最相關(guān)的那些變量。而我們直接從樣本中得到的數(shù)據(jù)往往是十分巨大的,從一家企業(yè)可以得到的數(shù)據(jù)就成千上萬,其特征屬性也會達(dá)到幾十甚至上百,為了對樣本進(jìn)行準(zhǔn)確的識別并為分類器的成功設(shè)計提供一定的基礎(chǔ) ,往往需要進(jìn)行特征選擇,選擇那些對區(qū)別不同類別最有效的特征,而舍去那些對分類毫無關(guān)系的無關(guān)特征及與其他特征表現(xiàn)性能相似的冗余特征。
二、特征選擇的算法
目前普遍使用的是以下三種方法:過濾(Filter)法,封裝(Wrapper)法,嵌入式(Embeded)法,我們這里主要討論前兩種方法及前兩種方法相混合的方法。Filter特征選擇法是基于數(shù)據(jù)的內(nèi)在結(jié)構(gòu)信息而不依賴于各種分類算法對子集的評價 ,它一般直接用訓(xùn)練數(shù)據(jù)的統(tǒng)計性能評估特征,速度較快。Wrapper特征選擇法依賴于分類器的評價準(zhǔn)則,將分類的算法嵌入到特征選擇過程當(dāng)中,目的是達(dá)到最大分類準(zhǔn)確率,偏差小,但計算量較大 。而混合的特征選擇過程算是集兩者之長,補(bǔ)兩者之短。
(一)過濾(Filter)法。
過濾法是基于單個特征屬性的選擇方法,根據(jù)每個特征屬性值進(jìn)行單個評估該屬性與相關(guān)類的關(guān)聯(lián)度,再根據(jù)每個屬性的評估值進(jìn)行排序,選擇排序靠前的屬性。
基于不同的判別標(biāo)準(zhǔn)有多種過濾法,本文在這里僅介紹一種基于Relief的過濾法。
在Filter算法中,Relief是效果較好的filter特征評估方法,它將屬性區(qū)分“相近”樣本的能力作為評估其重要程度的標(biāo)準(zhǔn),它可以去掉無關(guān)特征,但不能去除冗余,而且他只能用于二元分類問題,所以我們一般是先使用Relief算法刪除不相關(guān)屬性,再使用K-means算法對屬性進(jìn)行聚類,刪除冗余屬性,最后是一個組合的特征選擇算法。下圖為特征與目標(biāo)值的相關(guān)系數(shù)。
(二)封裝法(Wrapper)。
封裝法是將分類錯誤率作為特征重要性的評價標(biāo)準(zhǔn),選擇那些可以獲得較高分類性能的特征。
封裝法主要分為無監(jiān)督的學(xué)習(xí)(Unsupervised Learning)和有監(jiān)督的學(xué)習(xí)(Supervised Learning)。無監(jiān)督的學(xué)習(xí)是在樣本的類別標(biāo)簽未定的情況下進(jìn)行數(shù)據(jù)挖掘的方法,它聚類的目的在于將對分類有影響的特征聚在一起。有監(jiān)督的學(xué)習(xí)是指已知類別標(biāo)簽下的數(shù)據(jù)挖掘。對客戶流失預(yù)測這個問題而言,我們已知其類別標(biāo)簽為“流失”與“不流失”,因此應(yīng)當(dāng)用后一種方法。
在有監(jiān)督的學(xué)習(xí)中,有許多分類器,而由于神經(jīng)網(wǎng)絡(luò)分類器的容錯性,自適應(yīng)性和模式識別能力,它適合處理那些含有噪聲的數(shù)據(jù),它允許長時間的訓(xùn)練,輸入的特征之間可以具有高度的相關(guān)性 ,所以它非常適合處理客戶流失預(yù)測特征選擇這個問題。它的訓(xùn)練過程是:訓(xùn)練BP神經(jīng)網(wǎng)絡(luò),根據(jù)網(wǎng)絡(luò)的結(jié)構(gòu)參數(shù)計算不同的特征對輸出的靈敏度,去除靈敏度小的特征,用剩下的特征組成的特征子集再去訓(xùn)練BP神經(jīng)網(wǎng)絡(luò),以此反復(fù),直到子集為空。
(三)混合特征選擇。
一般的特征選擇數(shù)據(jù)樣本較大,時間復(fù)雜度較高,所以單用 Filter和Wrapper算法均無法達(dá)到很好的效果,而這兩種算法是兩種互補(bǔ)的模式,兩者結(jié)合使用效果更佳?;旌咸卣鬟x擇有兩個階段,一是先用過濾法去掉大量的無關(guān)特征,大大降低了特征規(guī)模。在第二階段,用封裝法處理剩余的特征來選擇出關(guān)鍵特征,下圖為特征選擇基本框架。
三、基于客戶流失預(yù)測的特征選擇方法
在客戶流失預(yù)測這個特定的問題下,可以用K-means算法的方法對屬性進(jìn)行聚類,然后從每一類里面選擇一部分(比如隨機(jī)選一半,這只是最簡單的思路)屬性出來,共同構(gòu)成一個特征子集,或者者隨機(jī)子空間的方法即隨機(jī)選擇特征子集,最后以模型在測試集上的總的分類精度,以及各類的精度來選擇出好的屬性。這時候,再將初選后的數(shù)據(jù)交給封裝法,用它來進(jìn)一步處理數(shù)據(jù)。
這里要以各類的精度來選擇出好的屬性,是因為用于客戶流失預(yù)測建模的客戶數(shù)據(jù)的類別分布往往是不平衡的,很多時候流失客戶與不流失客戶的數(shù)量之比能達(dá)到1:100 甚至更小。當(dāng)客戶數(shù)據(jù)類別分布不平衡時,僅以總的的分類精度來判定很難取得令人滿意的結(jié)果,因此我們常常用總的和各類的精度一起作為選擇好屬性的標(biāo)準(zhǔn)。
如下是這個問題的神經(jīng)網(wǎng)絡(luò)函數(shù)定義的部分。
[Percent1,Percent2,Y11,Y22,P,R,predict]=NN_class(train_data,test_data,NodeNum,Num)
4個輸入?yún)?shù)是訓(xùn)練集,測試集,隱層節(jié)點,數(shù)據(jù)集類別數(shù)。
輸出分別是訓(xùn)練集分類精度,測試集分類精度,訓(xùn)練集和測試集的預(yù)測輸出,R是混淆矩陣,predict是測試集類別標(biāo)簽預(yù)測值。
四、結(jié)論
如今特征選擇的方法很多,但如何針對特定的問題提出合理的解決辦法仍需要進(jìn)一步研究。本文首先提出了特征選擇的常用方法,再詳細(xì)介紹了纏繞法與封裝法及混合方法,然后結(jié)合客戶流失預(yù)測這個問題提出了解決方法,將纏繞法與封裝法結(jié)合使用,選擇神經(jīng)網(wǎng)絡(luò)分類器進(jìn)行研究,可以較好地滿足實際的需求。從現(xiàn)在特征選擇的前沿方向來看,這種混合方法的使用也是一個很值得探索的方向。
(作者:四川大學(xué)商學(xué)院2010級管理科學(xué)專業(yè)學(xué)生)
注釋:
楊淑瑩.模式識別與智能計算——Matlab技術(shù)實現(xiàn).電子工業(yè)出版社.2011.8.
周昉,何潔月.生物信息學(xué)中基因芯片的特征選擇技術(shù)綜述.計算機(jī)科學(xué).2007.
姚旭,王曉丹,等.特征選擇方法綜述.控制與決策.2012.2.
Tom Mitchell.Machine Learning.機(jī)械工業(yè)出版社.2003.1.