樹模型-孤立森林
樹模型
1、決策樹 ID3,C4.5,CART
2、隨機森林RF
3、Adaboost
4、GBDT
5、XGboost
6、孤立森林(異常檢測)
六、孤立森林
孤立森林(Isolation Foreset)是基於樹(iTree)整合的快速異常檢測方法,其異常檢測的核心思想是“異常點是容易被孤立的離群點”。因此,孤立森林採用隨機特徵隨機閾值劃分生成多個樹,直到樹到達一定的高度或者直到每個葉子節點中只有一個點。那麼,那些離群點很容易被提前(即所在葉子節點的深度較淺)被劃分出來。由於每個樹都是由隨機取樣獨立生成的,所以樹之間具有一定的獨立性,多個樹的整合就是最終的孤立森林。
可以看出,按照離群點大概率為異常點的話,那麼d最有可能為異常點。
下面簡單介紹孤立森林的流程和細節:
1)從訓練集中隨機選擇(有放回和無放回)個樣本點構成子集,在個子集上構建樹
2)隨機選擇一個特徵,隨機選擇一個閾值(最大值與最小值之間)進行二分裂
3)遞迴2)建樹,直到樹到達一定的高度或者每個葉子節點中只有一個點。
4)個樹建好,根據個決策樹的平均深度來定義其異常的概率
a)統計每棵樹的BST路徑長度定義:
b)定義異常的概率為: 是在給定下的平均值, 其中的可以通過公式 來估計,是尤拉常數,其值為0.5772156649,為從根節點到葉子節點的路徑長度。 5)計算異常概率:
a)當,
b)當,
c)當,
從上面建樹的過程,可以看出孤立森林是針對連續值屬性的,二分裂二叉樹,當然離散值屬性我想也是可以的。
孤立森林的特點:
1)每棵樹隨機取樣獨立生成,所以孤立森林具有很好的處理大資料的能力和速度
2)通常樹的數量越多,演算法越穩定,樹的深度不易過深
3)孤立森林不適於特別高維的資料。因為子樹的構建每次只選一個特徵,容易受噪聲影響
sklearn中孤立森林的引數設定:
n_estimators :iTree的個數
max_samples :構建子樹的樣本數,整數為個數,小數為佔全集的比例
contamination :異常的閾值
max_features :構建每個子樹的特徵數,整數位個數,小數為佔全特徵的比例
bootstrap :取樣是有放回還是無放回
n_jobs :並行數
random_state :每次訓練的隨機性
verbose :建樹的過程描述輸出