
異常檢測算法–Isolation Forest
南大周志華老師在2010年提出一個異常檢測算法Isolation Forest,在工業(yè)界很實(shí)用,算法效果好,時(shí)間效率高,能有效處理高維數(shù)據(jù)和海量數(shù)據(jù),這里對這個算法進(jìn)行簡要總結(jié)。
iTree
提到森林,自然少不了樹,畢竟森林都是由樹構(gòu)成的,看Isolation Forest(簡稱iForest)前,我們先來看看Isolation Tree(簡稱iTree)是怎么構(gòu)成的,iTree是一種隨機(jī)二叉樹,每個節(jié)點(diǎn)要么有兩個女兒,要么就是葉子節(jié)點(diǎn),一個孩子都沒有。給定一堆數(shù)據(jù)集D,這里D的所有屬性都是連續(xù)型的變量,iTree的構(gòu)成過程如下:
隨機(jī)選擇一個屬性Attr;
隨機(jī)選擇該屬性的一個值Value;
根據(jù)Attr對每條記錄進(jìn)行分類,把Attr小于Value的記錄放在左女兒,把大于等于Value的記錄放在右孩子;
然后遞歸的構(gòu)造左女兒和右女兒,直到滿足以下條件:
傳入的數(shù)據(jù)集只有一條記錄或者多條一樣的記錄;
樹的高度達(dá)到了限定高度;
iTree構(gòu)建好了后,就可以對數(shù)據(jù)進(jìn)行預(yù)測啦,預(yù)測的過程就是把測試記錄在iTree上走一下,看測試記錄落在哪個葉子節(jié)點(diǎn)。iTree能有效檢測異常的假設(shè)是:異常點(diǎn)一般都是非常稀有的,在iTree中會很快被劃分到葉子節(jié)點(diǎn),因此可以用葉子節(jié)點(diǎn)到根節(jié)點(diǎn)的路徑h(x)長度來判斷一條記錄x是否是異常點(diǎn);對于一個包含n條記錄的數(shù)據(jù)集,其構(gòu)造的樹的高度最小值為log(n),最大值為n-1,論文提到說用log(n)和n-1歸一化不能保證有界和不方便比較,用一個稍微復(fù)雜一點(diǎn)的歸一化公式:
,
s(x,n)s(x,n)就是記錄x在由n個樣本的訓(xùn)練數(shù)據(jù)構(gòu)成的iTree的異常指數(shù),s(x,n)s(x,n)取值范圍為[0,1],越接近1表示是異常點(diǎn)的可能性高,越接近0表示是正常點(diǎn)的可能性比較高,如果大部分的訓(xùn)練樣本的s(x,n)都接近于0.5,說明整個數(shù)據(jù)集都沒有明顯的異常值。
隨機(jī)選屬性,隨機(jī)選屬性值,一棵樹這么隨便搞肯定是不靠譜,但是把多棵樹結(jié)合起來就變強(qiáng)大了;
iForest
iTree搞明白了,我們現(xiàn)在來看看iForest是怎么構(gòu)造的,給定一個包含n條記錄的數(shù)據(jù)集D,如何構(gòu)造一個iForest。iForest和Random Forest的方法有些類似,都是隨機(jī)采樣一一部分?jǐn)?shù)據(jù)集去構(gòu)造每一棵樹,保證不同樹之間的差異性,不過iForest與RF不同,采樣的數(shù)據(jù)量PsiPsi不需要等于n,可以遠(yuǎn)遠(yuǎn)小于n,論文中提到采樣大小超過256效果就提升不大了,明確越大還會造成計(jì)算時(shí)間的上的浪費(fèi),為什么不像其他算法一樣,數(shù)據(jù)越多效果越好呢,可以看看下面這兩個個圖,
左邊是元素?cái)?shù)據(jù),右邊是采樣了數(shù)據(jù),藍(lán)色是正常樣本,紅色是異常樣本??梢钥吹?,在采樣之前,正常樣本和異常樣本出現(xiàn)重疊,因此很難分開,但我們采樣之和,異常樣本和正常樣本可以明顯的分開。
除了限制采樣大小以外,還要給每棵iTree設(shè)置最大高度l=ceiling(logΨ2)l=ceiling(log2Ψ),這是因?yàn)楫惓?shù)據(jù)記錄都比較少,其路徑長度也比較低,而我們也只需要把正常記錄和異常記錄區(qū)分開來,因此只需要關(guān)心低于平均高度的部分就好,這樣算法效率更高,不過這樣調(diào)整了后,后面可以看到計(jì)算h(x)h(x)需要一點(diǎn)點(diǎn)改進(jìn),先看iForest的偽代碼:
IForest構(gòu)造好后,對測試進(jìn)行預(yù)測時(shí),需要進(jìn)行綜合每棵樹的結(jié)果,于是
E(h(x))E(h(x))表示記錄x在每棵樹的高度均值,另外h(x)計(jì)算需要改進(jìn),在生成葉節(jié)點(diǎn)時(shí),算法記錄了葉節(jié)點(diǎn)包含的記錄數(shù)量,這時(shí)候要用這個數(shù)量SizeSize估計(jì)一下平均高度,h(x)的計(jì)算方法如下:
處理高維數(shù)據(jù)
在處理高維數(shù)據(jù)時(shí),可以對算法進(jìn)行改進(jìn),采樣之后并不是把所有的屬性都用上,而是用峰度系數(shù)Kurtosis挑選一些有價(jià)值的屬性,再進(jìn)行iTree的構(gòu)造,這跟隨機(jī)森林就更像了,隨機(jī)選記錄,再隨機(jī)選屬性。
只使用正常樣本
這個算法本質(zhì)上是一個無監(jiān)督學(xué)習(xí),不需要數(shù)據(jù)的類標(biāo),有時(shí)候異常數(shù)據(jù)太少了,少到我們只舍得拿這幾個異常樣本進(jìn)行測試,不能進(jìn)行訓(xùn)練,論文提到只用正常樣本構(gòu)建IForest也是可行的,效果有降低,但也還不錯,并可以通過適當(dāng)調(diào)整采樣大小來提高效果。
數(shù)據(jù)分析咨詢請掃描二維碼
若不方便掃碼,搜微信號:CDAshujufenxi
LSTM 模型輸入長度選擇技巧:提升序列建模效能的關(guān)鍵? 在循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)家族中,長短期記憶網(wǎng)絡(luò)(LSTM)憑借其解決長序列 ...
2025-07-11CDA 數(shù)據(jù)分析師報(bào)考條件詳解與準(zhǔn)備指南? ? 在數(shù)據(jù)驅(qū)動決策的時(shí)代浪潮下,CDA 數(shù)據(jù)分析師認(rèn)證愈發(fā)受到矚目,成為眾多有志投身數(shù) ...
2025-07-11數(shù)據(jù)透視表中兩列相乘合計(jì)的實(shí)用指南? 在數(shù)據(jù)分析的日常工作中,數(shù)據(jù)透視表憑借其強(qiáng)大的數(shù)據(jù)匯總和分析功能,成為了 Excel 用戶 ...
2025-07-11尊敬的考生: 您好! 我們誠摯通知您,CDA Level I和 Level II考試大綱將于 2025年7月25日 實(shí)施重大更新。 此次更新旨在確保認(rèn) ...
2025-07-10BI 大數(shù)據(jù)分析師:連接數(shù)據(jù)與業(yè)務(wù)的價(jià)值轉(zhuǎn)化者? ? 在大數(shù)據(jù)與商業(yè)智能(Business Intelligence,簡稱 BI)深度融合的時(shí)代,BI ...
2025-07-10SQL 在預(yù)測分析中的應(yīng)用:從數(shù)據(jù)查詢到趨勢預(yù)判? ? 在數(shù)據(jù)驅(qū)動決策的時(shí)代,預(yù)測分析作為挖掘數(shù)據(jù)潛在價(jià)值的核心手段,正被廣泛 ...
2025-07-10數(shù)據(jù)查詢結(jié)束后:分析師的收尾工作與價(jià)值深化? ? 在數(shù)據(jù)分析的全流程中,“query end”(查詢結(jié)束)并非工作的終點(diǎn),而是將數(shù) ...
2025-07-10CDA 數(shù)據(jù)分析師考試:從報(bào)考到取證的全攻略? 在數(shù)字經(jīng)濟(jì)蓬勃發(fā)展的今天,數(shù)據(jù)分析師已成為各行業(yè)爭搶的核心人才,而 CDA(Certi ...
2025-07-09【CDA干貨】單樣本趨勢性檢驗(yàn):捕捉數(shù)據(jù)背后的時(shí)間軌跡? 在數(shù)據(jù)分析的版圖中,單樣本趨勢性檢驗(yàn)如同一位耐心的偵探,專注于從單 ...
2025-07-09year_month數(shù)據(jù)類型:時(shí)間維度的精準(zhǔn)切片? ? 在數(shù)據(jù)的世界里,時(shí)間是最不可或缺的維度之一,而year_month數(shù)據(jù)類型就像一把精準(zhǔn) ...
2025-07-09CDA 備考干貨:Python 在數(shù)據(jù)分析中的核心應(yīng)用與實(shí)戰(zhàn)技巧? ? 在 CDA 數(shù)據(jù)分析師認(rèn)證考試中,Python 作為數(shù)據(jù)處理與分析的核心 ...
2025-07-08SPSS 中的 Mann-Kendall 檢驗(yàn):數(shù)據(jù)趨勢與突變分析的有力工具? ? ? 在數(shù)據(jù)分析的廣袤領(lǐng)域中,準(zhǔn)確捕捉數(shù)據(jù)的趨勢變化以及識別 ...
2025-07-08備戰(zhàn) CDA 數(shù)據(jù)分析師考試:需要多久?如何規(guī)劃? CDA(Certified Data Analyst)數(shù)據(jù)分析師認(rèn)證作為國內(nèi)權(quán)威的數(shù)據(jù)分析能力認(rèn)證 ...
2025-07-08LSTM 輸出不確定的成因、影響與應(yīng)對策略? 長短期記憶網(wǎng)絡(luò)(LSTM)作為循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)的一種變體,憑借獨(dú)特的門控機(jī)制,在 ...
2025-07-07統(tǒng)計(jì)學(xué)方法在市場調(diào)研數(shù)據(jù)中的深度應(yīng)用? 市場調(diào)研是企業(yè)洞察市場動態(tài)、了解消費(fèi)者需求的重要途徑,而統(tǒng)計(jì)學(xué)方法則是市場調(diào)研數(shù) ...
2025-07-07CDA數(shù)據(jù)分析師證書考試全攻略? 在數(shù)字化浪潮席卷全球的當(dāng)下,數(shù)據(jù)已成為企業(yè)決策、行業(yè)發(fā)展的核心驅(qū)動力,數(shù)據(jù)分析師也因此成為 ...
2025-07-07剖析 CDA 數(shù)據(jù)分析師考試題型:解鎖高效備考與答題策略? CDA(Certified Data Analyst)數(shù)據(jù)分析師考試作為衡量數(shù)據(jù)專業(yè)能力的 ...
2025-07-04SQL Server 字符串截取轉(zhuǎn)日期:解鎖數(shù)據(jù)處理的關(guān)鍵技能? 在數(shù)據(jù)處理與分析工作中,數(shù)據(jù)格式的規(guī)范性是保證后續(xù)分析準(zhǔn)確性的基礎(chǔ) ...
2025-07-04CDA 數(shù)據(jù)分析師視角:從數(shù)據(jù)迷霧中探尋商業(yè)真相? 在數(shù)字化浪潮席卷全球的今天,數(shù)據(jù)已成為企業(yè)決策的核心驅(qū)動力,CDA(Certifie ...
2025-07-04CDA 數(shù)據(jù)分析師:開啟數(shù)據(jù)職業(yè)發(fā)展新征程? ? 在數(shù)據(jù)成為核心生產(chǎn)要素的今天,數(shù)據(jù)分析師的職業(yè)價(jià)值愈發(fā)凸顯。CDA(Certified D ...
2025-07-03