DataWhale 組隊(duì)學(xué)習(xí) 2021.05 組隊(duì)學(xué)習(xí)系列筆記二
先上整體大綱
異常檢測(cè)--統(tǒng)計(jì)學(xué)方法大綱
HBOS流程:
- 為每個(gè)數(shù)據(jù)維度做出數(shù)據(jù)直方圖。對(duì)分類數(shù)據(jù)統(tǒng)計(jì)每個(gè)值的頻數(shù)并計(jì)算相對(duì)頻率。
- 對(duì)每個(gè)維度都計(jì)算一個(gè)獨(dú)立直方圖入挣,其中每個(gè)箱子的高度表示密度的估計(jì)。然后對(duì)直方圖進(jìn)行歸一化處理硝拧,使得每個(gè)箱子的最大高度為1径筏,確保每個(gè)特征的異常值得分的權(quán)重相等。
基本假設(shè)是數(shù)據(jù)集的各維度相互獨(dú)立障陶,對(duì)每個(gè)維度進(jìn)行區(qū)間劃分滋恬,計(jì)算區(qū)間密度,密度越高抱究,評(píng)分越低恢氯。
常用兩種作圖方式:1.固定的柱寬度。2.柱個(gè)數(shù)大致相同鼓寺,但導(dǎo)致不同的柱寬度勋拟。 當(dāng)有大量離群值的時(shí)候,第二種方法更強(qiáng)固妈候。
代碼示例:
from pyod.models import hbos
from pyod.utils.example import visualize
clf = hbos.HBOS() # 初始化HBOS模型敢靡,生成一個(gè)HBOS檢測(cè)器
clf.fit(X_train) # 用fit()方法擬合數(shù)據(jù)
y_train_pred = clf.labels_ # 針對(duì)訓(xùn)練樣本預(yù)測(cè)其異常情況
y_train_socres = clf.decision_scores_ # 異常分?jǐn)?shù)
y_test_pred = clf.predict(X_test) # 返回未知數(shù)據(jù)上的分類標(biāo)簽 (0: 正常值, 1: 異常值)
y_test_scores = clf.decision_function(X_test) # 返回未知數(shù)據(jù)上的異常值 (分值越大越異常)