隨機森林的算法思想

本章涉及到的知識點清單:

1、集成學習

2、bagging模式

3、隨機森林的思想

4、CART算法

5、分類樹

6、回歸樹

7、數(shù)據(jù)樣本和feature的隨機采樣

8、決策樹節(jié)點的完全二分裂

9、隨機森林的構造步驟

10、案例一:隨機森林處理分類

11、案例二:隨機森林處理回歸

12、隨機森林的優(yōu)點和缺點

一、集成學習

集成學習通過訓練若干個弱學習器,然后將各個若學習器結果匯總,通過一定的結合策略計算最終結果,從而形成一個強學習器,即

集成學習

每個單體學習器集成的算法是一個弱分類器,通常這些弱學習器集成的算法分為兩類:

(1)同質:所有弱學習器集成的算法屬于同種類型,比如決策樹集成

(2)異質:不同弱學習器集成的算法屬于不同類型

用的比較多的是同質學習器,而同質學習器按照單體學習器之間是否存在依賴關系可以分為兩類:

(1)如果單體學習器之間存在強依賴關系,則單體學習器需要串行生成,代表算法是boosting系列算法

(2)如果單體學習器之間不存在強依賴關系,則單體學習器可以并行生成,代表算法是bagging和隨機森林系列算法

目前,有三種常見的集成學習框架:bagging,boosting和stacking,隨機森林屬于bagging

二、bagging方法

bagging:從訓練集進行子抽樣,構成每個單體學習器需要的子數(shù)據(jù)集,最后對所有單體學習器預測的結果進行匯總決策,即

bagging模式

bagging有如下特點:

(1)從原始樣本集采取有放回式抽樣,抽樣的規(guī)模等于原始樣本集,則一些樣本可能會被多次重復抽到,而一些樣本可能不會被抽到

(2)采用均勻抽樣,即每個樣本的被抽取的權重相等

(3)一個子訓練集得到一個弱學習器,則K個子訓練集對應K個弱學習器

(4)所有弱學習器的預測結果一樣重要(權重相等)

(5)各個弱學習器之間互相獨立,即可并行生成若干弱學習器

(6)對于分類問題,將K個弱學習器的預測結果采取投票策略;對于回歸問題,將K個弱學習器的預測結果采取均值策略

三、隨機森林的思想

隨機森林是基于集成學習的思想,將多顆樹集成在一起的算法,它的基本單元是決策樹,且這些決策樹之間彼此獨立沒有關聯(lián)

隨機森林包含如下思想:

(1)數(shù)據(jù)樣本的隨機選取

(2)決策樹的構造

(3)待選feature的隨機選取

(4)森林的預測策略

四、CART算法

隨機森林的單元弱學習器是決策樹,決策樹分類兩類:分類樹和回歸樹

分類樹輸出的是預測樣本的類別,回歸樹輸出的是預測樣本的數(shù)值,而CART分裂算法可以構建分類樹,也可構建回歸樹

CART算法的流程為:

(1)先用不同的feature和分割值嘗試分裂出不同節(jié)點

(2)對于非葉子節(jié)點,采取二分策略分割當前數(shù)據(jù),

(3)采用不同的評分函數(shù)來量化當前分裂的效果,選取分數(shù)最高的feature來完成節(jié)點的真分裂

(4)直到分裂出葉子節(jié)點

CART算法有如下特點:

1)CART算法對每個非葉子節(jié)點的判斷條件為:單feature的單個分割值

(2)CART算法對每個非葉子節(jié)點的判斷邏輯為:只判斷當前feature是否滿足當前的是非條件,答案只能為“是”或者“否”,則即時一個feature有多個取值,也只能把當前數(shù)據(jù)劃分為兩部分

(3)CART算法對每個非葉子節(jié)點的切割邏輯為:二分遞歸切割策略,?把當前樣本劃分為兩個子樣本,使得生成的非葉子節(jié)點都有兩個分支,因此CART算法構成的是一個結構簡潔的二叉樹

(4)CART算法的評分函數(shù)為:

a、回歸問題:總方差評分

b、分類問題:基尼系數(shù)評分

CART分裂算法對比ID3和C4.5算法如下

