一些知識點的初步理解_7(隨機森林,ing...)


 

  在機器學習中,隨機森林由許多的決策樹組成,因為這些決策樹的形成采用了隨機的方法,因此也叫做隨機決策樹。隨機森林中的樹之間是沒有關聯的。當測試數據進入隨機森林時,其實就是讓每一顆決策樹進行分類,最后取所有決策樹中分類結果最多的那類為最終的結果。因此隨機森林是一個包含多個決策樹的分類器,並且其輸出的類別是由個別樹輸出的類別的眾數而定。隨機森林可以既可以處理屬性為離散值的量,比如ID3算法,也可以處理屬性為連續值的量,比如C4.5算法。另外,隨機森林還可以用來進行無監督學習聚類和異常點檢測。

    隨機森林由決策樹組成,決策樹實際上是將空間用超平面進行划分的一種方法,每次分割的時候,都將當前的空間一分為二,比如說下面的決策樹(其屬性的值都是連續的實數):

  

  將空間划分為成的樣子為:

  

  隨機深林的優點:比較適合做多分類問題;訓練和預測速度快;對訓練數據的容錯能力,是一種有效地估計缺失數據的一種方法,當數據集中有大比例的數據缺失時仍然可以保持精度不變;能夠有效地處理大的數據集;可以處理沒有刪減的成千上萬的變量;能夠在分類的過程中可以生成一個泛化誤差的內部無偏估計;能夠檢測到特征之間的相互影響以及重要性程度;不過出現過度擬合;實現簡單容易並行化。

 

  下面是具體決策樹的生成過程:

  

  其中關於信息增益這里就不作具體的介紹,反正信息增益越大,就說明那個屬性相對來說越重要。流程圖中的identical values 可以理解為是分類值,離散值,就是它本身不具備數值的意義,比如說顏色分為紅,綠,藍等,是人為給它標定的一個離散值而已。流程圖中的real values可以理解為連續的實數,也就是說屬性本身是具有數值的,比如說物體的長度,這就是一個real value,在進行這種連續值屬性構造決策數時,需要按照屬性值的范圍進行生成子節點。

 

  當可以生成好決策樹后,就比較容易生成隨機森林了。下面是隨機森林的構造過程:

  1. 假如有N個樣本,則有放回的隨機選擇N個樣本(每次隨機選擇一個樣本,然后返回繼續選擇)。這選擇好了的N個樣本用來訓練一個決策樹,作為決策樹根節點處的樣本。

  2. 當每個樣本有M個屬性時,在決策樹的每個節點需要分裂時,隨機從這M個屬性中選取出m個屬性,滿足條件m << M。然后從這m個屬性中采用某種策略(比如說信息增益)來選擇1個屬性作為該節點的分裂屬性。

  3. 決策樹形成過程中每個節點都要按照步驟2來分裂(很容易理解,如果下一次該節點選出來的那一個屬性是剛剛其父節點分裂時用過的屬性,則該節點已經達到了葉子節點,無須繼續分裂了)。一直到不能夠再分裂為止。注意整個決策樹形成過程中沒有進行剪枝。

  4. 按照步驟1~3建立大量的決策樹,這樣就構成了隨機森林了。

  從上面的步驟可以看出,隨機森林的隨機性體現在每顆數的訓練樣本是隨機的,樹中每個節點的分類屬性也是隨機選擇的。有了這2個隨機的保證,隨機森林就不會產生過擬合的現象了。

 

  隨機森林有2個參數需要人為控制,一個是森林中樹的數量,一般建議取很大。另一個是m的大小,推薦m的值為M的均方根。

 

  參考資料:

      決策樹模型組合之隨機森林與GBDT

     random forest

     http://en.wikipedia.org/wiki/Random_forest

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM