Ensembles for Unsupervised Outlier Detection: Challenges and Research Questions
首先,知道一個模型好不好(精確不)
外部指標
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排名取出,然後依次拿出每個模型的第一名,排在一起,然後再拿第二名,以此類推。
總結
成功集成的關鍵
- 學到好的模型(精確)
- 讓模型具有多樣性
- 將這些模型結合在一起