機器學習實戰(11)—— 隨機森林原理部分
上一節我們講解了決策樹算法,今天我們來看看隨機森林算法。
隨機森林屬於集成學習(Ensemble Learning)中的 bagging 算法。在集成學習中,主要分爲 bagging 算法和 boosting 算法。我們先看看這兩種方法的特點和區別。
Bagging(套袋法)
Boosting(提升法)
Bootstraping: 名字來自成語 “pull up by your own bootstraps”,意思是依靠你自己的資源,稱爲自助法,它是一種有放回的抽樣方法。
這個奇怪的名字來源於文學作品 The Adventures of Baron Munchausen(吹牛大王歷險記),這個作品中的一個角色用提着自己鞋帶的方法把自己從湖底下提了上來。因此採用意譯的方式,叫做自助法。
Bagging(套袋法)
bagging 的算法過程如下:
從原始樣本集中使用 Bootstraping 方法隨機抽取 n 個訓練樣本,共進行 k 輪抽取,得到 k 個訓練集。(k 個訓練集之間相互獨立,元素可以有重複)
對於 k 個訓練集,我們訓練 k 個模型(這 k 個模型可以根據具體問題而定,比如決策樹,knn 等)
對於分類問題:由投票表決產生分類結果(所有模型的重要性相同)
Boosting(提升法)
boosting 的算法過程如下:
對於訓練集中的每個樣本建立權值 wi,表示對每個樣本的關注度。當某個樣本被誤分類的概率很高時,需要加大對該樣本的權值。
進行迭代的過程中,每一步迭代都是一個弱分類器。我們需要用某種策略將其組合,作爲最終模型。(例如 AdaBoost 給每個弱分類器一個權值,將其線性組合最爲最終分類器。誤差越小的弱分類器,權值越大)
Bagging,Boosting 的主要區別
樣本選擇上:Bagging 採用的是 Bootstrap 隨機有放回抽樣;而 Boosting 每一輪的訓練集是不變的,改變的只是每一個樣本的權重。
樣本權重:Bagging 使用的是均勻取樣,每個樣本權重相等;Boosting 根據錯誤率調整樣本權重,錯誤率越大的樣本權重越大。
預測函數:Bagging 所有的預測函數的權重相等;Boosting 中誤差越小的預測函數其權重越大。
並行計算:Bagging 各個預測函數可以並行生成;Boosting 各個預測函數必須按順序迭代生成。
Bagging + 決策樹 = 隨機森林
儘管決策樹有剪枝等方法,一棵樹的生成肯定還是不如多棵樹,因此就有了隨機森林,解決決策樹泛化能力弱的缺點。(可以理解成三個臭皮匠頂過諸葛亮)
而同一批數據,用同樣的算法只能產生一棵樹,這時 Bagging 策略可以幫助我們產生不同的數據集。
關於 bagging 的一個有必要提及的問題:bagging 的代價是不用單棵決策樹來做預測,具體哪個變量起到重要作用變得未知,所以 bagging 改進了預測準確率但損失瞭解釋性。
隨機森林的名稱中有兩個關鍵詞,一個是 “隨機”,一個就是 “森林”。
“森林” 我們很好理解,一棵叫做樹,那麼成百上千棵就可以叫做森林了,這樣的比喻還是很貼切的,其實這也是隨機森林的主要思想 —— 集成思想的體現。
“隨機” 的含義我們會在下邊部分講到。
隨機森林在 bagging 的基礎上更進一步:
1. 樣本的隨機:從樣本集中用 Bootstrap 隨機選取 n 個樣本
2. 特徵的隨機:從所有屬性中隨機選取 K 個屬性,選擇最佳分割屬性作爲節點建立 CART 決策樹(泛化的理解,這裏面也可以是其他類型的分類器,比如 SVM、Logistics)
3. 重複以上兩步 m 次,即建立了 m 棵 CART 決策樹
4. 這 m 個 CART 形成隨機森林,通過投票表決結果,決定數據屬於哪一類(投票機制有一票否決制、少數服從多數、加權多數)
隨機抽樣訓練集來訓練每顆樹
如果不進行隨機抽樣,每棵樹的訓練集都一樣,那麼最終訓練出的樹分類結果也是完全一樣的,這樣的話完全沒有 bagging 的必要,目的就是爲了確保樹之間是有區別的。
樹中每個節點的分裂屬性集合也是隨機選擇的。
在每個節點處,算法隨機選擇特徵的一個子集。
以上兩個隨機就是機器學習算法筆試面試中常問到的:隨機森林的兩個隨機是什麼?
隨機森林有很多優點:
1) 每棵樹都選擇部分樣本及部分特徵,一定程度避免過擬合;
2) 每棵樹隨機選擇樣本並隨機選擇特徵,使得具有很好的抗噪能力,性能穩定;
3) 能處理很高維度的數據,並且不用做特徵選擇;
4) 適合並行計算;
5) 實現比較簡單;
缺點:
1) 參數較複雜;
2) 模型訓練和預測都比較慢。
這就是隨機森林算法的原理,是不是很簡單呢~
本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源:https://mp.weixin.qq.com/s/WIkMDW2PRFYsp_aXHVFvtw