隨機森林(分類與回歸)


隨機森林(可用於分類回歸

 

隨機森林主要應用於回歸和分類。

隨機森林在運算量沒有顯著提高的前提下提高了預測精度。

 

1、簡介

隨機森林由多棵決策樹構成,且森林中的每一棵決策樹之間沒有關聯,模型的最終輸出由森林中的每一棵決策樹共同決定。

處理分類問題時對於測試樣本,森林中每棵決策樹會給出最終類別,最后綜合考慮森林內每一棵決策樹的輸出類別,以

投票方式來決定測試樣本的類別處理回歸問題時則以每棵決策樹輸出的均值為最終結果

 

2、隨機森林的隨機性

體現在兩個方面:

Ⅰ:樣本的隨機性,從訓練集中隨機抽取一定數量的樣本,作為每顆決策樹的根節點樣本;

Ⅱ:屬性的隨機性,在建立每顆決策樹時,隨機抽取一定數量的候選屬性,從中選擇最合適的屬性作為分裂節點。

 

3、隨機森林算法框架

 

 具體步驟:

(1)從訓練集中隨機抽取一定數量的樣本,作為每棵樹的根節點樣本;

(2)在建立決策樹時,隨機抽取一定數量的候選屬性,從中選擇最合適屬性作為分裂節點;(決策樹構造見《決策樹分類算法及python代碼實現案例》)

(3)建立好隨機森林以后,對於測試樣本,進入每一顆決策樹進行類型輸出或回歸輸出;若是分類問題,以投票的方式輸出最終類別,若是回歸問題,

    每一顆決策樹輸出的均值作為最終結果。

 

在建立每一棵決策樹的過程中,有兩點需要注意:采樣完全分裂

首先是兩個隨機采樣的過程,隨機森林對輸入的數據要進行行、列的采樣。對於行采樣,采用有放回的方式,也就是在采樣得到的樣本集合中,可能有重復的樣本。

假設輸入樣本為N個,那么采樣的樣本也為N個。這樣使得在訓練的時候,每一棵樹的輸入樣本都不是全部的樣本,使得相對不容易出現過擬合over-fitting。

然后進行列采樣,從M個feature中,選擇m個(m << M)。之后就是對采樣之后的數據使用完全分裂的方式建立出決策樹,這樣決策樹的某一個葉子節點要么是無

法繼續分裂的,要么里面的所有樣本的都是指向的同一個分類。

一般很多的決策樹算法都一個重要的步驟 – 剪枝,但是這里不這樣干,由於之前的兩個隨機采樣的過程保證了隨機性,所以就算不剪枝,也不會出現over-fitting。

每一棵決策樹就是一個精通於某一個窄領域的專家(因為我們從M個feature中選擇m讓每一棵決策樹進行學習),這樣在隨機森林中就有了很多個精通不同領域的專家,

對一個新的問題(新的輸入數據),可以用不同的角度去看待它,最終由各個專家,投票得到結果。

 

4、可優化的參數

決策樹算法中可優化的參數有:最小葉節點樣本數、剪枝方式等。

隨機森林中可優化的參數有:森林中決策樹的棵數。

 


免責聲明!

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



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