主要內(nèi)容包括:
1、高斯分布
2樟蠕、箱線圖
3贮聂、HBOS
1、概述
在統(tǒng)計學(xué)方法對數(shù)據(jù)的正常性做出假定寨辩。
它們假定正常的數(shù)據(jù)對象由一個統(tǒng)計模型產(chǎn)生吓懈,而不遵守該模型的數(shù)據(jù)是異常點(outlier)。
統(tǒng)計學(xué)方法的有效性(efficient)高度依賴于對給定數(shù)據(jù)所做的統(tǒng)計模型假定是否成立靡狞。
異常檢測的統(tǒng)計學(xué)方法的一般思想是:學(xué)習(xí)一個擬合給定數(shù)據(jù)集的生成模型耻警,然后識別該模型低概率區(qū)域中的對象,把它們作為異常點甸怕。
異常檢測的統(tǒng)計學(xué)方法可以劃分為兩個主要類型:參數(shù)方法和非參數(shù)方法甘穿。
參數(shù)方法假定正常的數(shù)據(jù)對象被一個以為參數(shù)的參數(shù)分布產(chǎn)生。
某對象是由給定分布產(chǎn)生的概率值源于該參數(shù)分布的概率密度函數(shù)
該值越小梢杭,x越可能是異常點温兼。
非參數(shù)方法并不假定先驗統(tǒng)計模型,而是試圖從輸入數(shù)據(jù)確定模型武契,參數(shù)靈活而非無參
2募判、參數(shù)方法
2.1 基于正態(tài)分布的一元異常點檢測
一元數(shù)據(jù):僅涉及一個屬性或變量的數(shù)據(jù)
我們假定數(shù)據(jù)由正態(tài)分布產(chǎn)生,然后可以由輸入數(shù)據(jù)學(xué)習(xí)正態(tài)分布的參數(shù)咒唆,并把低概率的點識別為異常點届垫。
假定輸入數(shù)據(jù)集為,且
$全释,由樣本確定參數(shù)
和
装处。
求出參數(shù)之后,我們就可以根據(jù)概率密度函數(shù)計算數(shù)據(jù)點服從該分布的概率恨溜。正態(tài)分布的概率密度函數(shù)為
如果計算出來的概率低于閾值符衔,就可以認(rèn)為該數(shù)據(jù)點為異常點。
閾值:經(jīng)驗值糟袁,可以選擇在驗證集上使得評估指標(biāo)值最大(也就是效果最好)的閾值取值作為最終閾值。
例如常用的3sigma原則中躺盛,如果數(shù)據(jù)點超過范圍项戴,那么這些點很有可能是異常點。
這個方法還可以用于可視化槽惫。我們可以使用箱線圖對數(shù)據(jù)分布做了一個簡單的統(tǒng)計可視化周叮,異常點常被定義為小于Q1-1.5IQR或大于Q3+1.5IQR的那些數(shù)據(jù)辩撑。
用Python畫一個簡單的箱線圖:
2.2 多元異常點檢測
涉及兩個或多個屬性或變量的數(shù)據(jù)稱為多元數(shù)據(jù)。許多一元異常點檢測方法都可以擴(kuò)充仿耽,用來處理多元數(shù)據(jù)合冀。其核心思想是把多元異常點檢測任務(wù)轉(zhuǎn)換成一元異常點檢測問題。例如基于正態(tài)分布的一元異常點檢測擴(kuò)充到多元情形時项贺,可以求出每一維度的均值和標(biāo)準(zhǔn)差君躺。對于第$j$維:
$\mu_j=\frac 1m\sum_{i=1}^m x_j^{(i)}$
$\sigma_j^2=\frac 1m\sum_{i=1}^m (x_j^{(i)}-\mu_j)^2$
計算概率時的概率密度函數(shù)為
$p(x)=\prod_{j=1}^n p(x_j;\mu_j,\sigma_j^2)=\prod_{j=1}^n\frac 1{\sqrt{2\pi}\sigma_j}exp(-\frac{(x_j-\mu_j)^2}{2\sigma_j^2})$
這是在各個維度的特征之間相互獨立的情況下。如果特征之間有相關(guān)性开缎,就要用到多元高斯分布了棕叫。
1.3 多個特征相關(guān),且符合多元高斯分布
$\mu=\frac{1}{m}\sum^m_{i=1}x^{(i)}$
$\sum=\frac{1}{m}\sum^m_{i=1}(x^{(i)}-\mu)(x^{(i)}-\mu)^T$
$p(x)=\frac{1}{(2 \pi)^{\frac{n}{2}}|\Sigma|^{\frac{1}{2}}} \exp \left(-\frac{1}{2}(x-\mu)^{T} \Sigma^{-1}(x-\mu)\right)$
ps:當(dāng)多元高斯分布模型的協(xié)方差矩陣$\sum$為對角矩陣奕删,且對角線上的元素為各自一元高斯分布模型的方差時俺泣,二者是等價的。
3.使用混合參數(shù)分布
在許多情況下假定數(shù)據(jù)是由正態(tài)分布產(chǎn)生的完残。當(dāng)實際數(shù)據(jù)很復(fù)雜時伏钠,這種假定過于簡單,可以假定數(shù)據(jù)是被混合參數(shù)分布產(chǎn)生的谨设。
在異常檢測的非參數(shù)方法中,“正常數(shù)據(jù)”的模型從輸入數(shù)據(jù)學(xué)習(xí)铝宵,而不是假定一個先驗打掘。通常,非參數(shù)方法對數(shù)據(jù)做較少假定鹏秋,因而在更多情況下都可以使用尊蚁。
例子:使用直方圖檢測異常點。
直方圖是一種頻繁使用的非參數(shù)統(tǒng)計模型侣夷,可以用來檢測異常點横朋。該過程包括如下兩步:
步驟1:構(gòu)造直方圖。使用輸入數(shù)據(jù)(訓(xùn)練數(shù)據(jù))構(gòu)造一個直方圖百拓。該直方圖可以是一元的琴锭,或者多元的(如果輸入數(shù)據(jù)是多維的)。
盡管非參數(shù)方法并不假定任何先驗統(tǒng)計模型衙传,但是通常確實要求用戶提供參數(shù)决帖,以便由數(shù)據(jù)學(xué)習(xí)。例如蓖捶,用戶必須指定直方圖的類型(等寬的或等深的)和其他參數(shù)(直方圖中的箱數(shù)或每個箱的大小等)地回。與參數(shù)方法不同,這些參數(shù)并不指定數(shù)據(jù)分布的類型。
步驟2:檢測異常點刻像。為了確定一個對象是否是異常點畅买,可以對照直方圖檢查它。在最簡單的方法中细睡,如果該對象落入直方圖的一個箱中谷羞,則該對象被看作正常的,否則被認(rèn)為是異常點溜徙。
對于更復(fù)雜的方法湃缎,可以使用直方圖賦予每個對象一個異常點得分。例如令對象的異常點得分為該對象落入的箱的容積的倒數(shù)萌京。
使用直方圖作為異常點檢測的非參數(shù)模型的一個缺點是雁歌,很難選擇一個合適的箱尺寸。一方面知残,如果箱尺寸太小靠瞎,則許多正常對象都會落入空的或稀疏的箱中,因而被誤識別為異常點求妹。另一方面乏盐,如果箱尺寸太大,則異常點對象可能滲入某些頻繁的箱中制恍,因而“假扮”成正常的父能。
基于角度的方法的主要思想是:數(shù)據(jù)邊界上的數(shù)據(jù)很可能將整個數(shù)據(jù)包圍在一個較小的角度內(nèi)净神,而內(nèi)部的數(shù)據(jù)點則可能以不同的角度圍繞著他們何吝。如下圖所示,其中點A是一個異常點鹃唯,點B位于數(shù)據(jù)內(nèi)部爱榕。
如果數(shù)據(jù)點與其余點離得較遠(yuǎn),則潛在角度可能越小坡慌。因此黔酥,具有較小角度譜的數(shù)據(jù)點是異常值,而具有較大角度譜的數(shù)據(jù)點不是異常值洪橘。
考慮三個點X,Y,Z跪者。如果對于任意不同的點Y,Z,有:
$$ W \operatorname{Cos}(\overrightarrow{X Y}, \overrightarrow{X Z})=\frac{\langle\overline{X Y}, X Z\rangle}{|X Y||X Z|} $$ 其中$||\space||$代表L2范數(shù) , $< · > $代表點積熄求。
這是一個加權(quán)余弦渣玲,因為分母包含L2-范數(shù),其通過距離的逆加權(quán)進(jìn)一步減小了異常點的加權(quán)角抡四,這也對角譜產(chǎn)生了影響柜蜈。然后仗谆,通過改變數(shù)據(jù)點Y和Z指巡,保持X的值不變計算所有角度的方法淑履。相應(yīng)地,數(shù)據(jù)點X的基于角度的異常分?jǐn)?shù)(ABOF)∈ D為:
$$ A B O F(X)=\operatorname{Var}_{{Y, Z \in D}} W \operatorname{Cos}(\overrightarrow{X Y}, \overrightarrow{X Z}) $$
HBOS全名為:Histogram-based Outlier Score秘噪。它是一種單變量方法的組合,不能對特征之間的依賴關(guān)系進(jìn)行建模勉耀,但是計算速度較快指煎,對大數(shù)據(jù)集友好。其基本假設(shè)是數(shù)據(jù)集的每個維度相互獨立便斥。然后對每個維度進(jìn)行區(qū)間(bin)劃分至壤,區(qū)間的密度越高,異常評分越低枢纠。
HBOS算法流程:
1.為每個數(shù)據(jù)維度做出數(shù)據(jù)直方圖像街。對分類數(shù)據(jù)統(tǒng)計每個值的頻數(shù)并計算相對頻率。對數(shù)值數(shù)據(jù)根據(jù)分布的不同采用以下兩種方法:
靜態(tài)寬度直方圖:標(biāo)準(zhǔn)的直方圖構(gòu)建方法晋渺,在值范圍內(nèi)使用k個等寬箱镰绎。樣本落入每個桶的頻率(相對數(shù)量)作為密度(箱子高度)的估計。時間復(fù)雜度:$O(n)$
2.動態(tài)寬度直方圖:首先對所有值進(jìn)行排序木西,然后固定數(shù)量的$\frac{N}{k}$個連續(xù)值裝進(jìn)一個箱里畴栖,其中N是總實例數(shù),k是箱個數(shù)八千;直方圖中的箱面積表示實例數(shù)吗讶。因為箱的寬度是由箱中第一個值和最后一個值決定的,所有箱的面積都一樣恋捆,因此每一個箱的高度都是可計算的照皆。這意味著跨度大的箱的高度低,即密度小鸠信,只有一種情況例外纵寝,超過k個數(shù)相等,此時允許在同一個箱里超過$\frac{N}{k}$值星立。
時間復(fù)雜度:$O(n\times log(n))$
2.對每個維度都計算了一個獨立的直方圖爽茴,其中每個箱子的高度表示密度的估計。然后為了使得最大高度為1(確保了每個特征與異常值得分的權(quán)重相等)绰垂,對直方圖進(jìn)行歸一化處理室奏。最后,每一個實例的HBOS值由以下公式計算:
$$ H B O S(p)=\sum_{i=0}^aplww21 \log \left(\frac{1}{\text {hist}_{i}(p)}\right) $$
推導(dǎo)過程:
假設(shè)樣本p第?i?個特征的概率密度為$p_i(p)$ 劲装,則p的概率密度可以計算為: $$ P(p)=P_{1}(p) P_{2}(p) \cdots P_phdhdbc(p) $$ 兩邊取對數(shù): $$ \begin{aligned} \log (P(p)) &=\log \left(P_{1}(p) P_{2}(p) \cdots P_brmxil3(p)\right) =\sum_{i=1}^yzkvcpu \log \left(P_{i}(p)\right) \end{aligned} $$ 概率密度越大胧沫,異常評分越小昌简,為了方便評分,兩邊乘以“-1”: $$ -\log (P(p))=-1 \sum_{i=1}^2ueppdu \log \left(P_{t}(p)\right)=\sum_{i=1}^coodobd \frac{1}{\log \left(P_{i}(p)\right)} $$ 最后可得: $$ H B O S(p)=-\log (P(p))=\sum_{i=1}^uzkuua2 \frac{1}{\log \left(P_{i}(p)\right)} $$
1.異常檢測的統(tǒng)計學(xué)方法由數(shù)據(jù)學(xué)習(xí)模型,以區(qū)別正常的數(shù)據(jù)對象和異常點犬金。使用統(tǒng)計學(xué)方法的一個優(yōu)點是,異常檢測可以是統(tǒng)計上無可非議的该默。當(dāng)然栓袖,僅當(dāng)對數(shù)據(jù)所做的統(tǒng)計假定滿足實際約束時才為真叽赊。
2.HBOS在全局異常檢測問題上表現(xiàn)良好必指,但不能檢測局部異常值恕洲。但是HBOS比標(biāo)準(zhǔn)算法快得多霜第,尤其是在大數(shù)據(jù)集上泌类。
[1] Goldstein, M. and Dengel, A., 2012. Histogram-based outlier score (hbos):A fast unsupervised anomaly detection algorithm . InKI-2012: Poster and Demo Track, pp.59-63.
[2]?http://speech.ee.ntu.edu.tw/~tlkagk/courses.html
[3]?http://cs229.stanford.edu/
[4] 《Outlier Analysis》——Charu C. Aggarwal