異常檢測學(xué)習(xí)筆記--Task02:基于統(tǒng)計(jì)學(xué)的方法

異常檢測的統(tǒng)計(jì)學(xué)方法的一般思想是:學(xué)習(xí)一個(gè)擬合給定數(shù)據(jù)集的生成模型悼粮,然后識別該模型低概率區(qū)域中的對象,把它們作為異常點(diǎn)曾棕。
即利用統(tǒng)計(jì)學(xué)方法建立一個(gè)模型扣猫,然后考慮對象有多大可能符合該模型。

1 參數(shù)方法

1.1 基于正態(tài)分布的一元異常點(diǎn)檢測

用Python畫一個(gè)簡單的箱線圖:

import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt

data = np.random.randn(50000) * 20 + 20
sns.boxplot(data=data)

實(shí)驗(yàn)結(jié)果如下:


圖1

2.2 多元異常點(diǎn)檢測

3 非參數(shù)方法

4 基于角度的方法

5 HBOS

HBOS算法流程:
為每個(gè)數(shù)據(jù)維度做出數(shù)據(jù)直方圖翘地。對分類數(shù)據(jù)統(tǒng)計(jì)每個(gè)值的頻數(shù)并計(jì)算相對頻率申尤。對數(shù)值數(shù)據(jù)根據(jù)分布的不同采用以下兩種方法:

  • 靜態(tài)寬度直方圖:標(biāo)準(zhǔn)的直方圖構(gòu)建方法,在值范圍內(nèi)使用k個(gè)等寬箱衙耕。樣本落入每個(gè)桶的頻率(相對數(shù)量)作為密度(箱子高度)的估計(jì)昧穿。時(shí)間復(fù)雜度:O(n)
  • 動態(tài)寬度直方圖:首先對所有值進(jìn)行排序,然后固定數(shù)量的Nk個(gè)連續(xù)值裝進(jìn)一個(gè)箱里橙喘,其中N是總實(shí)例數(shù)时鸵,k是箱個(gè)數(shù);直方圖中的箱面積表示實(shí)例數(shù)厅瞎。因?yàn)橄涞膶挾仁怯上渲械谝粋€(gè)值和最后一個(gè)值決定的寥枝,所有箱的面積都一樣,因此每一個(gè)箱的高度都是可計(jì)算的磁奖。這意味著跨度大的箱的高度低囊拜,即密度小,只有一種情況例外比搭,超過k個(gè)數(shù)相等冠跷,此時(shí)允許在同一個(gè)箱里超過Nk值。
    時(shí)間復(fù)雜度:O(n×log(n))

6 學(xué)習(xí)總結(jié):

1.異常檢測的統(tǒng)計(jì)學(xué)方法由數(shù)據(jù)學(xué)習(xí)模型身诺,以區(qū)別正常的數(shù)據(jù)對象和異常點(diǎn)蜜托。使用統(tǒng)計(jì)學(xué)方法的一個(gè)優(yōu)點(diǎn)是,異常檢測可以是統(tǒng)計(jì)上無可非議的霉赡。當(dāng)然橄务,僅當(dāng)對數(shù)據(jù)所做的統(tǒng)計(jì)假定滿足實(shí)際約束時(shí)才為真。

2.HBOS在全局異常檢測問題上表現(xiàn)良好穴亏,但不能檢測局部異常值蜂挪。但是HBOS比標(biāo)準(zhǔn)算法快得多重挑,尤其是在大數(shù)據(jù)集上。

7. HBOS模型實(shí)驗(yàn)

該實(shí)驗(yàn)在jupyter notebook編輯器中完成棠涮。
實(shí)驗(yàn)步驟如下:

  1. 利用generate_data函數(shù)生成異常值占比為10%的toy set
from pyod.utils.data import generate_data,evaluate_print
contamination = 0.1  # percentage of outliers
n_train = 200  # number of training points
n_test = 100  # number of testing points

X_train, y_train, X_test, y_test = generate_data(
   n_train=n_train, n_test=n_test, contamination=contamination)