不同分裂算法的比較

五、分類樹

對于分類樹,我們使用基尼系數(shù)來為節(jié)點的分裂效果評分

設:樣本集D總共有K個類別,C_{k}表示屬于第k類的樣本子集,則D的基尼系數(shù)表達為:

Gini(D) = 1 - \sum_{k=1}^K (\frac{|C_{k}|}{|D|})^{2}

從基尼系數(shù)的表達式可知,其反映了樣本中類別不一致的概率,即樣本的不純度。顯然基尼系數(shù)越小,樣本的不純度就越低

設集合A表示D中的所有feature,任意feature為:a\epsilon A,a的特征值為:a=\{ a_{1}...a_{v}  \}

定義a的切割點集合S為:S=\{ s_{1}...s_{v-1}   \}=\{ \frac{a_{1} + a_{2}}{2} ... \frac{a_{v-1} + a_{v}}{2} \}

則根據(jù)特征a的某個切割點s,由CART算法將D二分為兩部分子集D1和D2,該邏輯的基尼系數(shù)評分表達為:

Gini(D,a) = \frac{|D1|}{|D|}  Gini(D1) +  \frac{|D2|}{|D|}  Gini(D2)

其中 \frac{|D1|}{|D|} \frac{|D2|}{|D|}分別表示D1和D2的權重

則分類樹分裂的目標為:

用基尼系數(shù)評分,找出使得當前節(jié)點分裂效果最好的特征a*和分割點s*

翻譯為數(shù)學語言即:a^{*}, s^{*} = \min_{a\varepsilon A,s\varepsilon S} \{ Gini(D,a) \}

六、回歸樹

對于分類樹,我們使用總方差R2來為節(jié)點的分裂效果評分

與上述分類樹同理,根據(jù)特征a的某個切割點s,由CART算法將D二分為兩部分子集D1和D2,該邏輯的R2評分表達為:

R^{2} = var(D1)|D1| + var(D2)|D2|

其中var表示樣本的方差

則回歸樹分裂的目標為:

用R2總方差評分,找出使得當前節(jié)點分裂效果最好的特征a*和分割點s*

翻譯為數(shù)學語言即:a^{*}, s^{*} = \min_{a\varepsilon A,s\varepsilon S} \{ R2(D,a) \}

七、數(shù)據(jù)樣本和feature的隨機采樣(bootstrap)

隨機森林對輸入的樣本集分別進行行、列的隨機采樣

行采樣:構造隨機子樣本,對數(shù)量為N的樣本,進行有放回式抽樣,得到可能會隨機重復的數(shù)量為N的子樣本

列采樣:構造隨機feature,對數(shù)量為M的特征,進行無放回式抽樣,得到m<M個隨機feature,一般取m=\sqrt{M}

有放回式抽樣樣本
無放回式抽樣特征

數(shù)據(jù)(行)采樣和feature(列)采樣的使用場景為:

(1)數(shù)據(jù)采樣:構造決策樹之前

(2)feature采樣:構造決策樹的遞歸過程中,即每次非葉子節(jié)點的分裂

八、決策樹節(jié)點的完全二分裂

在遞歸構造決策樹的過程中,每個樹分支(非葉子節(jié)點)都要按照單個feature的分割點完成二分裂,直到該節(jié)點無法繼續(xù)分裂為止

停止繼續(xù)分裂的條件:在遞歸構造決策樹的過程中,當前樣本的類別均一致

九、隨機森林的構造步驟

通過以上知識點,我們可以歸納出隨機森林的構造步驟:

(1)采用有放回式隨機抽樣,抽選出K組訓練子集

(2)由每組訓練子集遞歸構造K顆決策樹

(3)對于決策樹的每一個節(jié)點,采用無放回式隨機抽樣feature全集,抽選出m個待選feature

(4)嘗試用所有待選feature來分裂節(jié)點,根據(jù)Gini或者R2評分函數(shù)給每次分裂效果量化評分,選擇出最佳的feature和切割點值

(5)決策樹根據(jù)發(fā)現(xiàn)的最佳feature和切割點值分裂節(jié)點,直到停止分裂

