【機器學習】孤立森林

點擊上方藍色字體,關注AI小白入門

跟着博主的腳步,每天進步一點點

本文介紹了一種基於樹集成的異常檢測方法,其核心思想是“異常點是容易被孤立的離羣點”。首先介紹了孤立森林算法的設計思路。然後介紹了孤立森林算法的特點和適用場景。最後給出了sklearn中孤立森林算法的幾個重要參數。

作者 | 文傑

編輯 | yuquanle

孤立森林

孤立森林(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 :建樹的過程描述輸出

The End

方便交流學習,備註:暱稱-學校or公司-方向,進入DL&NLP交流羣。

記得備註呦

【推薦閱讀】

初學者|NLP相關任務簡介

【科研】自然語言理解難在哪兒?

自然語言處理中注意力機制綜述

新年送福氣|您有一份NLP大禮包待領取

“達觀杯”文本智能處理挑戰賽,季軍帶你飛

【機器學習】一文讀懂線性迴歸、嶺迴歸和Lasso迴歸

長按二維碼關注
AI小白入門

ID:StudyForAI

學習AI學習ai(愛)

期待與您的相遇~

你點的每個在看,我都認真當成了喜歡

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