異常檢測——集成學習

首先,知道一個模型好不好(精確不)

外部指標

aucroc
top-k正確率
但是這些都是有監督的😭

內部指標

目前暫無

其次,提高不同模型的多樣性

多樣性的意義

圖中紅色的一個點代表一個模型的結果,綠圈代表groundtruth,藍色代表集成各個模型後的結果。
在這裏插入圖片描述
當模型具有多樣性時,模型之間可以互補,結果會更接近於groundtruth。
在這裏插入圖片描述
當模型不具備多樣性時,多個模型的結果可能聚集在一起,導致最終的結果向該方向偏移,並不會取得很好的結果。
總的來說,每個模型越精確,模型之間越具有多樣性,最終得到的結果就越好。

多樣性的引入

目前主要通過以下幾種方法實現:

  • 每個模型在不同的特徵子集上學習
    • 如feature bagging
  • 每個模型在不同的數據子集上學習
    • 比如估計密度時,只用10%的數據,可以大大的提高運算速度,增加多樣性
  • 用隨機的方法訓練/學習
    • 例如isolation forests ,每次subsample時,可以選隨機的特徵把樹split,可以視爲隨機的方法
  • 用同一種方法學習,但是用不同的參數
    • 不同的參數會帶來不同的學習效果
  • 用不同的模型學習
    • 使用時要注意結果的normalization and unification ,避免單模型分數高影響最終結果

多樣性的評估

目前發現

  • 使用同一方法,不同參數學習的結果很相似
  • 不同的距離度量方法可以帶來多樣性
  • 同一家族裏的算法具有相似的結果,如LOF和LoOP
  • Feature Bagging可以獲得比較uncorrelated結果,能改善集成的結果

模型的選擇

模型的選擇有不同的方法,比較有代表性的是啓發式的算法。
論文中給了一個貪心的模型選擇算法。
在這裏插入圖片描述
利用weighted Pearson來判斷相似性,然後進行貪心的選擇。

模型的集成

已經獲得了準確的、具有多樣性的模型,並對其進行選擇以後,就要將模型集成在一起了,集成時要注意以下幾點。

異常分數的Normalization

避免單模型分數scale不同導致的誤差

分數向量的合成

Normalization以後,如何將這些分數向量(1*m,m表示數據的個數)合成在一起,需要考慮實際的狀況。

在這裏插入圖片描述
如果分數大,表示大概率爲異常,分數小表示大概率爲正常時,選用maximum score會傾向於將數據判斷爲異常。上圖a表示會傾向於表示爲異常,圖b表示可能某個單個模型的結果會對最終結果造成很大的影響。
通常情況下,選用maximum score不如選用mean。
但是實際上還是根據具體應用具體分析。如果漏掉異常的代價比高的false alarm rate代價高,那麼使用maximum score是不錯的選擇。如果false negative的代價高,而錯過一個異常代價低,那麼選擇minimum也很好。

排名的合成

有時有些模型不輸出異常分數,而是輸出異常排名。這時候就要進行排名的合成了。這種在數據庫和信息檢索學中都有比較成熟的方法。
feature bagging 中使用的方法是breadth-first traversal rank combination,這是一種寬度優先的算法,將每個模型的topk排名取出,然後依次拿出每個模型的第一名,排在一起,然後再拿第二名,以此類推。

總結

成功集成的關鍵

  • 學到好的模型(精確)
  • 讓模型具有多樣性
  • 將這些模型結合在一起
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章