林青軒,郭 強(qiáng),鄧春燕,王雅靜,劉建國(guó)
(1.上海理工大學(xué)復(fù)雜系統(tǒng)科學(xué)研究中心,上海 200093; 2.上海財(cái)經(jīng)大學(xué)會(huì)計(jì)與財(cái)務(wù)研究院,上海 200433)
企業(yè)異常用水模式檢測(cè)是指從企業(yè)用水量數(shù)據(jù)中找出異常的模式,企業(yè)用能數(shù)據(jù)如用水量和用電量是企業(yè)生產(chǎn)經(jīng)營(yíng)狀況最直接的反映,分析企業(yè)用水量數(shù)據(jù)能夠一定程度上檢測(cè)出企業(yè)生產(chǎn)經(jīng)營(yíng)上的異常行為。公共安全部門(mén)若能及時(shí)發(fā)現(xiàn)生產(chǎn)運(yùn)作狀態(tài)異常的企業(yè),并對(duì)其進(jìn)行事前干預(yù),對(duì)于保護(hù)公民的人身安全和維護(hù)社會(huì)安全有十分重要的意義。另外,以往公共安全部門(mén)多采用現(xiàn)場(chǎng)稽查的形式對(duì)企業(yè)是否正常運(yùn)營(yíng)進(jìn)行判斷,十分耗費(fèi)人力物力而且不能及時(shí)地進(jìn)行監(jiān)管。因此,公共安全部門(mén)亟需一套行之有效的企業(yè)異常用水模式檢測(cè)方法。
機(jī)器學(xué)習(xí)方法已經(jīng)被應(yīng)用于此類(lèi)發(fā)現(xiàn)異常模式的任務(wù),已經(jīng)有效應(yīng)用于信用卡反欺詐[1-2]、垃圾網(wǎng)頁(yè)識(shí)別[3-4]和用戶異常用電識(shí)別[5]等領(lǐng)域。在解決此類(lèi)問(wèn)題的過(guò)程中,通常會(huì)遇到不平衡分類(lèi)的問(wèn)題,即真實(shí)數(shù)據(jù)集中兩類(lèi)樣本數(shù)量差異巨大,且真實(shí)數(shù)據(jù)中含有大量噪聲樣本。傳統(tǒng)分類(lèi)算法的預(yù)測(cè)目標(biāo)是降低總體的分類(lèi)錯(cuò)誤率,為了提升整體的準(zhǔn)確度,分類(lèi)器更關(guān)注多數(shù)類(lèi),結(jié)果導(dǎo)致在測(cè)試集上的預(yù)測(cè)結(jié)果偏向?yàn)槎鄶?shù)類(lèi),雖然整體準(zhǔn)確度很高,但是沒(méi)有對(duì)少數(shù)類(lèi)進(jìn)行有效的預(yù)測(cè)。近年來(lái),大量學(xué)者研究通過(guò)改變數(shù)據(jù)分布來(lái)解決不平衡分類(lèi)問(wèn)題,其中,過(guò)采樣(over-sampling)和欠采樣(under-sampling)是兩種最常用的技術(shù)[6],典型的方法有隨機(jī)欠采樣技術(shù)、綜合小類(lèi)過(guò)采樣技術(shù)(Synthetic Minority Over-sampling Technique,SMOTE)[7]和自適應(yīng)綜合過(guò)采樣(Adaptive Synthetic Sampling,ADASYN)[8]等。過(guò)采樣是一種對(duì)少數(shù)樣本進(jìn)行擴(kuò)充使得樣本數(shù)接近平衡的采樣方法,它雖然不會(huì)產(chǎn)生重復(fù)樣本,卻可能引入噪聲[9],不適合用于含有較多噪聲的場(chǎng)景。盧曉勇等[3]提出用隨機(jī)欠采樣和隨機(jī)森林的方法檢測(cè)垃圾網(wǎng)頁(yè),但隨機(jī)欠采樣方法僅僅通過(guò)抽樣的方式簡(jiǎn)單平衡了類(lèi)別并沒(méi)有考慮數(shù)據(jù)集中樣本“代表性”的問(wèn)題,每個(gè)樣本以相同的概率被抽取。因此,本文先考慮樣本“代表性”的問(wèn)題,基于孤立森林算法(Isolation Forest,iForest)計(jì)算多數(shù)類(lèi)中每個(gè)樣本點(diǎn)的“孤立”程度,“孤立”程度一定程度上表示了樣本的“代表性”,越被“孤立”的樣本點(diǎn)“代表性”則越低;再通過(guò)優(yōu)先對(duì)“代表性”高的樣本進(jìn)行采樣,然后將抽取的樣本和少數(shù)類(lèi)合并構(gòu)建較平衡的訓(xùn)練數(shù)據(jù)集,以解決不平衡分類(lèi)問(wèn)題。
iForest算法[10]相比基于直方圖的異常得分算法(Histogram-based Outlier Score,HBOS)[11]和局部異常因子算法(Local Outlier Factor,LOF)[12],iForest不要求特征間獨(dú)立且無(wú)需計(jì)算距離,速度較快,更適合企業(yè)異常用水模式檢測(cè)場(chǎng)景下特征之間存在相關(guān)性的低頻短時(shí)間序列數(shù)據(jù)。
獲得較平衡的訓(xùn)練數(shù)據(jù)集后,有監(jiān)督的機(jī)器學(xué)習(xí)方法可以更好地執(zhí)行預(yù)測(cè)的任務(wù)。本文利用XGBoost這一有監(jiān)督的機(jī)器學(xué)習(xí)方法對(duì)企業(yè)異常用水模式進(jìn)行預(yù)測(cè),XBGoost[13]是2016年由Chen提出的對(duì)梯度提升樹(shù)(Gradient Boosting Decision Tree,GBDT)算法的改進(jìn)和實(shí)現(xiàn),相比于傳統(tǒng)的GBDT只考慮了損失函一階的導(dǎo)數(shù)信息,XBGoost對(duì)損失函數(shù)進(jìn)行了二階泰勒展開(kāi),還在目標(biāo)函數(shù)中加入了正則項(xiàng),有效地防止過(guò)擬合,具有效果好、速度快的優(yōu)點(diǎn)。在某市企業(yè)用水量數(shù)據(jù)集上的實(shí)驗(yàn)表明,基于iForest采樣策略訓(xùn)練的XGBoost分類(lèi)器可以提升企業(yè)異常用水模式的檢測(cè)效果。
iForest算法是一種無(wú)監(jiān)督的方法,該算法主要通過(guò)從訓(xùn)練數(shù)據(jù)集中隨機(jī)選取一個(gè)特征,在該特征的最大值最小值之間隨機(jī)選取一個(gè)分裂點(diǎn),小于分裂點(diǎn)的進(jìn)入左側(cè)分支,大于或等于分裂點(diǎn)的進(jìn)入右側(cè)分支;不斷重復(fù)上述過(guò)程直到只剩一個(gè)樣本或相同樣本或達(dá)到樹(shù)的深度限制,然后通過(guò)路徑長(zhǎng)度來(lái)表示一個(gè)樣本點(diǎn)被“孤立”的程度。路徑長(zhǎng)度h(x)指樣本點(diǎn)x從根節(jié)點(diǎn)到外部節(jié)點(diǎn)所經(jīng)過(guò)的二叉樹(shù)的邊數(shù),通常路徑長(zhǎng)度較小的樣本被“孤立”的程度高。路徑長(zhǎng)度h(x)的計(jì)算公式為
h(x)=e+C(T.size)
(1)
其中,e表示數(shù)據(jù)x從子樹(shù)(iTree)的根節(jié)點(diǎn)到葉節(jié)點(diǎn)過(guò)程中經(jīng)過(guò)的邊的數(shù)目,C(T.size)表示在一棵用T.size條樣本數(shù)據(jù)構(gòu)建的二叉樹(shù)的平均路徑長(zhǎng)度。C(n)的計(jì)算公式為
(2)
其中,n為樣本個(gè)數(shù),H(n-1)可用ln(i)+0.577 215 664 9(歐拉常數(shù))估算,以同樣的方式構(gòu)建包含多棵iTree,則樣本的“孤立”程度即可基于路徑長(zhǎng)度被檢測(cè)出來(lái),可以通過(guò)S(x,n)分值判斷。定義如下:
(3)
其中,E(h(x))是樣本點(diǎn)x在iForest中所有孤立樹(shù)的路徑長(zhǎng)度的平均值,n表示單棵iTree的訓(xùn)練樣本數(shù)。
基于iForest算法計(jì)算不平衡數(shù)據(jù)集中多數(shù)類(lèi)樣本“代表性”得分,本文改進(jìn)了對(duì)多數(shù)類(lèi)樣本的采樣策略,優(yōu)先對(duì)多數(shù)類(lèi)中樣本“代表性”得分高的樣本進(jìn)行采樣,然后和少數(shù)類(lèi)樣本構(gòu)建更加平衡的訓(xùn)練數(shù)據(jù)集。
假設(shè)將訓(xùn)練數(shù)據(jù)集U{(xi,yi)|(x1,y1),…,(xu,yu)}中樣本數(shù)較多的一類(lèi)稱為多數(shù)類(lèi)N{(xi,yi)|(x1,y1),…,(xu,yu)},樣本數(shù)較少的一類(lèi)稱為少數(shù)類(lèi)S{(xi,yi)|(xl+1,yl+1),…,(xu,yu)}?;趇Forest的欠采樣方法首先計(jì)算多數(shù)類(lèi)N中樣本的“孤立”程度得分scl,即樣本的“代表性”;再將多數(shù)類(lèi)N中的樣本按照得分scl排序,以采樣比例k%從多數(shù)類(lèi)N中按照排序抽取組成較平衡的訓(xùn)練數(shù)據(jù)集N′;最后將新的訓(xùn)練數(shù)據(jù)集N′和少數(shù)類(lèi)S合并構(gòu)成較平衡的訓(xùn)練數(shù)據(jù)集U′;然后用XGBoost對(duì)較平衡的訓(xùn)練數(shù)據(jù)集U′分類(lèi)訓(xùn)練,獲得分類(lèi)器C;最后用分類(lèi)器C對(duì)測(cè)試數(shù)據(jù)集T{xj|x1,…,xt}進(jìn)行分類(lèi),得到測(cè)試數(shù)據(jù)集的分類(lèi)結(jié)果L{yj|y1,…,yt}。
方法:基于iForest采樣策略的二分類(lèi)預(yù)測(cè)方法。
輸入:
不平衡訓(xùn)練數(shù)據(jù)集及其分類(lèi)U{(xi,yi)|(x1,y1),…,(xu,yu)};
測(cè)試數(shù)據(jù)集T{xj|x1,…,xt}。
輸出:
測(cè)試數(shù)據(jù)集的分類(lèi)L{yj|y1,…,yt}。
步驟:
1) 將不平衡訓(xùn)練數(shù)據(jù)集U按類(lèi)別分為多數(shù)類(lèi)N和少數(shù)類(lèi)S;
2)n=多數(shù)類(lèi)N的樣本數(shù);
3)s=少數(shù)類(lèi)S的樣本數(shù);
4)k%=采樣比例;
5) 建立i棵子樹(shù)iTree,構(gòu)建iForest:
(1) 從訓(xùn)練數(shù)據(jù)集中隨機(jī)選擇n個(gè)樣本點(diǎn),作為子樹(shù)的根節(jié)點(diǎn);
(2) 如果當(dāng)前樹(shù)的高度e超過(guò)設(shè)置高度h,則返回子樹(shù);
(3) 否則,隨機(jī)選擇一個(gè)特征q;
(4) 隨機(jī)在特征q的最大值和最小值之間選擇切分點(diǎn)p;
(5) 將小于p的樣本放入左子節(jié)點(diǎn),將大于p的樣本放入右子節(jié)點(diǎn);
(6) 在子節(jié)點(diǎn)中遞歸步驟b-e;
6) 利用構(gòu)建好的iForest計(jì)算多數(shù)類(lèi)中的樣本得分scl;
7) 對(duì)多數(shù)類(lèi)N中每個(gè)樣本按照得分scl升序排序;
8) 抽取前k%的樣本組成新的樣本集合N′;
9) 將集合N′和小類(lèi)S合并為平衡的數(shù)據(jù)集U′;
10) 使用XGBoost算法對(duì)數(shù)據(jù)集U′進(jìn)行分類(lèi)訓(xùn)練,得到分類(lèi)器C;
11) 使用分類(lèi)器C對(duì)測(cè)試數(shù)據(jù)集T進(jìn)行預(yù)測(cè),最終得到測(cè)試集的分類(lèi)L。
本文采用的數(shù)據(jù)集為某市7 604家企業(yè)13個(gè)月的用水量數(shù)據(jù),數(shù)據(jù)采集間隔為1個(gè)月,其中正常企業(yè)為7 051家,標(biāo)記為異常的樣本為553家,異常樣本占比約為7.3%。
通過(guò)以月和季度為周期構(gòu)造統(tǒng)計(jì)性特征,計(jì)算均值、方差、極差、偏度和峰度,并且通過(guò)對(duì)數(shù)差分的方式提取每?jī)蓚€(gè)月之間企業(yè)用水量的波動(dòng)特征,最終得到29維的特征。
本研究采用機(jī)器學(xué)習(xí)中常用的標(biāo)準(zhǔn)指標(biāo)作為評(píng)價(jià)指標(biāo),主要有召回率(Recall)和AUC(Area Under ROC Curve)等。AUC值用來(lái)評(píng)價(jià)預(yù)測(cè)異常模式效果的好壞,召回率則用來(lái)評(píng)價(jià)分類(lèi)器是否將異常模式“全面”的預(yù)測(cè)出來(lái)。
3.1.1 AUC
AUC[14]是指ROC(Receiver Operating Characteristic)曲線下方面積,AUC用一個(gè)數(shù)值來(lái)表示分類(lèi)器效果的好壞,較大的AUC值表示較好的預(yù)測(cè)性能。AUC的范圍屬于(0.5,1.0),0.5表示隨機(jī)預(yù)測(cè)的情況,1.0表示最理想的分類(lèi)情況。
ROC曲線[15]所在平面的橫坐標(biāo)是假正例率(False Positive Rate,FPR),縱坐標(biāo)是真正例率(True Positive Rate,TPR)。對(duì)某個(gè)分類(lèi)器而言,根據(jù)其在測(cè)試樣本上的表現(xiàn)得到一個(gè)TPR和FPR點(diǎn)對(duì)。這樣,此分類(lèi)器就可以映射成ROC平面上的一個(gè)點(diǎn)。調(diào)整這個(gè)分類(lèi)器分類(lèi)時(shí)候使用的閾值,我們就可以得到一個(gè)經(jīng)過(guò)(0,0),(1,1)的曲線,這就是此分類(lèi)器的ROC曲線。
TRP和FPR的計(jì)算公式為
(4)
(5)
其中,真正例(True Positive,TP)為被模型預(yù)測(cè)為正的正樣本;假負(fù)例(False Negative,FN)為被模型預(yù)測(cè)為負(fù)的正樣本;假正例(False Positive,FP)為被模型預(yù)測(cè)為正的負(fù)樣本;真負(fù)例(True Negative,TN)為被模型預(yù)測(cè)為負(fù)的負(fù)樣本。
3.1.2 查全率
上節(jié)計(jì)算TRP和FPR中提到,對(duì)于二分類(lèi)問(wèn)題,可以將樣本根據(jù)預(yù)測(cè)結(jié)果和真實(shí)類(lèi)別組合劃分為T(mén)P、FN、FP和TN,查全率[14](Recall)表示在被預(yù)測(cè)為正例的樣本中有多少是真實(shí)的正例,計(jì)算公式為
(6)
計(jì)算樣本“代表性”的方法有多種,常用的無(wú)監(jiān)督方法有iForest、HBOS和LOF,LOF的特點(diǎn)是根據(jù)樣本局部的密度來(lái)計(jì)算樣本的得分,但是忽略樣本領(lǐng)域外的樣本對(duì)其產(chǎn)生的影響,HBOS假設(shè)每個(gè)特征獨(dú)立,將每個(gè)特征以直方圖的形式離散化,然后計(jì)算特征在離散區(qū)間上頻率的乘積作為樣本的得分,該方法簡(jiǎn)單、快速,但是前提假設(shè)較強(qiáng),當(dāng)特征之間相關(guān)性較強(qiáng)時(shí)效果會(huì)受到影響,iForest通過(guò)樣本被“孤立”的程度作為樣本的得分,并且建立多顆相互獨(dú)立的子樹(shù),綜合考慮多顆子樹(shù)的得分。本文分別測(cè)試該3種方法在該數(shù)據(jù)集的表現(xiàn),如表1所示,綜合比較3種方法預(yù)測(cè)的AUC和查全率,選擇效果較好的iForest作為計(jì)算樣本“代表性”的方法。
表1 3種無(wú)監(jiān)督方法的預(yù)測(cè)效果Tab.1 Comparison of three unsupervised methods
為了構(gòu)造較平衡的訓(xùn)練集,需要確定從大類(lèi)樣本中進(jìn)行欠采樣的比例,本文分別對(duì)欠采樣比例從0到1進(jìn)行實(shí)驗(yàn),作為對(duì)比,本文分別用XGBoost、基于隨機(jī)欠采樣的XGBoost和基于iForest的XGBoost方法對(duì)異常用水模式進(jìn)行預(yù)測(cè),得到的結(jié)果為十折交叉驗(yàn)證后的AUC的平均值。
由圖1和表2可知,基于iForest的欠采樣的預(yù)測(cè)在采樣比例為0.2時(shí)效果最佳,AUC值達(dá)到0.927,基于隨機(jī)欠采樣的預(yù)測(cè)在采樣比例為0.7時(shí)最佳,AUC值為0.885,當(dāng)不進(jìn)行欠采樣處理時(shí),預(yù)測(cè)結(jié)果的AUC值為0.877。由此可知,在該不平衡數(shù)據(jù)集下,若對(duì)訓(xùn)練集做隨機(jī)欠采樣可以提升預(yù)測(cè)效果,但是采樣過(guò)程為隨機(jī)抽取,若數(shù)據(jù)集中含有較多“噪音”或是潛在未被標(biāo)注的異常樣本,會(huì)被等概率抽取進(jìn)入訓(xùn)練數(shù)據(jù)集,從而影響分類(lèi)器的訓(xùn)練,因此提升效果并不顯著,而基于iForest采樣策略針對(duì)“代表性”高的樣本進(jìn)行優(yōu)先抽取,一定程度上優(yōu)先避開(kāi)了“噪音”樣本,故預(yù)測(cè)結(jié)果比基于隨機(jī)欠采樣的AUC提升了約4.7%,查全率提升了21.6%。結(jié)果說(shuō)明,本文提出的企業(yè)異常用水模式檢測(cè)方法在考慮樣本“代表性”后進(jìn)行欠采樣可以提升預(yù)測(cè)效果。
圖1 不同采樣比例下XGBoost的預(yù)測(cè)效果對(duì)比Fig.1 Comparison of XGBoost in different sampling proportion
表2 不同采樣方式下XGBoost的預(yù)測(cè)效果Tab.2 Result of XGBoost in different sampling methods
為進(jìn)一步驗(yàn)證在類(lèi)似場(chǎng)景下該方法的有效性,本文還在社交網(wǎng)絡(luò)的場(chǎng)景下利用該方法進(jìn)行了實(shí)驗(yàn),該數(shù)據(jù)集為某社交網(wǎng)絡(luò)上用戶的活躍度數(shù)據(jù),數(shù)據(jù)采集間隔為周,連續(xù)采集了14周的用戶活躍度數(shù)據(jù),該數(shù)據(jù)集共有3 099位用戶,其中普通用戶數(shù)為2 790位,非普通用戶數(shù)為309位,約占總樣本的10%?;陔S機(jī)欠采樣方法的預(yù)測(cè)結(jié)果的AUC值為0.669,查全率為0.805;基于iForest采樣策略的預(yù)測(cè)結(jié)果的AUC值為0.901,查全率為0.850,相較于基于隨機(jī)欠采樣的方法,AUC值提升了34.7%,召回率提了5.6%。結(jié)果說(shuō)明,該方法在社交網(wǎng)絡(luò)場(chǎng)景下也具有一定的有效性。
本文提出的基于iForest采樣策略的方法在企業(yè)異常用水模式檢測(cè)場(chǎng)景中,面對(duì)不平衡分類(lèi)問(wèn)題取得了較好的效果。首先基于iForest算法計(jì)算多數(shù)類(lèi)中樣本點(diǎn)的“孤立”程度,通過(guò)“孤立”程度衡量樣本“代表性”,然后按樣本“代表性”得分進(jìn)行排序,從“代表性”高的樣本中優(yōu)先進(jìn)行欠采樣,然后與少數(shù)類(lèi)樣本構(gòu)成較平衡的訓(xùn)練數(shù)據(jù)集,訓(xùn)練XGBoost分類(lèi)器,最后對(duì)企業(yè)異常用水模式進(jìn)行預(yù)測(cè)。在某市的企業(yè)用水量數(shù)據(jù)集上,該方法對(duì)企業(yè)異常用水模式的預(yù)測(cè)結(jié)果AUC值和查全率可達(dá)到0.927和0.891,較基于隨機(jī)欠采樣的方法的0.884和0.733分別提升了4.7%和21.6%。另外,本文還在社交網(wǎng)絡(luò)場(chǎng)景下利用該方法進(jìn)行實(shí)驗(yàn),同樣也具有一定的有效性。未來(lái)的研究可以進(jìn)一步探索在其他類(lèi)似不平衡分類(lèi)的場(chǎng)景下該方法的預(yù)測(cè)效果。