(6)每顆決策樹都都不用采用剪枝技術,每棵樹都能完整生長

(7)交叉驗證模型的預測能力,對于分類問題,采用投票策略對K顆決策樹的預測結果統(tǒng)計;對于回歸任務,采用K顆決策樹的預測結果求均值

十、案例一:隨機森林處理分類問題

我們采用bagging算法和Gini系數(shù)來構建隨機森林處理分類問題:

基尼系數(shù)
隨機采樣樣本和特征
尋找節(jié)點的最佳分裂方式
遞歸建立決策樹
交叉驗證分類模型
模型預測分類結果

十一、案例二:隨機森林處理回歸問題

同理,我們用bagging算法和R2來構建隨機森林處理回歸問題:

計算總方差R2
葉子節(jié)點取均值
尋找節(jié)點的最佳分裂方式??
遞歸建立決策樹
交叉驗證回歸模型
模型預測回歸結果

十二、隨機森林的優(yōu)點和缺點

最后我們總結一下隨機森林模型的優(yōu)缺點

隨機森林模型的優(yōu)點有:

(1)隨機森林模型能解決分類與回歸兩種類型的問題,并在這兩個方面都有相當好的估計表現(xiàn)

(2)子數(shù)據(jù)集的構造采用有放回式抽樣,使得抽樣數(shù)據(jù)集有大約1/3的數(shù)據(jù)沒有被抽中去參加決策樹的構造,所以相對不容易出現(xiàn)over-fitting

(3)使樹節(jié)點每次分裂選擇的最佳feature和分割值,都由無放回式抽樣提供隨機feature候選列表,則訓練出的模型方差較小,泛化能力強

(4)模型訓練速度快,各弱學習器容易做成并行化方法

PS:簡單證明上述第(2)點

設任意一個樣本集采用有放回式抽樣n次,每次抽取互相獨立,即每個樣本被抽中的概率都為\frac{1}{n} ,則某個樣本在這n次都沒有被抽中的概率為P,翻譯為數(shù)學語言,即:

P = (1 - \frac{1}{n})^{n}

上式兩邊取對數(shù)得:\ln P =  n  \ln (1 - \frac{1}{n})

t = \frac{1}{n} ,則:\ln P =  \frac{\ln (1 -t)}{t}

化簡得: P = e^{ \frac{\ln (1 -t)}{t}} = e^{\lim_{t\rightarrow 0} \frac {\ln (1 -t)}{t}}

上式e的冪部分取極限屬于\frac{0}{0} 型,使用洛必達法則得:\lim_{t\rightarrow 0} \frac {\ln (1 -t)}{t} =\lim_{t\rightarrow 0} \frac {-1}{1-t} = -1

帶入解出P:P = \frac{1}{e} \approx 36.7 \%

隨機森林模型的缺點有:

(1)在某些噪音比較大的樣本集上,模型容易陷入過擬合

(2)取值劃分比較多的特征容易對模型的決策產生更大的影響,從而影響擬合的模型的效果

案例代碼見:隨機森林的算法思想

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 決策樹理論在決策樹理論中,有這樣一句話,“用較少的東西,照樣可以做很好的事情。越是小的決策樹,越優(yōu)于大的決策樹”。...
    制杖灶灶閱讀 6,056評論 0 25
  • 1.隨機森林使用背景 1.1隨機森林定義 隨機森林是一種比較新的機器學習模型。經(jīng)典的機器學習模型是神經(jīng)網(wǎng)絡,有半個...
    山的那邊是什么_閱讀 28,110評論 0 28
  • 決策樹 - 基于CART的決策樹 CART分類回歸樹(classification and regression ...
    NullBugs閱讀 3,301評論 0 51
  • 轉載自:http://www.zilhua.com/629.html 1. 隨機森林使用背景 1.1 隨機森林定義...
    吃番茄的土撥鼠閱讀 1,485評論 0 13
  • 寧古塔作家網(wǎng) 原創(chuàng): 寧古塔作家 寧古塔作家網(wǎng) 4月26日 秋 日 偶 得(外二首) 作者 / 孫曉斌 西風起, ...
    行者_f40a閱讀 244評論 0 1

友情鏈接更多精彩內容