隨機森林演算法原理是:1、隨機森林演算法是對Bagging演算法進行了改進;2、隨機森林使用了CART決策樹作為弱學習器;3、輸入為樣本集,弱分類器迭代次數T;4、輸出為最終的強分類器【f(x)】。
隨機森林演算法原理是:
#1. 隨機森林演算法
RF(Random Forest)演算法是對Bagging演算法進行了改進。
首先,RF使用了CART決策樹作為弱學習器,這讓我們想到梯度提升樹GBDT。
第二,在使用決策樹的基礎上,RF對決策樹的建立做了改進,對於普通的決策樹,我們會在節點上所有的n個樣本特徵中選擇一個最優的特徵來做決策樹的左右子樹劃分,但是RF通過的隨機選擇節點上的一部分樣本特徵,這個數字小於n,假設為nsub,然後在這些隨機選擇的nsub(小於n)個樣本特徵中,選擇一個最優的特徵來做決策樹的左右子樹劃分。這樣進一步增強了模型的泛化能力。
除了上面兩點,RF和普通的bagging演算法沒什麼不同,以下簡單總結下RF的演算法。
輸入為樣本集,弱分類器迭代次數T。
輸出為最終的強分類器f(x)
# (1)對於t = 1,2,3,... ,T;
對訓練集進行第t次取樣,共採集m次,得到包含m個樣本的採樣集Dt
用採樣集Dt訓練第t個決策樹模型Gt (x),在訓練決策樹模型的節點的時候,在節點上所有的樣本特徵中選擇一部分樣本特徵,在這些隨機選擇的部分樣本特徵中選擇一個最優的特徵來做決策樹的左右子樹劃分。
(2)如果是分類演算法預測,則T個弱學習器投出最多票數的類別或類別之一為最終類別。如果是迴歸演算法,T個弱學習器得到的迴歸結果進行算術平均得到的值為最終的模型輸出。
2. 隨機森林的推廣
# RF不僅用於分類問題,還可以用於特徵轉換,異常點檢測等。
2.1 extra trees
extra trees是RF的變種,原理幾乎與RF一模一樣,僅有的區別:
(1)對於每個決策樹的訓練, RF採用的是隨機採樣bootstrap來選擇採樣集作為每個決策樹的訓練集,而extra trees一般不採用隨機採樣,即每個決策樹採用的原始訓練集。
(2)在選定了劃分特徵後,RF的決策樹會基於基尼係數,均方差之類的原則,選擇一個最優的特徵劃分點,這和傳統的決策樹相同。但是extra trees比較的激進,他會隨機的選擇一個特徵值來劃分決策樹。
2.2 Totally Random Trees Embedding
Totally Random Trees Embedding(以下簡稱 TRTE)是一種非監督學習的資料轉換方法。它將低維的資料集映射到高維,從而讓映射到高維的資料更好的運用於分類迴歸模型。我們知道,在支援向量機中運用核方法將低維的資料集映射到高維,此處TRTE提供了另一種方法。
TRTE在資料轉換的過程中也使用了類似RF的方法,建立T個決策樹來擬合資料。當決策樹建立完畢後,資料集裡的每個資料在T個決策樹中葉子節點的位置也定下來了。例如我們有3個決策樹,每個決策樹有5個葉子節點,某個資料特徵x劃分到第一個決策樹的第2個葉子節點,第二個決策樹的第3個葉子節點,第三個決策樹的第5個葉子節點。則x映射後的特徵編碼為(0,1,0,0,0, 0,0,1,0,0, 0,0,0,0,1),且有15維度的高維度特性。這裡特徵維度之間加上空格是為了強調三個決策樹各自的子編碼。
映射到高維度特徵後,可以繼續使用監督學習的各種分類回歸演算法。
3. 隨機森林小結
RF的演算法原理也終於講完了,作為一個可以高度並行化的演算法,RF在大數據時候大有可為。
RF的主要優點有:
1) 訓練可以高度並行化,對於大數據時代的大樣本訓練速度有優勢。個人覺得這是的最主要的優點。
2) 由於可以隨機選擇決策樹節點劃分特徵,這樣在樣本特徵維度很高的時候,仍然能高效的訓練模型。
3) 在訓練後,可以給出各個特徵對於輸出的重要性
4) 由於採用了隨機取樣,訓練出的模型的方差小,泛化能力強。
5) 相對於Boosting系列的Adaboost和GBDT, RF實作比較簡單。
6) 對部分特徵缺失不敏感。
RF的主要缺點有:
1)在某些雜訊比較大的樣本集上,RF模型容易陷入過度擬合。
2) 取值劃分比較多的特徵容易對RF的決策產生更大的影響,從而影響擬合的模型的效果。
以上是隨機森林演算法原理是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!