天天看點

進階算法梳理之随機森林

本系列将重點續寫內建算法,其中包括随機森林(RF)—>GBDT—>XGB—>LightGBM,本文将重點介紹随機森林算法(RF)。

1. 什麼是內建學習

內建學習,有個說法叫“三個臭皮匠,頂一個諸葛亮”,如下圖所示,簡單來說就是對于訓練集資料,我們通過訓練若幹個個體學習器,通過一定的結合政策,就可以最終形成一個強學習器,以達到博采衆長的目的。

進階算法梳理之随機森林

其中個體學習期的選擇方法要給予,低方差、高偏差的原則。

2、什麼是個體學習器

個體學習器分為同質個體學習器和異質個體學習器。

同質個體學習器:個體分類器屬于同種,比如決策樹分類器、神經網絡分類器

異質個體學習器:個體分類器不屬于同種,比如一個分類問題,分類器同時用到了SVM、LR、樸素貝葉斯等等,然後利用某種結合政策形成最終的強分類器

2.1、同質個體學習器

是否存在依賴關系可以分為兩類

強依賴關系(串行):Boost算法系列(AdaBoost、GDBT、XgBoost、GBM)

不存在強依賴關系(并行):Bagging算法系列(随機森林)

3、Boosting算法

進階算法梳理之随機森林

如上圖所示,Boosting算法的工作原理,簡要叙述就是,對于訓練資料集,先設定樣本初始權重,一般利用均值作為初值。然後訓練個體學習器1,經過個體學習器1學習後的學習誤差率更新樣本權重,原則就是加大被分錯樣本的權重,減小分類正确樣本的權重。然後在訓練個體學習期2,以此類推,得到個體學習器T。最後将這T個個體學習期以某種結合政策得到最終的強學習器。

4、Bagging算法

進階算法梳理之随機森林

過程如上圖所示,對m個樣本進行又放回抽樣,每抽樣一次,就訓練一次個體學習器(弱學習器),然後對T個個體學習期進行某種結合政策形成強學習器。

5、結合政策

結合政策一般分為三種方法

1、平均法:針對回歸問題

2、投票法:針對分類問題

3、學習法:代表方法stacking.

5.1、平均法

假定有T個弱分類器{h1,h2,…hT}

對于數值類的回歸預測問題,通常使用的結合政策是平均法。最簡單的就是算數平均,最終結果為

H ( x ) = 1 T ∑ 1 T h i ( x ) H\left ( x \right )=\frac{1}{T}\sum_{1}^{T}h_{i}\left ( x \right ) H(x)=T1​1∑T​hi​(x)

如果每個個體學習器有一個權重w,則最終結果為

H ( x ) = ∑ 1 T ω i h i ( x ) H\left ( x \right )=\sum_{1}^{T}\omega _{i}h_{i}\left ( x\right ) H(x)=1∑T​ωi​hi​(x)

其中 ω i \omega _{i} ωi​是個體學習器 hi 的權重。

5.2、投票法

相對多數投票法:少數服從多數

絕對多數投票法:票過半數

權重投票法:同權重平均法一樣

5.3、學習法

代表方法是stacking,當使用stacking的結合政策時,我們将訓練集弱學習器的學習結果作為輸入,将訓練集的輸出作為輸出,重新訓練一個學習器來得到最終結果。

在這種情況下,我們将弱學習器稱為初級學習器,将用于結合的學習器稱為次級學習器。對于測試集,我們首先用初級學習器預測一次,得到次級學習器的輸入樣本,再用次級學習器預測一次,得到最終的預測結果。

6、随機森林
進階算法梳理之随機森林

6.1、随機森林建立方法

生成方法:

1、從樣本集中通過重采用的方式産生n個樣本

2、利用這n個樣本訓練時,随機選擇部分屬性,在這些部分屬性中選擇一個最優特征進行劃分。

3、重複抽樣m次,産生m可決策樹

4、采用投票(分類問題)/平均(回歸問題)的方式進行預測

随機性展現在兩點:1、樣本選擇的随機性。2、特征選擇的随機性

6.2、随機森林的特性

進階算法梳理之随機森林

優點:

進階算法梳理之随機森林

缺點:

進階算法梳理之随機森林

随機森林是一種內建學習+決策樹的分類模型,它可以利用內建的思想(投票選擇的政策)來提升單顆決策樹的分類性能(通俗來講就是“三個臭皮匠,頂一個諸葛亮”)。

集內建學習和決策樹于一身,随機森林算法具有衆多的優點,其中最為重要的就是在随機森林算法中每棵樹都盡最大程度的生長,并且沒有剪枝過程。

随機森林引入了兩個随機性——随機選擇樣本(bootstrap sample)和随機選擇特征進行訓練。兩個随機性的引入對随機森林的分類性能至關重要。由于它們的引入,使得随機森林不容易陷入過拟合,并且具有很好得抗噪能力(比如:對預設值不敏感)。

實戰

不均衡資料處理方法

随機森林

繼續閱讀