隨機森林與Adaboost兩者均歸屬於集成學習算法,隨機森林是Bagging方法,Adaboost是Boosting方法。
我們先來比較一下Boosting方法和Bagging方法的區別:
1.在樣本選擇上:
Boosting每一輪的訓練集是不變的,改變的只是每一個樣本的權重;
Bagging采用的是Bootstrap隨機有放回抽樣。
2.在樣本權重上:
Boosting根據錯誤率調整樣本權重,錯誤率越大的樣本權重越大;
Bagging使用的是均勻取樣,每個樣本權重相等。
3.在並行計算上:
Boosting各個預測函數必須按順序迭代生成;
Bagging各個預測函數可以並行生成。
4.在預測函數上:
Boosting中誤差越小的預測函數其權重越大;
Bagging所有的預測函數的權重相等。
然后我們再來比較隨機森林和Adaboost的區別:
相同之處:
二者都是要訓練很多棵決策樹;
二者都是bootsrap自助法選取樣本。
不同之處:
隨機森林在訓練每一棵樹的時候,隨機挑選了部分變量作為拆分變量,而不是所有的變量都去作為拆分變量。
Adaboost后面樹的訓練,其在變量抽樣選取的時候,對於上一棵樹分錯的樣本,抽中的概率會加大。
在預測新數據時:
Adaboost中所有的樹加權投票來決定因變量的預測值,每棵樹的權重和錯誤率有關;
隨機森林按照所有樹中少數服從多數樹的分類值來決定因變量的預測值。
Adaboost的優點:
1.adaboost是一種有很高精度的分類器;
2.可以使用各種方法構建子分類器,adaboost算法提供的是框架;
3.當使用簡單分類器時,計算出的結果是可以理解的,而且弱分類器構造極其簡單;
4.簡單,不用做特征篩選;
5.不用擔心overfitting。
隨機森林的優點:
2.它可以處理大量的輸入變量;
3.它可以在決定類別時,評估變量的重要性;
4.在建造森林時,它可以在內部對於一般化后的誤差產生不偏差的估計。
以上是這次的總結內容,歡迎指正與補充。