異常檢測 初識pyod TASK5

摘要:本次練習,採用了三個數據集,generate_data,breast cancer以及癲癇數據集,對於feature bagging ,使用breast cancer數據集,探索提高基分類器的個數,發現測試集的precision @ n 的精度先升高後下降,後來針對基分類器的個數,畫出了breast cancer數據集的曲線。該開始沒有控制train_test_split的random_state,沒有單一變量,所以結果不對,但是後來發現,控制完以後,每次的結果也是不一樣的。但是大部分情況下,曲線是比較穩定的,偶爾會有一個小的上衝,隨後下降。基分類器的數目,只要影響的是訓練集的precision @ n所以,基本上,選擇默認的個數就可以了,也可能存在一定概率會有更好的可能性。random_state會影響最後的結果,尤其對於異常數目較少的數據。

1.筆記

1.1 簡介

這一節主要講的是,高維數據的異常檢測,包含三個部分:簡介維度詛咒,以及兩種方法(Feature Bagging和Isolation Forests)的詳細論述。
在這裏插入圖片描述

1.1.1 維度詛咒

這部分講述了維度詛咒的含義,以及解決方案。

在這裏插入圖片描述

1.2 Feature Bagging

這部分主要講解了簡介、基檢測器以及組合的方法

1.2.1簡介

主要簡介集成方法的分類,方差與偏差

在這裏插入圖片描述

1.2.2 基檢測器

主要講述常用算法以及通用算法流程
在這裏插入圖片描述

1.2.3 組合方法

主要有兩種方法,第一種是廣度優先的方法,第二種是平均法。第一種理解起來比較有難度,建議看原文,在本文最後附件裏面。

  • 主要就是,某種算法算出所有樣本的異常得分之後,是進行了排序的
  • 然後依次選出異常得分最大的樣本(已經選出的,不再選),直到選出數據集樣本數目個樣本。也相當於把所有算法得出的異常分數,進行降序排列,依次選擇,選過的樣本不再選,每一個異常得分都會對應一個異常的索引,索引到原始數據集裏面的對應樣本。
  • 字符有時候容易搞混,建議帶入具體數值進行理解

在這裏插入圖片描述

1.3 Isolation Forests

1.3.1 簡介

在這裏插入圖片描述

1.3.2 原理

在這裏插入圖片描述
路徑的計算,是在經過多少次分類的次數+調整值,調整值是如果樹的高度達到上限了,那麼這個調整值代表的就是還沒有建立的樹所對應的路徑。

1.3.3 步驟

在這裏插入圖片描述

2.練習

2.1 feature bagging

畫圖均採用前兩個維度的數據,因此,有的圖,可能有的奇怪

2.1.1 Generate data

在這裏插入圖片描述
在這裏插入圖片描述

2.1.2 breast cancer(10 abnormal)

提高基分類器的個數,可以提高測試集的精度,之前大概0.6左右,現在可以0.8,偶爾1.0(極端情況,測試集就一個異常值),但是再增高的話,精度反而降低了
在這裏插入圖片描述

在這裏插入圖片描述

在這裏插入圖片描述

n_estimators 從10到100,間隔10,roc,precision @ n,在訓練集和測試集上面的表現。每個estimator,做三次實驗,取平均值。發現取值爲30的時候是precision @ n最好的時候。這次結果錯誤的原因是,沒有控制train_test_split的random_state,控制好以後,結果大致是穩定的,n_estimator=100做了兩次,小數據集,受到random_state的應先還是比較大的,尤其是異常的個數很少的時候,受到n_estimator影響較小。
在這裏插入圖片描述
在這裏插入圖片描述

在這裏插入圖片描述

在這裏插入圖片描述

在這裏插入圖片描述

在這裏插入圖片描述

在這裏插入圖片描述

2.1.3 癲癇數據集

在這裏插入圖片描述
在這裏插入圖片描述

2.2 Isolation Forests

2.2.1 generate data

在這裏插入圖片描述
在這裏插入圖片描述

2.2.2 breast cancer(10 abnormal)

在這裏插入圖片描述

在這裏插入圖片描述

2.2.3癲癇數據集

n_estimators影響很小,從100-1000間隔100
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述


2.3 思考題:feature bagging爲什麼可以降低方差?

因爲變量之間具備相關性,不是完全獨立的
爲什麼說bagging是減少variance,而boosting是減少bias? - 過擬合的回答 - 知乎

2.4 思考題:feature bagging存在哪些缺陷,有什麼可以優化的idea?

超高維度的話,有些維度,也可能是一直不被選中的;
從d/2到d-1之間不再是隨機的了,採用二分法進行

評估的算法,沒有規定。
可以使用不同類型的算法,也可以針對數據集,採取某些算法

3.附件

特徵選擇原文(英文)
孤立森林原文(英文)
思維導圖.xmind
feature bagging jupyter 代碼
iForest jupyter 代碼



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章