随機森林相對于Adaboost或者是GBDT等內建學習算法來說,是比較簡單易懂的,思想也很自然.要是上面列出的基礎知識心裡有數之後,就非常容易的了解随機森林了.
一.随機森林算法
先用比較簡單的語言描述一下随機森林算法,注意和bagging思路的對比哦.
随機森林在bagging的基礎上做了一些修改,大緻的算法是:
1.從樣本集中随機采樣選擇n個樣本;
2.從所有屬性中随機選擇k個特征,選擇最佳分割特征作為節點建立CART決策樹;
3.重複上面兩步m次,那麼就建立了m棵決策樹;
4.這m個CART形成随機森林,通過投票表決,決定資料屬于哪一類.
非常非常簡單的思路,看完之後應該對于随機森林有了一個感性的認識.這裡再詳細補充一些:
首先,你會看到,随機森林使用的基本分類器(弱分類器)是CART(要是熟悉CART的話,基本上随機森林是秒懂的).
同時,可以發現,相對于傳統的CART,這裡并沒有選擇全部的特征,而是通過随機選擇特征的方式建立CART.
當一次性選擇全部特征的時候,這時的CART和傳統的CART并沒有什麼差別.
但是要是随機選擇特征的數量小于所有特征的數量的時候,随機森林模型的泛化能力會提高.随機選擇的特征數量越小,模型越健壯.模型的方差會減小.但是偏差會變大 是以在實踐中常常通過交叉驗證,選擇一個合适的随機特征選擇數量.
再次詳細的總結一下随機森林算法:
輸入樣本

:,弱分類器疊代次數T
輸出:為最終強分類器
對于
:
(1)對訓練集進行第t次随機采樣,共采集n次,得到包含n個樣本的采樣集
(2)用采樣集
訓練第t個弱學習器
如果是分類算法預測,則T個弱學習器投出最多票數的類别或者類别之一為最終類别。
如果是回歸算法,T個弱學習器得到的回歸結果進行算術平均得到的值為最終的模型輸出。
二.優缺點分析
優點:
1.由于采用了随機采樣,訓練出的模型的方差小,泛化能力強。同時特征也是随機選擇,是以對于高次元資料依然能夠處理.
2.思路和實作都比較簡單.