異常檢測 Anomaly Detection

2021-09-29 21:34:03 字數 2712 閱讀 8793

什麼是異常檢測呢?為了解釋這個概念,讓我舉乙個例子吧:

假想你是乙個飛機引擎製造商,當你生產的飛機引擎從生產線上流出時,你需要進行 qa (質量控制測試),而作為這個測試的一部分,你測量了飛機擎的一些特徵變數,比如引擎運轉時產生的熱量,或者引擎的振動等等。

這樣一來,你就有了乙個資料集,從 x(1)到 x(m),如果你生產了 m 個引擎的話,你將這些資料繪製成圖表,看起來就是這個樣子:

這裡的每個點、每個叉,都是你的無標籤資料。這樣,異常檢測問題可以定義如下:我們假設後來有一天,你有乙個新的飛機引擎從生產線上流出,而你的新飛機引擎有特徵變數xtest。所謂的異常檢測問題就是:我們希望知道這個新的飛機引擎是否有某種異常,或者說,我們希望判斷這個引擎是否需要進一步測試。因為,如果它看起來像乙個正常的引擎,那麼我們可以直接將它運送到客戶那裡,而不需要進一步的測試。給定資料集 x(1),x(2),…,x(m),我們假使資料集是正常的,我們希望知道新的資料 xtest是不是異常的,即這個測試資料不屬於該組資料的機率如何。我們所構建的模型應該能根據該測試資料的位置告訴我們其屬於一組資料的可能性 p(x)。

上圖中,在藍色圈內的資料屬於該組資料的可能性較高,而越是偏遠的資料,其屬於該組資料的可能性就越低。這種方法稱為密度估計,表達如下:
表示式

高斯分布,也稱為正態分佈。回顧高斯分布的基本知識。

通常如果我們認為變數 x 符合高斯分布 x~n(μ,σ2)則其概率密度函式為:

我們可以利用已有的資料來**總體中的 μ 和 σ2 的計算方法如下:

高斯分布樣例:

注:機器學習中對於方差我們通常只除以 m 而非統計學中的(m-1)。這裡順便提一下,在實際使用中,到底是選擇使用 1/m 還是 1/(m-1)其實別很小,只要你有乙個還算大的訓練集,在機器學習領域大部分人更習慣使用 1/m 這個版本的公式。這兩個版本的公式在理論特性和數學特性上有不同,但是在實際使用中,他們的區別甚小,幾乎可以忽略不計。

應用高斯分布開發異常檢測演算法。

異常檢測演算法:對於給定的資料集 (1),x(2),…,x(m) ,我們要針對每乙個特徵計算 μ 和 σ2 的估計值。

一旦我們獲得了平均值和方差的估計值,給定新的乙個訓練例項,根據模型計算 p(x):

當 p(x)

下面的三維圖表表示的是密度估計函式,z 軸為根據兩個特徵的值所估p(x)值:

我們選擇乙個 ε,將 p(x)=ε 作為我們的判定邊界,當 p(x)>ε 時**數為正常資料,機器學習課程-第 9 周-十

五、異常檢測(anomaly detection)否則則為異常。

異常檢測演算法是乙個非監督學習演算法,意味著我們無法根據結果變數 y 的值來告訴我們資料是否真的是異常的。我們需要另一種方法來幫助檢驗演算法是否有效。當我們開發乙個異常檢測系統時,我們從帶標記(異常或正常)的資料著手,我們從其中選擇一部分正常資料用於構建訓練集,然後用剩下的正常資料和異常資料混合的資料構成交叉檢驗集和測試集。

例如:我們有 10000 臺正常引擎的資料,有 20 臺異常引擎的資料。 我們這樣分配資料:

6000 臺正常引擎的資料作為訓練集

2000 臺正常引擎和 10 臺異常引擎的資料作為交叉檢驗集

2000 臺正常引擎和 10 臺異常引擎的資料作為測試集

具體的評價方法如下:

根據測試集資料,我們估計特徵的平均值和方差並構建 p(x)函式

對交叉檢驗集,我們嘗試使用不同的 ε 值作為閥值,並**資料是否異常,根據 f1值或者查準率與查全率的比例來選擇 ε

選出 ε 後,針對測試集進行**,計算異常檢驗系統的 f1 值,或者查準率與查全率之比

之前我們構建的異常檢測系統也使用了帶標記的資料,與監督學習有些相似,下面的對比有助於選擇採用監督學習還是異常檢測:

兩者比較:

希望這節課能讓你明白乙個學習問題的什麼樣的特徵,能讓你把這個問題當做是乙個異常檢測,或者是乙個監督學習的問題。另外,對於很多技術公司可能會遇到的一些問題,通常來說,正樣本的數量很少,甚至有時候是 0,也就是說,出現了太多沒見過的不同的異常型別,那麼對於這些問題,通常應該使用的演算法就是異常檢測演算法。

異常細胞檢測

描述 拍攝的一張 ct 用乙個二維陣列來儲存,假設陣列中的每個點代表乙個細胞。每個細胞的顏色用0到 255之間 包括0和 255 的乙個整數表示。定義乙個細胞是異常細胞,如果這個細胞的顏色值比它上下左右 4個細胞的顏色值都小 50以上 包括 50 陣列邊緣上的細胞不檢測。現在的任務是,給定乙個儲存 ...

檢測異常細胞

陣列 第9題 描述 拍攝的一張ct 用乙個二維陣列來儲存,假設陣列中的每個點代表乙個細胞。每個細胞的顏色用0到255之間 包括0和255 的乙個整數表示。定義乙個細胞是異常細胞,如果這個細胞的顏色值比它上下左右4個細胞的顏色值都小50以上 包括50 陣列邊緣上的細胞不檢測。現在的任務是,給定乙個儲存...

異常檢測方法

異常檢測可謂是乙個博大精深的研究方向,在故障檢測 欺詐檢測 入侵檢測領域有著廣泛應用。本文只是結合各網路資源對其基礎進行簡單介紹,涉及到具體的領域和實際應用,還需進行深入研究和嘗試。正常狀態不能明確定義 在某些領域正常和異常並沒有明確的界限 資料本身存在雜訊,雜訊和異常難以區分 正常行為並不是一成不...