1. 異常檢測(Anomaly Detection)
異常檢測(Anomaly Detection)是機器學習演算法的一個常見應用。它主要用於非監督學習,但又類似一些監督學習問題。
異常檢測常用在對網站異常用戶的檢測;還有在工程上一些零件,設備異常的檢查;還有機房異常機器的監控等等
假設有數據集 ,當又有一個新的測試樣本 ;
想要知道這個新樣本是否是異常的;
首先對x的分布概率建模p(x) ,用來說明這個例子不是異常的概率;
然後定一個閾值 ,當 時說明是異常的。
當出現在高概率分布的區域時,說明該例子時正常的;當出現在低概率的區域時,說明是異常的。
高斯分布又被稱之為正態分布,曲線呈鍾型,兩頭低,中間高,左右對稱因其曲線呈鍾形,因此人們又經常稱之為鍾形曲線
假設x是一個實數隨機變數,如果它的概率分布為高斯分布,定義幾個變數:
=平均值
=標准差
=方差
那麼x的概率分布可以用公式來表示:
其平均值 決定了其位置,其標准差 決定了分布的幅度
完整的高斯分布的概率公式為:
當參數平均值 和標准差 變化時:
關於平均值和方差的求解:
在一個異常檢測的例子中,有m個訓練樣本,每個樣本的特徵值數量有n個,那麼某個樣本的分布概率模型p(x)就可以用樣本的每個特徵值的概率分布來計算:
上面的式子可以用更簡潔的方式來表達
總計一下,異常檢測的過程:
如何評估一個異常檢測演算法,以及如何開發一個關於異常檢測的應用:
首先,在獲取到的一堆數據中,取一大部分正常的(可能包含少部分異常)的數據用於訓練集來訓練分布概率公式p(x)。
然後,在交叉驗證和測試集中使用包含正常和一定比例異常的數據,來通過查准率和召回率,以及F值公式來評價一個演算法。
舉個例子
假設有:
下面分割一下訓練集,交叉驗證集和測試集:
在訓練集上訓練出概率分布函數p(x)
在交叉驗證集上,預測y:
下面通過和真實標簽的比較,可以計算出 查准率(Precision)和召回率(Recall),然後通過F值公式來得到一個數值。
總結一下,我們將正常的數據分成60:20:20,分別給訓練集,交叉驗證集,測試集,然後將異常的數據分成兩半,交叉驗證集和測試集各一半。
我們可以通過改變不同的閾值 從而得到不同的評信檔價系數來選取一個最佳的閾值。
當得到的評價系數不佳時,也可以通過改變特徵值的種類和數量來獲取理想的評價系數
在使用異常檢測時,對性能影響最大的因素是特徵值的選擇。
首先要對特徵向量使用高斯分布來建模,通常情況下,我們得到的原始數據並沒有呈現高斯分布,例如這種:
有幾種方法可以實現:
通過上述辦法,可以將數據轉換成高斯分布的形式。
異常檢測有點類似監督學習中的二元分類問題。
我們的目標是使得p(x)對於正常的數據來說好坦中是大的,而對於異常的數據來說是很小的,而在異常檢測中一個常見的問題是最終我們的到的p(x)對於正常和異常的都很大。
在這種情況下需要觀察一下交叉驗證集中的異常示例,嘗試找出能更好區分數據的新特性。
例子
例如,有一個關於機房機器的樣本示例,開始收集的樣本示例中包含的特徵值有關於cpu負載和網路流量的。
cpu負載和網路流量是呈線性關系的,當網路流量變大時,cpu也會相應增大。
現在有一個異常的示例是網路流量不大,cpu確負載很大。假如在只有這兩個特徵值的情況下運行異常檢測演算法得出的p(x),可能就效果不佳。這時可以添加一個特徵值,是流量和cpu的比例關系,這樣就約束來上述的異常示例,通過這三個特徵值得到的異常檢測演算法可能就會好一點。
異常檢測一般用於:
樣友山本中 的數量非常少(0-50個),而 的非常多。這樣由於樣本數量的過少,達不到良好的訓練效果,而在異常檢測中確能夠表現良好。
還有就是導致 的情況非常多,且有不可預見性。
監督學習一般用於:
樣本中 和 的數量都非常多。這樣就有足夠的樣本數量去訓練演算法。
多元高斯分布是異常檢測的一種推廣,它可能會檢測到更多的異常。
在原始高斯分布中,模型p(x)的搭建是通過分別計算 來完成的,而多元高斯分布則是一步到位,直接計算出模型:
PS: 是一個協方差矩陣。
通過改變 和 可以得到不同的多元高斯分布圖:
原始高斯分布模型,它的多個特徵值之間的關系是軸對齊的(axis-aligned),兩個或多個高斯分布之間沒有相關性。
而多元高斯分布能夠自動捕獲x的不同特徵之間的相關性。因此它在圖像上會現實橢圓或有斜率的橢圓。
在平常的使用中,一般是使用原始高斯分布模型的,因為它的計算成本比較低。
在多元高斯分布中,因為要計算多個特徵值之間的相關性,導致計算會慢很多,而且當特徵值很多是,協方差矩陣就會很大,計算它的逆矩陣就會花費很多時間。
要保證樣本數量m大於特徵值數量n,否則協方差矩陣會不可逆;
根據經驗法則,當 時,多元高斯分布會表現良好。
在原始高斯分布模型中可以手動添加相關性高的特徵值之間的關系,可以避免了使用多元高斯分布,減小計算成本。
2. 無線感測器網路故障的診斷技術
無線感測器網路故障的診斷技術
隨著社會的發展與不斷進步,無線感測器網路得到廣泛應用,但是由於無線感測器節點的能量具有制約性,導致無線感測器網路的運用環境比較脆弱,下面我為大家搜索整理了關於無線感測器網路故障的診斷技術,歡迎參考閱讀,希望對大家有所幫助!想了解更多相關信息請持續關注我們應屆畢業生培訓網!
無線感測器網路是由大量感測器節點組成的,因為感測器節點廉價和微型的特點,促使無線感測器網路對節點的利用率非常高,尤其是在無線感測網路的監測區域,在自組織方式的參與下,以互相協作的形式完成無線感測器的監測任務,所以其應用的前景也是非常廣闊的,但是感測器節點的工作能力是有限的,難免會發生系統故障。
1 無線感測器網路故障評價指標
無線感測器網路故障診斷的性能評價指標是以無線感測器的網路特點和網路應用為基礎制定的,其標准主要體現在診斷精度、特殊環境診斷精度、能效性以及診斷時間四個方面。
診斷精度。無線感測器故障診斷精度是診斷機制對故障最直接的評價方式,特別是在網路安全性較高的環境中,如果不能保障故障診斷的精確度則會導致感測器網路系統出現安全漏洞,同時意味著此故障診斷精度的失效,診斷精度主要是以一次過程為故障診斷的依據,分析被診斷的節點狀態與實際節點狀態的相符程度,診斷精度中故障誤報率和故障識別率為評價故障的兩個指標。
特殊環境診斷精度。無線感測器網路在特殊環境中的應用是有特定的診斷精度的,例如自然災害、人為破壞等特殊環境因素,由於故障的節點在網路中的分布不均勻,可能會出現故障區域節點的過分疏散或者是節點的過分密集等現象,普通的診斷精度是不適應的,所以只能採取特殊環境的診斷精度對故障進行評價。
能效性。受無線感測器網路能量供應方面的影響,能效性成為故障診斷評價機制中需要最先考慮的問題,能效性比較強的故障診斷機制可以促進網路使用壽命的延長,以便保障感測器網路監測、計算方面能量的持續供應,與能效性有直接關系的因素有數據通信、處理和採集三方面。
診斷時間。無線感測器網路投入使用後,如需進行故障診斷需要對感測器中節點與節點之間的關系進行協作性判斷,主要是因為節點呈現激活狀態的數量比較多,如果節點出現聯系性的故障一定會對無線感測器網路造成巨大的能耗壓力,所以節點故障診斷的時間不宜過長。
2 無線感測器網路故障診斷分類
無線感測器網路故障主要來源於感測器的節點,主要表現在四個模塊上,分別為能量電池供應模塊、無線網路通信模塊、感測處理模塊和感測器模塊,基於無線感測器網路的運行和使用,其組成元件、部件會出現各種各樣的問題,如干擾通信、線路老化、電能耗損以及接線松動等等,引發無線感測器網路發生故障。
2.1 節點級別的故障
節點級別的故障主要是發生在感測器網路的節點處,大部分故障主要是感測器的節點本身出現了問題,其又可分為節點軟故障和節點硬故障,軟故障是指節點在不影響無線感測器網路運行的前提下發生故障,只有對數據進行傳送和測量時,可瞬間影響通信的故障;硬故障是指對節點本身以及對感測器網路造成的直接損害,例如節點本身損壞、電源布置不合理或電源能量不足都會造成無線感測器網路故障。
2.2 網路級別的故障
網路級別的故障是指無線感測器的節點本身是正常的,但是在節點與節點之間的傳輸、協作方面上出現制約性問題,導致網路連接異常、通信受阻、信息丟失、IP偏差、非法入侵等等,此故障的出現是直接作用於網路的,其故障的表現極其明顯,而且故障出現的速度非常快,影響范圍比較廣,屬於無線網路感測器網路中相對較為敏感的故障。
2.3 功能級別的故障
無線感測器網路功能級別的故障對於整體網路都是存在影響的,如出現功能級別的故障會造成網路中匯集點不能正常接收和收集網路中運行的全部信息,引起功能級別故障的原因主要有感測器節點的重啟、死亡和失效,鏈接線路故障以及路由裝置故障等。
2.4 數據級別的故障
數據級別的故障是指感測器節點表現正常,但是傳達了錯誤的數據信息,致使網路形成錯誤的數據感知,數據級別故障的隱蔽性比較強,只有經過精細的檢測才可發現感測器節點傳遞了錯誤的感知數據,因為即使節點感知數據傳遞錯誤,但是其本身的表現形式是沒有任何問題的,因此無形中降低了無限感測器網路的運行性能,而且會錯誤的引導網路管理員檢查維修。
3 無線感測器網路故障診斷技術
無線感測器網路故障診斷主要是針對其投入使用的期間,通過對網路傳遞的信息進行分析,判斷無線感測器網路是否發生故障,根據故障發生的狀態檢測導致故障發生的基本根源,無線感測器網路故障的診斷是一項復雜而又系統的工程項目,基於其所處的環境以及自身運行的特點決定了故障診斷的難度,為降低診斷的難度,一般情況在進行故障診斷時需要以感測器各個節點日常的測量數據為主,以節點數據傳輸的附加信息為輔,促進故障診斷的效率。
無線感測器網路故障診斷的指標為感測器高質量的服務和能量的有效保護,而故障診斷策略的衡量指標主要有錯誤警報率和檢測率,其中錯誤報警率反饋的是無效警報在診斷報告總警報中的占據比例,錯誤報警率較低即可說明此次診斷結果具有較高的可信度;檢測率反饋的是被檢測出的故障在網路總故障中占據的比例,與錯誤報告率相反,檢測率越高則說明診斷策略的有效性比較高。目前對無線感測器網路故障診斷技術的`研究主要以感測器的故障、場景類型為中心,對感測器節點的功能、讀數故障進行探討,分析無線感測器網路故障的診斷技術。
3.1 感測器節點讀數故障的診斷技術
節點讀數故障的診斷技術主要是針對無線感測器網路中錯誤的測量數據,錯誤數據產生的情況主要有外界環境干擾導致網路受到安全攻擊、節點部件的損壞等等,針對節點讀數故障提出以下診斷技術。 (1)WMFDS診斷技術。此技術主要是對感測器節點與節點之間的數據進行空間相關性的測量,越臨近的節點其測量結果的相似性越大,所以只能通過正常讀數的空間關系,根據此理論提出WMFDS診斷方法,主要是對兩節點之間的故障率、分布密度進行分析,判斷節點是否出現問題,此方法還可對相鄰的節點進行加權處理,但是此方法只可以用於具有空間相關性的節點讀數上。
(2)FIND診斷技術。此技術利用無線感測器節點在監控區域具有可持續性監測的特點,感知網路的突然事件,此節點的數據讀取可反饋事件發生點到節點相對應的距離,感測器節點的信號強度與距離是呈現相反關系的,即相對距離越大,節點信號強度越弱,節點信號的強弱變化被稱為單調變化特性,所以節點的單調特性是反饋節點出現讀數故障的判斷標准,比如故障節點會表現出與相對距離單調特性相反的現象。
(3)CSN診斷技術。此診斷技術是有一定局限性的,主要是以移動設備為檢測對象,利用加速器得出節點的地震運動,故障節點的讀數會存在閾值,此閾值與實際歷史差距比較大,通過計算機分析節點比例,如出現較高閾值則說明此節點出現了一定的問題。
3.2 感測器節點網路故障的診斷技術
感測器節點網路故障主要表現在鏈路受環境因素的影響導致網路可靠性降低等現象,針對感測器節點網路故障提出的診斷技術主要有以下三種:
(1)網路軟體調試法。在感測器的節點中採取調試代理,利用軟體的調試命令,對節點處的網路狀態進行分析,收集節點網路數據,確定節點網路故障的來源。
(2)特定模型推斷法。特定模型推斷法主要包括兩種,分布式和集中式的方法。分布式的診斷技術是針對網路中的所有節點,利用從局部到整體的決策方法,分布式診斷技術的代表方法有LD2和TinyD2,最終通過節點網路的整合,得出診斷報告;集中式的診斷技術是在網路節點處植入小型探測器,以便對經過節點的應用數據進行分類、分組,但是探測器對得到信息的分析能力是非常有限的,所以需要感知系統的參與,以此為基礎進行節點網路故障的細化診斷。
(3)無聲故障診斷技術。此診斷技術在三種技術中是具有一定特殊性的,其可對無經驗故障進行有效診斷,例如AD診斷技術,即是比較典型的代表,通過對節點各類型診斷信息之間相關性圖表的變化,發現網路中存在的隱藏故障,即無聲故障,此技術可提高故障診斷的准確率,同時降低了故障出現的頻率。
綜上所述,利用無線感測器故障診斷技術診斷無線感測器網路中出現的問題,並對其進行及時有效的處理,一方面可以提高無線感測器網路的運用效率,另一方面提高了無線感測器網路的使用率,所以無線感測器網路的正常運行在一定程度上促進我國經濟效益和社會效益的發展和提高。
綜上所述,無線感測器網路在世界范圍內的關注度是比較高的,其滲透多項科學技術,例如無線通信技術、感測器技術以及信息處理技術等等,無線感測器的研究不論是在經濟效益上還是在社會效益上,都是具有極其重要的意義的,無線感測器有效的網路故障診斷技術一方面可以提高無線感測器的利用效率,另一方面對能源節約具有一定的實際價值。
;3. 異常點檢測方法
一、基本概念
異常對象被稱作離群點。異常檢測也稱偏差檢測和例外挖掘。
常見的異常成因:數據來源於不同的類(異常對象來自於一個與大多數數據對象源(類)不同的源(類)的思想),自然變異,以及數據測量或收集誤差。
異常檢測的方法:
(1)基於模型的技術:首先建立一個數據模型,異常是那些同模型不能完美擬合的對象;如果模型是簇的集合,則異常是不顯著屬於任何簇的對象;在使用回歸模型時,異常是相對遠離預測值的對象。
(2)基於鄰近度的技術:通常可以在對象之間定義鄰近性度量,異常對象是那些遠離其他對象的對象。
(3)基於密度的技術:僅當一個點的局部密度顯著低於它的大部分近鄰時才將其分類為離群點。
二、異常點檢測的方法
1、統計方法檢測離群點
統計學方法是基於模型的方法,即為數據創建一個模型,並且根據對象擬合模型的情況來評估它們。大部分用於離群點檢測的統計學方法都是構建一個概率分布模型,並考慮對象有多大可能符合該模型。離群點的概率定義:離群點是一個對象,關於數據的概率分布模型,它具有低概率。這種情況的前提是必須知道數據集服從什麼分布,如果估計錯誤就造成了重尾分布。異常檢測的混合模型方法:對於異常檢測,數據用兩個分布的混合模型建模,一個分布為普通數據,而另一個為離群點。
聚類和異常檢測目標都是估計分布的參數,以最大化數據的總似然(概率)。聚類時,使用EM演算法估計每個概率分布的參數。然而,這里提供的異常檢測技術使用一種更簡單的方法。初始時將所有對象放入普通對象集,而異常對象集為空。然後,用一個迭代過程將對象從普通集轉移到異常集,只要該轉移能提高數據的總似然(其實等價於把在正常對象的分布下具有低概率的對象分類為離群點)。(假設異常對象屬於均勻分布)。異常對象由這樣一些對象組成,這些對象在均勻分布下比在正常分布下具有顯著較高的概率。
優缺點:(1)有堅實的統計學理論基礎,當存在充分的數據和所用的檢驗類型的知識時,這些檢驗可能非常有效;(2)對於多元數據,可用的選擇少一些,並且對於高維數據,這些檢測可能性很差。
2、基於鄰近度的離群點檢測。
一個對象是異常的,如果它遠離大部分點。這種方法比統計學方法更一般、更容易使用,因為確定數據集的有意義的鄰近性度量比確定它的統計分布更容易。一個對象的離群點得分由到它的k-最近鄰的距離給定。離群點得分對k的取值高度敏感。如果k太小(例如1),則少量的鄰近離群點可能導致較低的離群點得分;如果k太大,則點數少於k的簇中所有的對象可能都成了離群點。為了使該方案對於k的選取咐族數更具有魯棒性,可以使用k個最近鄰的平均距離。
優缺點:(1)簡單;(2)缺點:基於鄰近度的方法需要O(m^2)時間,大數據集不適用;(3)該方法對參數的選擇也是敏感的;(4)不能處理具有不同密度區域的數據集,因為它使用全局閾值,不能考慮這種密度的變化。
3、基於密度的離群點檢測。
從基於密度的觀點來說,離群點是在低密度區域中的對象。一個對象的離群點得分是該對象周圍密度的逆。基於密度的離群點檢測與基於鄰近度的離群點檢測密切相關,因為密度通常用鄰近度定義。一種常用的定義密度的方法是,定義密度為到k個最近鄰的平均距離的倒數。如果該距離小,則密度高,反之亦然。另一種密度定義是使用DBSCAN聚類演算法使用的密度定義,即一個對象周圍的密度等於該對象指定距離d內對象的個數。需要小心的選擇d,如果d太小,則許多正常點可能具有低密度,從而具有高離穗輪群點得分。如果d太大,則許多離群點可能具有與正常點類似的密度(和離群點得分)。使用任何密度定義檢測離群點具有與基於鄰近度的離群點方案類似的特點和局限性。特殊地,當數據包含不同密度的區域時,它們不能正確的識別離群點。
為了正確的識別這種數據集中的離群點,我們需要與對象鄰域相關的密度概念,也就是定義相衡首對密度。常見的有兩種方法:(1)使用基於SNN密度的聚類演算法使用的方法;(2)用點x的密度與它的最近鄰y的平均密度之比作為相對密度。
使用相對密度的離群點檢測(局部離群點要素LOF技術):首先,對於指定的近鄰個數(k),基於對象的最近鄰計算對象的密度density(x,k) ,由此計算每個對象的離群點得分;然後,計算點的鄰近平均密度,並使用它們計算點的平均相對密度。這個量指示x是否在比它的近鄰更稠密或更稀疏的鄰域內,並取作x的離群點得分(這個是建立在上面的離群點得分基礎上的)。
優缺點:
(1)給出了對象是離群點的定量度量,並且即使數據具有不同的區域也能夠很好的處理;
(2)與基於距離的方法一樣,這些方法必然具有O(m2)的時間復雜度。對於低維數據使用特定的數據結構可以達到O(mlogm);
(3)參數選擇是困難的。雖然LOF演算法通過觀察不同的k值,然後取得最大離群點得分來處理該問題,但是,仍然需要選擇這些值的上下界。
4、基於聚類的技術
一種利用聚類檢測離群點的方法是丟棄遠離其他簇的小簇。這個方法可以和其他任何聚類技術一起使用,但是需要最小簇大小和小簇與其他簇之間距離的閾值。這種方案對簇個數的選擇高度敏感。使用這個方案很難將離群點得分附加到對象上。一種更系統的方法,首先聚類所有對象,然後評估對象屬於簇的程度(離群點得分)(基於原型的聚類可用離中心點的距離來評估,對具有目標函數的聚類技術該得分反映刪除對象後目標函數的改進(這個可能是計算密集的))。基於聚類的離群點:一個對象是基於聚類的離群點,如果該對象不強屬於任何簇。離群點對初始聚類的影響:如果通過聚類檢測離群點,則由於離群點影響聚類,存在一個問題:結構是否有效。為了處理該問題,可以使用如下方法:對象聚類,刪除離群點,對象再次聚類(這個不能保證產生最優結果)。還有一種更復雜的方法:取一組不能很好的擬合任何簇的特殊對象,這組對象代表潛在的離群點。隨著聚類過程的進展,簇在變化。不再強屬於任何簇的對象被添加到潛在的離群點集合;而當前在該集合中的對象被測試,如果它現在強屬於一個簇,就可以將它從潛在的離群點集合中移除。聚類過程結束時還留在該集合中的點被分類為離群點(這種方法也不能保證產生最優解,甚至不比前面的簡單演算法好,在使用相對距離計算離群點得分時,這個問題特別嚴重)。
對象是否被認為是離群點可能依賴於簇的個數(如k很大時的雜訊簇)。該問題也沒有簡單的答案。一種策略是對於不同的簇個數重復該分析。另一種方法是找出大量小簇,其想法是(1)較小的簇傾向於更加凝聚,(2)如果存在大量小簇時一個對象是離群點,則它多半是一個真正的離群點。不利的一面是一組離群點可能形成小簇而逃避檢測。
優缺點:
(1)基於線性和接近線性復雜度(k均值)的聚類技術來發現離群點可能是高度有效的;
(2)簇的定義通常是離群點的補,因此可能同時發現簇和離群點;
(3) 產生的離群點集和它們的得分可能非常依賴所用的簇的個數和數據中離群點的存在性;
(4)聚類演算法產生的簇的質量對該演算法產生的離群點的質量影響非常大。
新穎性和離群值檢測
離群值檢測:訓練數據包含離群值,即與其他觀測值相距甚遠的觀測值。離群檢測估計器會嘗試擬合訓練數據最集中的區域,忽略異常觀察。
新穎性檢測:訓練數據不受異常值的污染,有興趣檢測新觀察值是否是異常值。該情況下離群值也稱為新穎性。
離群值檢測和新穎性檢測均用於異常檢測,離群值檢測稱為無監督異常檢測,新穎性檢測稱為半監督異常檢測。離群值檢測的情況下,離群值/異常不能形成密集的群集,可假設離群值/異常位於低密度區域;新穎性檢測的情況下,只要新穎性/異常位於訓練數據的低密度區域,就可以形成密集的簇。
通過對玩具數據集進行異常檢測比較異常檢測演算法
數據集中包含一種或兩種模式(高密度區域),以說明演算法處理多模式數據的能力。
對於每個數據集,將生成15%的樣本作為隨機均勻雜訊。該比例是OneClassSVM的nu參數和其他異常值檢測演算法的污染參數提供的值。離群值之間的決策邊界以黑色顯示,但是LOF除外,因為當採用LOF用於離群值檢測時,沒有適用於新數據的預測方法。
OneClassSVM對異常值敏感,對異常值檢測執行的不好。當訓練集不受異常值污染時,此估計器最適合新穎性檢測。即不適用在高維中進行離群值檢測或者不對基礎數據的分布進行任何假設,OneClassSVM在這些情況下可能會根據其超參數給出有用的結果。
covariance EllipticEnvelope(協方差橢圓密度)假定數據是高斯分布並學習一個橢圓。在數據不是單峰時,會退化。此估計器對異常值具有魯棒性。
IsolationFrorest和LocalOutlierFactor針對多模式數據集效果顯著。LOF針對第三種數據集,明顯優於其它三種估計器,該數據集中兩種模式的密度不同。LOF的局部方面,即它僅將一個樣本的異常評分與其鄰居評分作比較,從何體現了該方法的優勢。
針對最後一個均勻分布在超立方體中的數據集,很難說一個樣本比另一個樣本異常得多。除了OneClassSVM有些過擬合外,所有估計器都針對該情況提出不錯的解決方案。針對這種情況,應該仔細觀察樣本的異常分數,性能好的估算器應該為所有樣本分配相似的分數。
使用局部離群因子(LOF)進行離群值檢測
LOF演算法是一種無監督的異常檢測方法,可計算給定數據點相對於其鄰居的局部密度偏差。其中密度遠低於其鄰居的樣本為異常值。
LOF演算法的優勢在於同時考慮了數據集的局部和全局屬性:即使在異常樣本具有不同底層密度的數據集中,仍能保持良好性能。問題不在於樣本有多孤立,而在於樣本相對於周圍鄰域有多孤立。
通常考慮的鄰居數量(1)大於群集必須包含的最小樣本數量,以便其他樣本可以是相對於該群集的局部離散值;(2)小於可能是局部異常值的最大進距采樣數,此類消息通常不可用,採用n_neighbors=20。
具有局部異常值的新穎性檢驗
LOF是一種無監督的異常檢測方法,可計算給定數據點相對於其鄰居的局部密度偏差,密度遠低於其鄰居的樣本為異常值。LOF用於新穎性檢驗時,切勿在訓練集上使用預測、決定函數、實例得分,會導致結果錯誤。只能對新的看不見的數據(不在訓練集中)使用這些方法。
通常考慮鄰居數量(1)大於群集必須包含的最小樣本數,以便其他樣本可以是相對於該群集的局部離群值;(2)小於可能是局部異常值的最大進距采樣數,此類消息通常不可用,採用n_neighbors=20。
隔離林
在高維數據集中執行異常檢測的一種有效方法是使用隨機森林,分離的觀察通過隨機選擇一個函數,隨機選擇所選擇的特徵的最大值和最小值之間的分割值。遞歸分區可用樹結構表示,隔離樣本所需的拆分數量等於從根節點到終止結點的路徑長度。隨機樹的森林中的平均路徑長度是對正態性和決策函數的度量。隨機分區產生的異常路徑明顯較短,因此如果隨機樹森林為特定樣本生成的較短路徑,則該樹代表的值很可能是異常的。
OneClassSVM
無監督的離群值檢測,支持高維分布,基於libsvm
不假定數據分布的任何參數形式,可以更好的對數據的復雜形狀進行建模,能夠捕獲真實的數據結構,難點在於調整核函數寬度參數,以便在數據散布矩陣的形狀和數據過度擬合的風險間取得折中。
協方差橢圓密度
用於檢測高斯分布數據集中的異常值的對象
經驗協方差估計(作為非穩健估計)受到觀測值異質結構的高度影響;魯棒協方差估計能夠集中於數據分布的主要模式,但是它堅持假設數據是高斯分布,產生了對數據結構的某些估計,在一定程度上是准確的。
HBOS單維效果極佳,但是標准差方法的mask 掩碼效應嚴重。例如 數據通常在100以內,但是有兩個異常點,500,1000000。這個演算法就不能檢出500這個異常點。
對比而言,孤立森林理論上更適合大數據的異常檢測,且無掩碼效應。孤立森林確定異常時訓練只用樣本數據。每顆樹樣本數量默認只有256個,默認只用100顆樹。所以理論上25600個樣本就能確定海量數據中的異常點了。
Sklearn的 isolation forest 例子默認是讀入全量數據再采樣。如果配上warm up 選項就能分批放入采樣。
異常檢測的深度學習研究綜述
4. 大數據科學家需要掌握的幾種異常值檢測方法
引言
異常值檢測與告警一直是工業界非常關注的問題,自動准確地檢測出系統的異常值,不僅可以節約大量的人力物力,還能盡早發現系統的異常情況,挽回不必要的損失。個推也非常重視大數據中的異常值檢測,例如在運維部門的流量管理業務中,個推很早便展開了對異常值檢測的實踐,也因此積累了較為豐富的經驗。本文將從以下幾個方面介紹異常值檢測。
1、異常值檢測研究背景
2、異常值檢測方法原理
3、異常值檢測應用實踐
異常值檢測研究背景
異常值,故名思議就是不同於正常值的值。 在數學上,可以用離群點來表述,這樣便可以將異常值檢測問題轉化為數學問題來求解。
異常值檢測在很多場景都有廣泛的應用,比如:
1、流量監測
互聯網上某些伺服器的訪問量,可能具有周期性或趨勢性:一般情況下都是相對平穩的,但是當受到某些黑客攻擊後,其訪問量可能發生顯著的變化,及早發現這些異常變化對企業而言有著很好的預防告警作用。
2、金融風控
正常賬戶中,用戶的轉賬行為一般屬於低頻事件,但在某些金融詐騙案中,一些嫌犯的賬戶就可能會出現高頻的轉賬行為,異常檢測系統如果能發現這些異常行為,及時採取相關措施,則會規避不少損失。
3、機器故障檢測
一個運行中的流水線,可能會裝有不同的感測器用來監測運行中的機器,這些感測器數據就反應了機器運行的狀態,這些實時的監測數據具有數據量大、維度廣的特點,用人工盯著看的話成本會非常高,高效的自動異常檢測演算法將能很好地解決這一問題。
異常值檢測方法原理
本文主要將異常值檢測方法分為兩大類:一類是基於統計的異常值檢測,另一類是基於模型的異常值檢測。
基於統計的方法
基於模型的方法
1、基於統計的異常值檢測方法
常見的基於統計的異常值檢測方法有以下2種,一種是基於3σ法則,一種是基於箱體圖。
3σ法則
箱體圖
3σ法則是指在樣本服從正態分布時,一般可認為小於μ-3σ或者大於μ+3σ的樣本值為異常樣本,其中μ為樣本均值,σ為樣本標准差。在實際使用中,我們雖然不知道樣本的真實分布,但只要真實分布與正太分布相差不是太大,該經驗法則在大部分情況下便是適用的。
箱體圖也是一種比較常見的異常值檢測方法,一般取所有樣本的25%分位點Q1和75%分位點Q3,兩者之間的距離為箱體的長度IQR,可認為小於Q1-1.5IQR或者大於Q3+1.5IQR的樣本值為異常樣本。
基於統計的異常檢測往往具有計算簡單、有堅實的統計學基礎等特點,但缺點也非常明顯,例如需要大量的樣本數據進行統計,難以對高維樣本數據進行異常值檢測等。
2、基於模型的異常值檢測
通常可將異常值檢測看作是一個二分類問題,即將所有樣本分為正常樣本和異常樣本,但這和常規的二分類問題又有所區別,常規的二分類一般要求正負樣本是均衡的,如果正負樣本不均勻的話,訓練結果往往會不太好。但在異常值檢測問題中,往往面臨著正(正常值)負(異常值)樣本不均勻的問題,異常值通常比正常值要少得多,因此需要對常規的二分類模型做一些改進。
基於模型的異常值檢測一般可分為有監督模型異常值檢測和無監督模型異常值檢測,比較典型的有監督模型如oneclassSVM、基於神經網路的自編碼器等。 oneclassSVM就是在經典的SVM基礎上改進而來,它用一個超球面替代了超平面,超球面以內的值為正常值,超球面以外的值為異常值。
經典的SVM
1
基於模型的方法
2
基於神經網路的自編碼器結構如下圖所示。
自編碼器(AE)
將正常樣本用於模型訓練,輸入與輸出之間的損失函數可採用常見的均方誤差,因此檢測過程中,當正常樣本輸入時,均方誤差會較小,當異常樣本輸入時,均方誤差會較大,設置合適的閾值便可將異常樣本檢測出來。但該方法也有缺點,就是對於訓練樣本比較相近的正常樣本判別較好,但若正常樣本與訓練樣本相差較大,則可能會導致模型誤判。
無監督模型的異常值檢測是異常值檢測中的主流方法,因為異常值的標注成本往往較高,另外異常值的產生往往無法預料,因此有些異常值可能在過去的樣本中根本沒有出現過, 這將導致某些異常樣本無法標注,這也是有監督模型的局限性所在。 較為常見的無監督異常值檢測模型有密度聚類(DBSCAN)、IsolationForest(IF)、RadomCutForest(RCF)等,其中DBSCAN是一種典型的無監督聚類方法,對某些類型的異常值檢測也能起到不錯的效果。該演算法原理網上資料較多,本文不作詳細介紹。
IF演算法最早由南京大學人工智慧學院院長周志華的團隊提出,是一種非常高效的異常值檢測方法,該方法不需要對樣本數據做任何先驗的假設,只需基於這樣一個事實——異常值只是少數,並且它們具有與正常值非常不同的屬性值。與隨機森林由大量決策樹組成一樣,IsolationForest也由大量的樹組成。IsolationForest中的樹叫isolation tree,簡稱iTree。iTree樹和決策樹不太一樣,其構建過程也比決策樹簡單,因為其中就是一個完全隨機的過程。
假設數據集有N條數據,構建一顆iTree時,從N條數據中均勻抽樣(一般是無放回抽樣)出n個樣本出來,作為這顆樹的訓練樣本。
在樣本中,隨機選一個特徵,並在這個特徵的所有值范圍內(最小值與最大值之間)隨機選一個值,對樣本進行二叉劃分,將樣本中小於該值的劃分到節點的左邊,大於等於該值的劃分到節點的右邊。
這樣得到了一個分裂條件和左、右兩邊的數據集,然後分別在左右兩邊的數據集上重復上面的過程,直至達到終止條件。 終止條件有兩個,一個是數據本身不可再分(只包括一個樣本,或者全部樣本相同),另外一個是樹的高度達到log2(n)。 不同於決策樹,iTree在演算法裡面已經限制了樹的高度。不限制雖然也可行,但出於效率考慮,演算法一般要求高度達到log2(n)深度即可。
把所有的iTree樹構建好了,就可以對測試數據進行預測了。預測的過程就是把測試數據在iTree樹上沿對應的條件分支往下走,直到達到葉子節點,並記錄這過程中經過的路徑長度h(x),即從根節點,穿過中間的節點,最後到達葉子節點,所走過的邊的數量(path length)。最後,將h(x)帶入公式,其中E(.)表示計算期望,c(n)表示當樣本數量為n時,路徑長度的平均值,從而便可計算出每條待測數據的異常分數s(Anomaly Score)。異常分數s具有如下性質:
1)如果分數s越接近1,則該樣本是異常值的可能性越高;
2)如果分數s越接近0,則該樣本是正常值的可能性越高;
RCF演算法與IF演算法思想上是比較類似的,前者可以看成是在IF演算法上做了一些改進。針對IF演算法中沒有考慮到的時間序列因素,RCF演算法考慮了該因素,並且在數據樣本采樣策略上作出了一些改進,使得異常值檢測相對IF演算法變得更加准確和高效,並能更好地應用於流式數據檢測。
IF演算法
RCF演算法
上圖展示了IF演算法和RCF演算法對於異常值檢測的異同。我們可以看出原始數據中有兩個突變異常數據值,對於後一個較大的突變異常值,IF演算法和RCF演算法都檢測了出來,但對於前一個較小的突變異常值,IF演算法沒有檢測出來,而RCF演算法依然檢測了出來,這意味著RCF有更好的異常值檢測性能。
異常值檢測應用實踐
理論還需結合實踐,下面我們將以某應用從2016.08.16至2019.09.21的日活變化情況為例,對異常值檢測的實際應用場景予以介紹:
從上圖中可以看出該應用的日活存在著一些顯著的異常值(比如紅色圓圈部分),這些異常值可能由於活動促銷或者更新迭代出現bug導致日活出現了比較明顯的波動。下面分別用基於統計的方法和基於模型的方法對該日活序列數據進行異常值檢測。
基於3σ法則(基於統計)
RCF演算法(基於模型)
從圖中可以看出,對於較大的突變異常值,3σ法則和RCF演算法都能較好地檢測出來, 但對於較小的突變異常值,RCF演算法則要表現得更好。
總結
上文為大家講解了異常值檢測的方法原理以及應用實踐。綜合來看,異常值檢測演算法多種多樣 ,每一種都有自己的優缺點和適用范圍,很難直接判斷哪一種異常檢測演算法是最佳的, 具體在實戰中,我們需要根據自身業務的特點,比如對計算量的要求、對異常值的容忍度等,選擇合適的異常值檢測演算法。
接下來,個推也會結合自身實踐,在大數據異常檢測方面不斷深耕,繼續優化演算法模型在不同業務場景中的性能,持續為開發者們分享前沿的理念與最新的實踐方案。