鞏珂,王霞
(1.北方工業(yè)大學(xué)信息學(xué)院,北京100144;2.中共湖南省委黨校湖南行政學(xué)院,長沙410006)
隨著電商技術(shù)的快速發(fā)展,用戶畫像技術(shù)逐漸興起。從電子商務(wù)應(yīng)用的特征出發(fā),對(duì)互聯(lián)網(wǎng)數(shù)據(jù)進(jìn)行分析,基于分析結(jié)果對(duì)用戶進(jìn)行畫像,并根據(jù)結(jié)果對(duì)用戶進(jìn)行有針對(duì)性的服務(wù),來提高電商平臺(tái)的效益,是現(xiàn)如今電子商務(wù)平臺(tái)的發(fā)展趨勢(shì)。2015年,“互聯(lián)網(wǎng)+”寫進(jìn)政府工作報(bào)告,對(duì)知識(shí)產(chǎn)權(quán)等傳統(tǒng)服務(wù)行業(yè)產(chǎn)生了巨大的影響,出現(xiàn)了一批潛力巨大的新型“互聯(lián)網(wǎng)+知識(shí)產(chǎn)權(quán)”企業(yè)。如何利用互聯(lián)網(wǎng)的優(yōu)勢(shì),提高知識(shí)產(chǎn)權(quán)代理企業(yè)的訂單量,提高用戶的滿意度,增強(qiáng)用戶粘性,值得我們深入探討和研究。
本文在對(duì)某知識(shí)產(chǎn)權(quán)平臺(tái)用戶進(jìn)行畫像研究時(shí),發(fā)現(xiàn)數(shù)據(jù)存在不平衡的情況。不平衡數(shù)據(jù)指的是數(shù)據(jù)集中某一類或某些類的數(shù)量遠(yuǎn)小于其他類,通常比例低于1:2[1]。不平衡分類問題在醫(yī)療診斷[2]、信用卡欺詐行為檢測[3]、軟件缺陷檢測[4]、垃圾郵件判斷等領(lǐng)域尤其常見。傳統(tǒng)的研究方法以總體分類的準(zhǔn)確率為評(píng)價(jià)標(biāo)準(zhǔn),分類結(jié)果會(huì)更多地偏向多數(shù)類樣本,造成結(jié)果不夠準(zhǔn)確,難以獲得有效的分類器。本文通過對(duì)不平衡數(shù)據(jù)的處理,結(jié)合隨機(jī)森林算法,并對(duì)該算法進(jìn)行改進(jìn),提出了一種基于特征組合和SMOTE的隨機(jī)森林算法RFFCS(Random Forest based on Feature Combination and SMOTE),用改進(jìn)后的方法在用戶類型、VIP上進(jìn)行實(shí)驗(yàn)。結(jié)果表明,本文所提方法在少數(shù)類的分類效果上有一定的提升。
對(duì)不平衡數(shù)據(jù)的處理一直是數(shù)據(jù)挖掘領(lǐng)域最具挑戰(zhàn)性的問題之一。由于樣本分布不平衡,多數(shù)類樣本(負(fù)樣本)在總樣本占據(jù)的比重較大,這種情況下訓(xùn)練出來的分類器不能得到很好的效果。目前比較常用的方法是從數(shù)據(jù)層面進(jìn)行改進(jìn)。對(duì)不平衡數(shù)據(jù)集進(jìn)行重構(gòu),使多數(shù)類樣本和少數(shù)類樣本達(dá)到一個(gè)數(shù)量上的平衡,以實(shí)現(xiàn)提高少數(shù)類在傳統(tǒng)分類器上的分類準(zhǔn)確率的目的。
通常的做法是對(duì)樣本進(jìn)行重采樣。包括對(duì)多數(shù)類樣本進(jìn)行的欠采樣(Under-Sampling)、對(duì)少數(shù)類樣本進(jìn)行的過采樣(Over-Sampling),以及結(jié)合了欠采樣和過采樣的混合采樣(Hybrid-Sampling)。
欠采樣的主要思想是通過某種方式選擇部分的多數(shù)類樣本組成負(fù)樣本,使其和全部的少數(shù)類樣本(正樣本)組成正負(fù)均衡的樣本子集。
隨機(jī)欠采樣(Random Under-Sampling,RUS)是最常用的方式[5],即隨機(jī)地從多數(shù)類樣本中選擇樣本。雖然RUS易于理解,操作簡單,但是存在一定的問題:隨機(jī)選擇樣本可能會(huì)遺漏多數(shù)類樣本中潛在的高價(jià)值信息,導(dǎo)致分類性能降低,特別是當(dāng)樣本的不平衡率非常高時(shí),會(huì)嚴(yán)重影響分類器的泛化性能。因此,研究人員會(huì)通過改進(jìn)方法來彌補(bǔ)隨機(jī)欠采樣的缺陷。例如方昊則通過多次隨機(jī)欠采樣取代單次隨機(jī)欠采樣,提高了軟件缺陷檢測時(shí)的準(zhǔn)確率,降低了誤差[4]。
過采樣則是通過某種方法生成少數(shù)類樣本或?qū)ι贁?shù)類樣本進(jìn)行重復(fù)采樣,使其達(dá)到和多數(shù)類樣本平衡的狀態(tài)。隨機(jī)過采樣(Random Over-Sampling,ROS)是最簡單的過采樣方式[6]。ROS通過將少數(shù)類樣本隨機(jī)復(fù)制的方式,使正負(fù)類樣本達(dá)到一個(gè)平衡。ROS的缺點(diǎn)也顯而易見,在樣本不平衡率非常高時(shí),生成大量相同的少數(shù)類樣本,容易造成過擬合現(xiàn)象。
為此,Chawla提出了合成少數(shù)類樣本過采樣技術(shù)[7](Synthetic Minority Oversampling Technique,SMOTE)。
SMOTE算法是在ROS基礎(chǔ)之上改進(jìn)的一種線性插值的過采樣方法。采樣過程如下:
第一步:隨機(jī)選擇一個(gè)少數(shù)類樣本x;
第二步:基于KNN算法找出距離樣本x最近的K個(gè)少數(shù)類樣本;
第三步:從上一步中的K個(gè)樣本中隨機(jī)取出一個(gè)樣本x~;
第四步:在x和x~連線上,根據(jù)如下公式,生成一個(gè)新樣本;
第五步:重復(fù)前四個(gè)步驟,直到和多數(shù)類樣本達(dá)到平衡。
SMOTE算法示意圖如圖1所示。
圖1 SMOTE算法
SMOTE算法有效地改善了ROS隨機(jī)復(fù)制新樣本造成的過擬合問題,很大程度上提高了分類器的泛化能力?;赟MOTE算法,研究人員后續(xù)提出了一系列的衍生算法,例如趙錦陽提出了SCSMOTE算法[8],先在少數(shù)類樣本中找到合適的候選樣本及其中心,然后在候選樣本與樣本中心之間產(chǎn)生新的樣本。除此之外,還 有MSMOTE、Borderline-SMOTE[9]、Safe-Level-SMOTE、TSMOTE等,其核心思想都是在特定的連線上進(jìn)行插值。
無論是過采樣還是欠采樣,在面對(duì)較為復(fù)雜的情況時(shí),使用單一的方法不可避免地存在一定的局限性。欠采樣通過選擇部分多數(shù)類樣本的方式,容易遺漏潛在的有用信息。而過采樣也容易造成過擬合問題,降低分類器性能。混合采樣則將兩者結(jié)合在一起,在保留兩者優(yōu)點(diǎn)的情況下,彌補(bǔ)兩者的缺點(diǎn),通常能得到比單一采樣策略更優(yōu)的效果。例如馮宏偉[10]對(duì)邊界中的少數(shù)類樣本的進(jìn)行SMOTE過采樣,對(duì)多數(shù)類樣本進(jìn)行隨機(jī)欠采樣。通過該方法得到了分類性能較好的分類器。
通常情況下,構(gòu)造單一的決策樹分類器時(shí)需要進(jìn)行剪枝操作,防止出現(xiàn)過擬合現(xiàn)象,而隨機(jī)森林由于在特征選擇的過程中是隨機(jī)地選取其中的一部分特征,故不需要進(jìn)行剪枝,也不會(huì)出現(xiàn)過擬合的現(xiàn)象,在處理高維數(shù)據(jù)時(shí)也具有較高的性能。利用該優(yōu)點(diǎn),再結(jié)合本文數(shù)據(jù)的特點(diǎn),對(duì)特征空間進(jìn)行擴(kuò)展處理。
對(duì)于離散型特征,首先將它的n個(gè)屬性值劃分為n個(gè)特征。以性別為例,該特征包含男和女兩個(gè)值,將其劃分為{男,女}兩個(gè)特征,屬性值用1(是)和0(否)表示。例如樣本A在性別特征上值為男,其在性別上的特征則可以表示為{1,0}。
對(duì)于連續(xù)型特征,可根據(jù)等寬劃分法將值劃分為長度相等的段。屬性值上的斷點(diǎn)可表示為:Fmin+n(Fmax-Fmin)/k。其中Fmin表示最小值,F(xiàn)max表示最大值,k表示將值域分成k個(gè)區(qū)間,可根據(jù)具體情況自定義k的值,n=0,1,2,3,…,k。以年齡為例,年齡是一個(gè)取值大于0的連續(xù)整數(shù),取k為5,假設(shè)Fmax為100(大于100按100計(jì)算),則年齡特征可離散化為{[0,20),[20,40),[40,60),[60,80),[80,100]}五個(gè)特征。
將離散后不同類型的單一特征進(jìn)行兩兩交叉,形成二元的組合特征。例如特征m有兩個(gè)可能值{m1,m2},特征n也有兩個(gè)可能值{n1,n2},特征m和特征n進(jìn)行交叉后可表示為{{m1,n1},{m1,n2},{m2,n1},{m2,n2}}共4個(gè)特征。以性別和年齡為例,則可表示為{{男,[0,20)},{女,[0,20)},{男,[20,40)},{女,[20,40)},{男,[40,60)},{女,[40,60)},{男,[60,80)},{女,[60,80)},{男,[80,100]},{女,[80,100]}}共10個(gè)特征。
決策樹(Decision Tree)是由Breiman提出,基于樹形結(jié)構(gòu)來對(duì)樣本進(jìn)行劃分的一種分類算法。一顆完整的決策樹通常包含以下三種元素:根節(jié)點(diǎn)、內(nèi)部節(jié)點(diǎn)和葉節(jié)點(diǎn)。其中根節(jié)點(diǎn)是所有樣本的集合,內(nèi)部節(jié)點(diǎn)是根據(jù)一定規(guī)則選出的特征屬性測試點(diǎn),葉節(jié)點(diǎn)表示分類的結(jié)果。決策樹的結(jié)構(gòu)如圖2所示。
圖2 決策樹結(jié)構(gòu)
早期的決策樹算法分類回歸樹(Classification and Regression Tree,CART或CRT)使用基尼系數(shù)(Gini In?dex)來作為屬性選擇標(biāo)準(zhǔn)。基尼系數(shù)的定義如下:
其中k為分類的數(shù)量,Pi表示樣本屬于第i類的概率。
除了CART算法,研究人員還提出了基于信息增益(information gain)的ID3算法[11]和基于信息增益率(information gain ratio)的C4.5算法[12]。
隨機(jī)森林算法(Random Forest,RF)[13]是一種以決策樹為基分類器的集成學(xué)習(xí)(Ensemble Learning)算法。集成學(xué)習(xí)為了突破單一分類器在性能提升時(shí)遇到的瓶頸而被提出,除了RF,常用的集成學(xué)習(xí)方法還包括Boosting、Bagging[14](也稱作“套袋法”)。
與Bagging類似,RF同樣也是通過自助采樣法進(jìn)行樣本的選擇。兩者最大的不同是:①隨機(jī)森林只用決策樹作為基分類器。②隨機(jī)森林在樣本擾動(dòng)的基礎(chǔ)上加入屬性擾動(dòng),即在選擇屬性時(shí)也是隨機(jī)的,增強(qiáng)了模型的泛化能力[15]。
隨機(jī)森林還有一個(gè)很大的優(yōu)點(diǎn),不需要進(jìn)行剪枝,也不需要進(jìn)行特征選擇,同樣可以獲得比單顆決策樹更好的分類性能。
隨機(jī)森林的算法過程如下:
(1)通過自助法重采樣技術(shù)從訓(xùn)練集中有放回地隨機(jī)采樣選擇n個(gè)樣本;
(2)從特征集中隨機(jī)選擇d個(gè)特征,利用這d個(gè)特征和步驟(1)中所選擇的n個(gè)樣本建立決策樹;
(3)重復(fù)步驟(1)和步驟(2),直至生成所需的N棵決策樹,形成隨機(jī)森林;
(4)對(duì)于測試數(shù)據(jù),經(jīng)過每棵樹決策判斷,最后投票確認(rèn)分到哪一類。
隨機(jī)森林作為一種集成學(xué)習(xí)方法在分類性能方面擁有比其他大多數(shù)模型更好的表現(xiàn),但當(dāng)面對(duì)不平衡數(shù)據(jù)時(shí)仍不能得到非常好的效果,根本原因就在于通過自助法取樣并不能改變樣本的不平衡分布。為此,本文對(duì)隨機(jī)森林算法進(jìn)行改進(jìn)。算法分為訓(xùn)練階段和測試階段。在訓(xùn)練階段,對(duì)隨機(jī)森林中的任意一顆樹來說,在通過自助采樣法取得訓(xùn)練樣本后,結(jié)合SMOTE算法生成少數(shù)類樣本,使正負(fù)樣本達(dá)到一個(gè)平衡狀態(tài),再利用得到的平衡數(shù)據(jù)對(duì)每一棵決策樹進(jìn)行訓(xùn)練。測試階段中,通過上一階段訓(xùn)練得到的決策樹決策出的結(jié)果,采用投票的方式確定最終結(jié)果。
改進(jìn)的隨機(jī)森林算法流程圖如圖3所示。
圖3 改進(jìn)的隨機(jī)森林算法流程圖
本算法擁有如下優(yōu)點(diǎn):
(1)對(duì)每棵樹單獨(dú)進(jìn)行訓(xùn)練集平衡處理,而非針對(duì)原始訓(xùn)練集,最大程度上保證了各子樹間的差異性。
(2)每棵子樹都選擇部分樣本和部分特征,避免了過擬合現(xiàn)象。
(3)由于生成決策樹的過程中選擇的是部分特征,使得在面對(duì)高維數(shù)據(jù)時(shí)也能有較高的算法效率,因此適合對(duì)特征空間進(jìn)行擴(kuò)展處理。
某知識(shí)產(chǎn)權(quán)平臺(tái)數(shù)據(jù)(已作脫敏處理),包含3200多條用戶數(shù)據(jù),選擇用戶類型為企業(yè)和代理所的數(shù)據(jù),樣本數(shù)量比為5:1,VIP屬性包括非VIP和VIP,樣本數(shù)量比為4:1。為了驗(yàn)證RFFCS算法的有效性,與決策樹算法(DT)、隨機(jī)森林算法(RF)進(jìn)行對(duì)比。
在一般的分類任務(wù)中,評(píng)價(jià)分類結(jié)果的好壞通常要用到如表1的混淆矩陣。
表1 混淆矩陣
根據(jù)混淆矩陣可得出三個(gè)基本評(píng)價(jià)指標(biāo):精確率(Precision)、召回率(Recall)、F-Score。公式如下:
其中,在式(5)中,α為調(diào)節(jié)精確率和召回率的權(quán)重系數(shù),當(dāng)α取1時(shí),即為F1值。
在不平衡數(shù)據(jù)分類任務(wù)中,通常還會(huì)用到G-means。G-means可以用來衡量正負(fù)樣本的的綜合分類性能。其公式如下:
本文使用精確率、召回率、F1值、G-means作為算法的評(píng)價(jià)指標(biāo)。
本文設(shè)計(jì)了兩類各五組實(shí)驗(yàn)。首先是將未經(jīng)特征組合處理的原始數(shù)據(jù)集用決策樹(DT)和隨機(jī)森林(RF)進(jìn)行驗(yàn)證,然后對(duì)特征進(jìn)行組合處理,再用上述兩種算法進(jìn)行實(shí)驗(yàn)(DT_FE和RF_FE),以驗(yàn)證特征組合的有效性,最后在RF_FE的基礎(chǔ)上引入SMOTE(RFF?CS),并進(jìn)行實(shí)驗(yàn)。實(shí)驗(yàn)結(jié)果如表2所示。
表2 DT、DT_FE、RF、RF_FE、RFFCS在用戶類型上的分類效果比較
表2 給出的是五種算法模型在用戶類型上的分類結(jié)果。由表中數(shù)據(jù)可以看出,RFFCS的分類性能要明顯高于其他四種模型,F(xiàn)1值和G-means值達(dá)到了0.640和0.727,尤其是相較于DT,分別高出62.4%和41.3%,即使是性能最好的RF_FE,RFFCS在F1和G-means上也要高出27.0%和14.5%。值得一提的是,盡管對(duì)特征進(jìn)行了組合,擴(kuò)展了特征空間,DT_FE性能仍不及RF,但與DT相比,無論是精確率、召回率,還是F1值和G-means,DT_FE都有著不同程度的提高,平均提高了18.5%,而RF_FE和RF相比,除了精確率略有下降外,其余三個(gè)指標(biāo)都有所提高,證明了特征組合的有效性。
表3 給出的是在VIP屬性上的分類結(jié)果。結(jié)合表中數(shù)據(jù),我們可以得出如下結(jié)論:與在用戶類型上的結(jié)果相同,RFFCS算法得到了最好的分類效果,召回率和G-means甚至達(dá)到了0.9以上。DT效果最差,F(xiàn)1和G-means只有0.578和0.762,DT_FE次之,各項(xiàng)指標(biāo)較DT均有所提高,但平均提高率僅有3.7%,不及表2中的18.5%。和RF相比,RF_FE仍然優(yōu)勢(shì)明顯,各項(xiàng)指標(biāo)的平均提高率達(dá)到了4.6%。與其他四種方法進(jìn)行對(duì)比,RFFCS均有著可靠的性能。在G-means這個(gè)指標(biāo)上,RFFCS分別提高了20.7%、17.6%、8.1%和5.4%。
表3 DT、DT_FE、RF、RF_FE、RFFCS在VIP屬性上的分類效果比較
綜上所述,本文所提RFFCS算法對(duì)于不平衡的數(shù)據(jù)的分類是有效的。
本文針對(duì)用戶畫像研究過程中存在的數(shù)據(jù)不平衡問題,提出將SMOTE過采樣結(jié)合進(jìn)隨機(jī)森林的每棵子樹中,在解決了數(shù)據(jù)不平衡問題的同時(shí),保證了子樹間的差異性,隱性地提高了隨機(jī)森林的分類性能。同時(shí)利用隨機(jī)森林在屬性選擇時(shí)的優(yōu)越性,提出了對(duì)原始特征空間進(jìn)行擴(kuò)展。實(shí)驗(yàn)結(jié)果表明,本文所提的方法在對(duì)數(shù)據(jù)集分類時(shí)與其他對(duì)比方法相比有著較為顯著的提升效果。此外,本文在設(shè)計(jì)算法時(shí)森林規(guī)模是固定的,下一步將設(shè)置不同的決策樹數(shù)量來驗(yàn)證算法的穩(wěn)定性。