摘要:本文介紹了異常值檢測(cè)的常見四種方法,分別為Numeric Outlier宝惰、Z-Score诱篷、DBSCAN以及Isolation Forest
在訓(xùn)練機(jī)器學(xué)習(xí)算法或應(yīng)用統(tǒng)計(jì)技術(shù)時(shí)甚纲,錯(cuò)誤值或異常值可能是一個(gè)嚴(yán)重的問題,它們通常會(huì)造成測(cè)量誤差或異常系統(tǒng)條件的結(jié)果胀溺,因此不具有描述底層系統(tǒng)的特征。實(shí)際上皆看,最佳做法是在進(jìn)行下一步分析之前仓坞,就應(yīng)該進(jìn)行異常值去除處理。
在某些情況下腰吟,異常值可以提供有關(guān)整個(gè)系統(tǒng)中局部異常的信息无埃;因此,檢測(cè)異常值是一個(gè)有價(jià)值的過程,因?yàn)樵谶@個(gè)工程中嫉称,可以提供有關(guān)數(shù)據(jù)集的附加信息侦镇。
目前有許多技術(shù)可以檢測(cè)異常值,并且可以自主選擇是否從數(shù)據(jù)集中刪除澎埠。在這篇博文中虽缕,將展示KNIME分析平臺(tái)中四種最常用的異常值檢測(cè)的技術(shù)。
數(shù)據(jù)集和異常值檢測(cè)問題
本文用于測(cè)試和比較建議的離群值檢測(cè)技術(shù)的數(shù)據(jù)集來源于航空公司數(shù)據(jù)集蒲稳,該數(shù)據(jù)集包括2007年至2012年間美國(guó)國(guó)內(nèi)航班的信息氮趋,例如出發(fā)時(shí)間、到達(dá)時(shí)間江耀、起飛機(jī)場(chǎng)剩胁、目的地機(jī)場(chǎng)、播出時(shí)間祥国、出發(fā)延誤昵观、航班延誤、航班號(hào)等舌稀。其中一些列可能包含異常值啊犬。
從原始數(shù)據(jù)集中,隨機(jī)提取了2007年和2008年從芝加哥奧黑爾機(jī)場(chǎng)(ORD)出發(fā)的1500次航班樣本壁查。
為了展示所選擇的離群值檢測(cè)技術(shù)是如何工作的觉至,將專注于找出機(jī)場(chǎng)平均到達(dá)延誤的異常值,這些異常值是在給定機(jī)場(chǎng)降落的所有航班上計(jì)算的睡腿。我們正在尋找那些顯示不尋常的平均到達(dá)延遲時(shí)間的機(jī)場(chǎng)语御。
四種異常值檢測(cè)技術(shù)
數(shù)字異常值|Numeric Outlier
數(shù)字異常值方法是一維特征空間中最簡(jiǎn)單的非參數(shù)異常值檢測(cè)方法,異常值是通過IQR(InterQuartile Range)計(jì)算得的席怪。
計(jì)算第一和第三四分位數(shù)(Q1应闯、Q3),異常值是位于四分位數(shù)范圍之外的數(shù)據(jù)點(diǎn)x i:
使用四分位數(shù)乘數(shù)值k=1.5挂捻,范圍限制是典型的上下晶須的盒子圖碉纺。這種技術(shù)是使用KNIME Analytics Platform內(nèi)置的工作流程中的Numeric Outliers節(jié)點(diǎn)實(shí)現(xiàn)的(見圖1)。
Z-score
Z-score是一維或低維特征空間中的參數(shù)異常檢測(cè)方法刻撒。該技術(shù)假定數(shù)據(jù)是高斯分布惜辑,異常值是分布尾部的數(shù)據(jù)點(diǎn),因此遠(yuǎn)離數(shù)據(jù)的平均值疫赎。距離的遠(yuǎn)近取決于使用公式計(jì)算的歸一化數(shù)據(jù)點(diǎn)z i的設(shè)定閾值Zthr:
其中xi是一個(gè)數(shù)據(jù)點(diǎn)盛撑,μ是所有點(diǎn)xi的平均值,δ是所有點(diǎn)xi的標(biāo)準(zhǔn)偏差捧搞。
然后經(jīng)過標(biāo)準(zhǔn)化處理后抵卫,異常值也進(jìn)行標(biāo)準(zhǔn)化處理狮荔,其絕對(duì)值大于Zthr:
Zthr值一般設(shè)置為2.5、3.0和3.5介粘。該技術(shù)是使用KNIME工作流中的行過濾器節(jié)點(diǎn)實(shí)現(xiàn)的(見圖1)殖氏。
DBSCAN
該技術(shù)基于DBSCAN聚類方法,DBSCAN是一維或多維特征空間中的非參數(shù)姻采,基于密度的離群值檢測(cè)方法雅采。
在DBSCAN聚類技術(shù)中,所有數(shù)據(jù)點(diǎn)都被定義為核心點(diǎn)(Core Points)慨亲、邊界點(diǎn)(Border Points)或噪聲點(diǎn)(Noise Points)婚瓜。
核心點(diǎn)是在距離?內(nèi)至少具有最小包含點(diǎn)數(shù)(minPTs)的數(shù)據(jù)點(diǎn);
邊界點(diǎn)是核心點(diǎn)的距離?內(nèi)鄰近點(diǎn)刑棵,但包含的點(diǎn)數(shù)小于最小包含點(diǎn)數(shù)(minPTs)巴刻;
所有的其他數(shù)據(jù)點(diǎn)都是噪聲點(diǎn),也被標(biāo)識(shí)為異常值蛉签;
從而胡陪,異常檢測(cè)取決于所要求的最小包含點(diǎn)數(shù)、距離?和所選擇的距離度量碍舍,比如歐幾里得或曼哈頓距離柠座。該技術(shù)是使用圖1中KNIME工作流中的DBSCAN節(jié)點(diǎn)實(shí)現(xiàn)的。
孤立森林|Isolation Forest
該方法是一維或多維特征空間中大數(shù)據(jù)集的非參數(shù)方法片橡,其中的一個(gè)重要概念是孤立數(shù)妈经。
孤立數(shù)是孤立數(shù)據(jù)點(diǎn)所需的拆分?jǐn)?shù)。通過以下步驟確定此分割數(shù):
隨機(jī)選擇要分離的點(diǎn)“a”锻全;
選擇在最小值和最大值之間的隨機(jī)數(shù)據(jù)點(diǎn)“b”,并且與“a”不同录煤;
如果“b”的值低于“a”的值鳄厌,則“b”的值變?yōu)樾碌南孪蓿?/p>
如果“b”的值大于“a”的值,則“b”的值變?yōu)樾碌纳舷蓿?/p>
只要在上限和下限之間存在除“a”之外的數(shù)據(jù)點(diǎn)妈踊,就重復(fù)該過程了嚎;
與孤立非異常值相比,它需要更少的分裂來孤立異常值廊营,即異常值與非異常點(diǎn)相比具有更低的孤立數(shù)歪泳。因此,如果數(shù)據(jù)點(diǎn)的孤立數(shù)低于閾值露筒,則將數(shù)據(jù)點(diǎn)定義為異常值呐伞。
閾值是基于數(shù)據(jù)中異常值的估計(jì)百分比來定義的,這是異常值檢測(cè)算法的起點(diǎn)慎式。有關(guān)孤立森林技術(shù)圖像的解釋伶氢,可以在此找到詳細(xì)資料趟径。
通過在Python Script中使用幾行Python代碼就可以實(shí)現(xiàn)該技術(shù)。
fromsklearn.ensembleimportIsolationForestimportpandasaspdclf = IsolationForest(max_samples=100, random_state=42)table = pd.concat([input_table['Mean(ArrDelay)']], axis=1)clf.fit(table)output_table = pd.DataFrame(clf.predict(table))```python
Python Script節(jié)點(diǎn)是KNIME Python Integration的一部分癣防,它允許我們將Python代碼編寫/導(dǎo)入到KNIME工作流程蜗巧。
在KNIME工作流程中實(shí)施
KNIME Analytics Platform是一個(gè)用于數(shù)據(jù)科學(xué)的開源軟件,涵蓋從數(shù)據(jù)攝取和數(shù)據(jù)混合蕾盯、數(shù)據(jù)可視化的所有數(shù)據(jù)需求幕屹,從機(jī)器學(xué)習(xí)算法到數(shù)據(jù)應(yīng)用,從報(bào)告到部署等等级遭。它基于用于可視化編程的圖形用戶界面望拖,使其非常直觀且易于使用,大大減少了學(xué)習(xí)時(shí)間装畅。
此外靠娱,它被設(shè)計(jì)為對(duì)不同的數(shù)據(jù)格式、數(shù)據(jù)類型掠兄、數(shù)據(jù)源像云、數(shù)據(jù)平臺(tái)以及外部工具(例如R和Python)開放,還包括許多用于分析非結(jié)構(gòu)化數(shù)據(jù)的擴(kuò)展蚂夕,如文本迅诬、圖像或圖形。
KNIME Analytics Platform中的計(jì)算單元是小彩色塊婿牍,名為“節(jié)點(diǎn)”侈贷。一個(gè)接一個(gè)地組裝管道中的節(jié)點(diǎn),實(shí)現(xiàn)數(shù)據(jù)處理應(yīng)用程序等脂。管道也被稱為“工作流程”俏蛮。
鑒于所有這些特性,本文選擇它來實(shí)現(xiàn)上述的四種異常值檢測(cè)技術(shù)上遥。圖1中展示了異常值檢測(cè)技術(shù)的工作流程搏屑。工作流程:
1.讀取Read data metanode中的數(shù)據(jù)樣本;
2.進(jìn)行數(shù)據(jù)預(yù)處理并計(jì)算Preproc元節(jié)點(diǎn)內(nèi)每個(gè)機(jī)場(chǎng)的平均到達(dá)延遲粉楚;
3.在下一個(gè)名為密度延遲的元節(jié)點(diǎn)中辣恋,對(duì)數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化,并將標(biāo)準(zhǔn)化平均到達(dá)延遲的密度與標(biāo)準(zhǔn)正態(tài)分布的密度進(jìn)行對(duì)比模软;
4.使用四種選定的技術(shù)檢測(cè)異常值伟骨;
5.使用KNIME與Open Street Maps的集成,在MapViz元節(jié)點(diǎn)中顯示美國(guó)地圖中的異常值機(jī)場(chǎng)燃异。
圖1:實(shí)施四種離群值檢測(cè)技術(shù)的工作流程:數(shù)字異常值携狭、Z-score、DBSCAN以及孤立森林
檢測(cè)到的異常值
在圖2-5中回俐,可以看到通過不同技術(shù)檢測(cè)到的異常值機(jī)場(chǎng)暑中。其中壹瘟。藍(lán)色圓圈表示沒有異常行為的機(jī)場(chǎng),而紅色方塊表示具有異常行為的機(jī)場(chǎng)鳄逾。平均到達(dá)延遲時(shí)間定義的大小了記稻轨。
一些機(jī)場(chǎng)一直被四種技術(shù)確定為異常值:斯波坎國(guó)際機(jī)場(chǎng)(GEG)、伊利諾伊大學(xué)威拉德機(jī)場(chǎng)(CMI)和哥倫比亞大都會(huì)機(jī)場(chǎng)(CAE)雕凹。斯波坎國(guó)際機(jī)場(chǎng)(GEG)具有最大的異常值殴俱,平均到達(dá)時(shí)間非常長(zhǎng)(180分鐘)。然而枚抵,其他一些機(jī)場(chǎng)僅能通過一些技術(shù)來識(shí)別线欲、例如路易斯阿姆斯特朗新奧爾良國(guó)際機(jī)場(chǎng)(MSY)僅被孤立森林和DBSCAN技術(shù)所發(fā)現(xiàn)。
對(duì)于此特定問題汽摹,Z-Score技術(shù)僅能識(shí)別最少數(shù)量的異常值李丰,而DBSCAN技術(shù)能夠識(shí)別最大數(shù)量的異常值機(jī)場(chǎng)。且只有DBSCAN方法(MinPts = 3/?= 1.5逼泣,歐幾里德距離測(cè)量)和孤立森林技術(shù)(異常值的估計(jì)百分比為10%)在早期到達(dá)方向發(fā)現(xiàn)異常值趴泌。
圖2:通過數(shù)字異常值技術(shù)檢測(cè)到的異常值機(jī)場(chǎng)
圖3:通過z-score技術(shù)檢測(cè)到的異常機(jī)場(chǎng)
圖4:DBSCAN技術(shù)檢測(cè)到的異常機(jī)場(chǎng)
圖5:孤立森林技術(shù)檢測(cè)到的異常機(jī)場(chǎng)
總結(jié)
本文在一維空間中描述并實(shí)施了四種不同的離群值檢測(cè)技術(shù):2007年至2008年間所有美國(guó)機(jī)場(chǎng)的平均到達(dá)延遲。研究的四種技術(shù)分別是Numeric Outlier拉庶、Z-Score嗜憔、DBSCAN和Isolation Forest方法。其中一些用于一維特征空間氏仗、一些用于低維空間吉捶、一些用于高維空間、一些技術(shù)需要標(biāo)準(zhǔn)化和檢查維度的高斯分布皆尔。而有些需要距離測(cè)量呐舔,有些需要計(jì)算平均值和標(biāo)準(zhǔn)偏差。有三個(gè)機(jī)場(chǎng)慷蠕,所有異常值檢測(cè)技術(shù)都能將其識(shí)別為異常值珊拼。但是,只有部分技術(shù)(比如砌们,DBSCAN和孤立森林)可以識(shí)別分布左尾的異常值杆麸,即平均航班早于預(yù)定到達(dá)時(shí)間到達(dá)的那些機(jī)場(chǎng)搁进。因此浪感,應(yīng)該根據(jù)具體問題選擇合適的檢測(cè)技術(shù)。
參考
Santoyo, Sergio. (2017, September 12). A Brief Overview of Outlier Detection Techniques饼问;
作者:阿里云云棲社區(qū)
鏈接:http://www.reibang.com/p/baa5b8554535
來源:簡(jiǎn)書
簡(jiǎn)書著作權(quán)歸作者所有影兽,任何形式的轉(zhuǎn)載都請(qǐng)聯(lián)系作者獲得授權(quán)并注明出處。