python稳健性检验_有哪些比较好的做异常值检测的方法?
最近很多小伙伴都比較關(guān)注異常值檢測的方法,接下來小編就為大家介紹幾種,希望能幫到大家!!
摘要: 本文介紹了異常值檢測的常見四種方法,分別為Numeric Outlier、Z-Score、DBSCA以及Isolation Forest
在訓練機器學習算法或應(yīng)用統(tǒng)計技術(shù)時,錯誤值或異常值可能是一個嚴重的問題,它們通常會造成測量誤差或異常系統(tǒng)條件的結(jié)果,因此不具有描述底層系統(tǒng)的特征。實際上,最佳做法是在進行下一步分析之前,就應(yīng)該進行異常值去除處理。
在某些情況下,異常值可以提供有關(guān)整個系統(tǒng)中局部異常的信息;因此,檢測異常值是一個有價值的過程,因為在這個工程中,可以提供有關(guān)數(shù)據(jù)集的附加信息。
目前有許多技術(shù)可以檢測異常值,并且可以自主選擇是否從數(shù)據(jù)集中刪除。在這篇博文中,將展示KNIME分析平臺中四種最常用的異常值檢測的技術(shù)。
數(shù)據(jù)集和異常值檢測問題
本文用于測試和比較建議的離群值檢測技術(shù)的數(shù)據(jù)集來源于航空公司數(shù)據(jù)集,該數(shù)據(jù)集包括2007年至2012年間美國國內(nèi)航班的信息,例如出發(fā)時間、到達時間、起飛機場、目的地機場、播出時間、出發(fā)延誤、航班延誤、航班號等。其中一些列可能包含異常值。
從原始數(shù)據(jù)集中,隨機提取了2007年和2008年從芝加哥奧黑爾機場(ORD)出發(fā)的1500次航班樣本。
為了展示所選擇的離群值檢測技術(shù)是如何工作的,將專注于找出機場平均到達延誤的異常值,這些異常值是在給定機場降落的所有航班上計算的。我們正在尋找那些顯示不尋常的平均到達延遲時間的機場。
四種異常值檢測技術(shù)
數(shù)字異常值|Numeric Outlier
數(shù)字異常值方法是一維特征空間中最簡單的非參數(shù)異常值檢測方法,異常值是通過IQR(InterQuartile Range)計算得的。
計算第一和第三四分位數(shù)(Q1、Q3),異常值是位于四分位數(shù)范圍之外的數(shù)據(jù)點x i:
使用四分位數(shù)乘數(shù)值k=1.5,范圍限制是典型的上下晶須的盒子圖。這種技術(shù)是使用KNIME Analytics Platform內(nèi)置的工作流程中的Numeric Outliers節(jié)點實現(xiàn)的(見圖1)。
Z-score
Z-score是一維或低維特征空間中的參數(shù)異常檢測方法。該技術(shù)假定數(shù)據(jù)是高斯分布,異常值是分布尾部的數(shù)據(jù)點,因此遠離數(shù)據(jù)的平均值。距離的遠近取決于使用公式計算的歸一化數(shù)據(jù)點z i的設(shè)定閾值Zthr:
其中xi是一個數(shù)據(jù)點,μ是所有點xi的平均值,δ是所有點xi的標準偏差。
然后經(jīng)過標準化處理后,異常值也進行標準化處理,其絕對值大于Zthr:
Zthr值一般設(shè)置為2.5、3.0和3.5。該技術(shù)是使用KNIME工作流中的行過濾器節(jié)點實現(xiàn)的(見圖1)。
DBSCAN
該技術(shù)基于DBSCAN聚類方法,DBSCAN是一維或多維特征空間中的非參數(shù),基于密度的離群值檢測方法。
在DBSCAN聚類技術(shù)中,所有數(shù)據(jù)點都被定義為核心點(Core Points)、邊界點(Border Points)或噪聲點(Noise Points)。核心點是在距離?內(nèi)至少具有最小包含點數(shù)(minPTs)的數(shù)據(jù)點;
邊界點是核心點的距離?內(nèi)鄰近點,但包含的點數(shù)小于最小包含點數(shù)(minPTs);
所有的其他數(shù)據(jù)點都是噪聲點,也被標識為異常值;
從而,異常檢測取決于所要求的最小包含點數(shù)、距離?和所選擇的距離度量,比如歐幾里得或曼哈頓距離。該技術(shù)是使用圖1中KNIME工作流中的DBSCAN節(jié)點實現(xiàn)的。
孤立森林|Isolation Forest
該方法是一維或多維特征空間中大數(shù)據(jù)集的非參數(shù)方法,其中的一個重要概念是孤立數(shù)。
孤立數(shù)是孤立數(shù)據(jù)點所需的拆分數(shù)。通過以下步驟確定此分割數(shù):隨機選擇要分離的點“a”;
選擇在最小值和最大值之間的隨機數(shù)據(jù)點“b”,并且與“a”不同;
如果“b”的值低于“a”的值,則“b”的值變?yōu)樾碌南孪?#xff1b;
如果“b”的值大于“a”的值,則“b”的值變?yōu)樾碌纳舷?#xff1b;
只要在上限和下限之間存在除“a”之外的數(shù)據(jù)點,就重復該過程;
與孤立非異常值相比,它需要更少的分裂來孤立異常值,即異常值與非異常點相比具有更低的孤立數(shù)。因此,如果數(shù)據(jù)點的孤立數(shù)低于閾值,則將數(shù)據(jù)點定義為異常值。
閾值是基于數(shù)據(jù)中異常值的估計百分比來定義的,這是異常值檢測算法的起點。有關(guān)孤立森林技術(shù)圖像的解釋,可以在此找到詳細資料。
通過在Python Script中使用幾行Python代碼就可以實現(xiàn)該技術(shù)。
from sklearn.ensemble import IsolationForest
import pandas as pd
clf = 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é)點是KNIME Python Integration的一部分,它允許我們將Python代碼編寫/導入到KNIME工作流程。
在KNIME工作流程中實施
KNIME Analytics Platform是一個用于數(shù)據(jù)科學的開源軟件,涵蓋從數(shù)據(jù)攝取和數(shù)據(jù)混合、數(shù)據(jù)可視化的所有數(shù)據(jù)需求,從機器學習算法到數(shù)據(jù)應(yīng)用,從報告到部署等等。它基于用于可視化編程的圖形用戶界面,使其非常直觀且易于使用,大大減少了學習時間。
此外,它被設(shè)計為對不同的數(shù)據(jù)格式、數(shù)據(jù)類型、數(shù)據(jù)源、數(shù)據(jù)平臺以及外部工具(例如R和Python)開放,還包括許多用于分析非結(jié)構(gòu)化數(shù)據(jù)的擴展,如文本、圖像或圖形。
KNIME Analytics Platform中的計算單元是小彩色塊,名為“節(jié)點”。一個接一個地組裝管道中的節(jié)點,實現(xiàn)數(shù)據(jù)處理應(yīng)用程序。管道也被稱為“工作流程”。
鑒于所有這些特性,本文選擇它來實現(xiàn)上述的四種異常值檢測技術(shù)。圖1中展示了異常值檢測技術(shù)的工作流程。工作流程:1.讀取Read data metanode中的數(shù)據(jù)樣本;
2.進行數(shù)據(jù)預處理并計算Preproc元節(jié)點內(nèi)每個機場的平均到達延遲;
3.在下一個名為密度延遲的元節(jié)點中,對數(shù)據(jù)進行標準化,并將標準化平均到達延遲的密度與標準正態(tài)分布的密度進行對比;
4.使用四種選定的技術(shù)檢測異常值;
5.使用KNIME與Open Street Maps的集成,在MapViz元節(jié)點中顯示美國地圖中的異常值機場。圖1:實施四種離群值檢測技術(shù)的工作流程:數(shù)字異常值、Z-score、DBSCAN以及孤立森林
檢測到的異常值
在圖2-5中,可以看到通過不同技術(shù)檢測到的異常值機場。其中。藍色圓圈表示沒有異常行為的機場,而紅色方塊表示具有異常行為的機場。平均到達延遲時間定義的大小了記。
一些機場一直被四種技術(shù)確定為異常值:斯波坎國際機場(GEG)、伊利諾伊大學威拉德機場(CMI)和哥倫比亞大都會機場(CAE)。斯波坎國際機場(GEG)具有最大的異常值,平均到達時間非常長(180分鐘)。然而,其他一些機場僅能通過一些技術(shù)來識別、例如路易斯阿姆斯特朗新奧爾良國際機場(MSY)僅被孤立森林和DBSCAN技術(shù)所發(fā)現(xiàn)。
對于此特定問題,Z-Score技術(shù)僅能識別最少數(shù)量的異常值,而DBSCAN技術(shù)能夠識別最大數(shù)量的異常值機場。且只有DBSCAN方法(MinPts = 3/?= 1.5,歐幾里德距離測量)和孤立森林技術(shù)(異常值的估計百分比為10%)在早期到達方向發(fā)現(xiàn)異常值。圖2:通過數(shù)字異常值技術(shù)檢測到的異常值機場圖3:通過z-score技術(shù)檢測到的異常機場圖4:DBSCAN技術(shù)檢測到的異常機場圖5:孤立森林技術(shù)檢測到的異常機場
總結(jié)
本文在一維空間中描述并實施了四種不同的離群值檢測技術(shù):2007年至2008年間所有美國機場的平均到達延遲。研究的四種技術(shù)分別是Numeric Outlier、Z-Score、DBSCAN和Isolation Forest方法。其中一些用于一維特征空間、一些用于低維空間、一些用于高維空間、一些技術(shù)需要標準化和檢查維度的高斯分布。而有些需要距離測量,有些需要計算平均值和標準偏差。有三個機場,所有異常值檢測技術(shù)都能將其識別為異常值。但是,只有部分技術(shù)(比如,DBSCAN和孤立森林)可以識別分布左尾的異常值,即平均航班早于預定到達時間到達的那些機場。因此,應(yīng)該根據(jù)具體問題選擇合適的檢測技術(shù)。
參考
以上為譯文,由阿里云云棲社區(qū)組織翻譯。
本文為云棲社區(qū)原創(chuàng)內(nèi)容,未經(jīng)允許不得轉(zhuǎn)載。
總結(jié)
以上是生活随笔為你收集整理的python稳健性检验_有哪些比较好的做异常值检测的方法?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 用产品思维写好你的简历
- 下一篇: 点阵字python_Python点阵字玩