2.導(dǎo)入hbos谬哀,生成一個(gè)HBOS的異常檢測器對象。 用fit()方法

from pyod.models import hbos
from pyod.utils.example import visualize 

clf = hbos.HBOS()
clf.fit(X_train)
y_train_pred = clf.labels_
y_train_socres = clf.decision_scores_
y_test_pred = clf.predict(X_test)  # 返回未知數(shù)據(jù)上的分類標(biāo)簽 (0: 正常值, 1: 異常值)
y_test_scores = clf.decision_function(X_test)  #  返回未知數(shù)據(jù)上的異常值 (分值越大越異常)

3 獲得結(jié)果并進(jìn)行可視化觀察

clf_name = 'HBOS'
print("\nOn Test Data:")
evaluate_print(clf_name, y_test, y_test_scores)
visualize(clf_name, X_train, y_train, X_test, y_test, y_train_pred,
   y_test_pred, show_figure=True, save_figure=False)

實(shí)驗(yàn)結(jié)果如下圖所示:
On Test Data:
HBOS ROC:1.0, precision @ rank n:1.0


圖2

致謝Datawhale團(tuán)隊(duì)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末严肪,一起剝皮案震驚了整個(gè)濱河市史煎,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌驳糯,老刑警劉巖篇梭,帶你破解...
    沈念sama閱讀 217,185評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異酝枢,居然都是意外死亡恬偷,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,652評論 3 393
  • 文/潘曉璐 我一進(jìn)店門隧枫,熙熙樓的掌柜王于貴愁眉苦臉地迎上來喉磁,“玉大人谓苟,你說我怎么就攤上這事官脓。” “怎么了涝焙?”我有些...
    開封第一講書人閱讀 163,524評論 0 353
  • 文/不壞的土叔 我叫張陵卑笨,是天一觀的道長。 經(jīng)常有香客問我仑撞,道長赤兴,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,339評論 1 293
  • 正文 為了忘掉前任隧哮,我火速辦了婚禮桶良,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘沮翔。我一直安慰自己陨帆,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,387評論 6 391
  • 文/花漫 我一把揭開白布采蚀。 她就那樣靜靜地躺著疲牵,像睡著了一般。 火紅的嫁衣襯著肌膚如雪榆鼠。 梳的紋絲不亂的頭發(fā)上纲爸,一...
    開封第一講書人閱讀 51,287評論 1 301
  • 那天,我揣著相機(jī)與錄音妆够,去河邊找鬼识啦。 笑死负蚊,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的袁滥。 我是一名探鬼主播盖桥,決...
    沈念sama閱讀 40,130評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼题翻!你這毒婦竟也來了揩徊?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,985評論 0 275
  • 序言:老撾萬榮一對情侶失蹤嵌赠,失蹤者是張志新(化名)和其女友劉穎塑荒,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體姜挺,經(jīng)...
    沈念sama閱讀 45,420評論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡齿税,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,617評論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了炊豪。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片凌箕。...
    茶點(diǎn)故事閱讀 39,779評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖词渤,靈堂內(nèi)的尸體忽然破棺而出牵舱,到底是詐尸還是另有隱情,我是刑警寧澤缺虐,帶...
    沈念sama閱讀 35,477評論 5 345
  • 正文 年R本政府宣布芜壁,位于F島的核電站,受9級特大地震影響高氮,放射性物質(zhì)發(fā)生泄漏慧妄。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,088評論 3 328
  • 文/蒙蒙 一剪芍、第九天 我趴在偏房一處隱蔽的房頂上張望塞淹。 院中可真熱鬧,春花似錦罪裹、人聲如沸饱普。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,716評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽费彼。三九已至,卻和暖如春口芍,著一層夾襖步出監(jiān)牢的瞬間箍铲,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,857評論 1 269
  • 我被黑心中介騙來泰國打工鬓椭, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留颠猴,地道東北人关划。 一個(gè)月前我還...
    沈念sama閱讀 47,876評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像翘瓮,于是被迫代替她去往敵國和親贮折。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,700評論 2 354

推薦閱讀更多精彩內(nèi)容