Random Foresthtml
採用bagging思想,即利用bootstrap抽樣,獲得若干個數據集,每一個數據集都訓練一顆樹。算法
構建決策樹時,每次分類節點時,並不是考慮所有特徵,而是從特徵候選集中選取若干個特徵用於計算。弱特徵共有p個,通常選取m=sqrt(p)個特徵。當可選特徵數目很大時,選取一個較小的m值,有助於決策樹的構建。bootstrap
當樹的數量足夠多時,RF不會產生過擬合,提升樹的數量可以使得錯誤率下降。dom
GBDT函數
採用Boosting思想(注意是Boosting,不是Boostrap)url
不採用Boostrap抽樣的方法(RF採用了),每次迭代過程都會使用所有數據集(會有一些變化,即採用的是上一輪訓練後獲得的預測結果與真實結果之間的殘差(殘差是由損失函數計算獲得的))。spa
GBDT的每棵樹是按順序生成的,每棵樹生成時都須要利用以前一棵樹留下的信息(RF的樹是並行生成的)。rest
GBDT中樹的數目過多會引發過擬合(RF不會)。htm
構架樹時,深度爲1時一般效果很好(深度爲1的決策樹稱爲決策樁decision stumps)。blog
下圖是兩種算法的對比