隨機森林模型(RF)

2022-09-13 09:24:12 字數 2087 閱讀 9931

隨機森林屬於整合學習(ensemble learning)中的bagging演算法。bagging (bootstrap aggregating)

bagging即套袋法,其演算法過程如下:

a)從原始樣本集中抽取訓練集。每輪從原始樣本集中使用bootstraping的方法抽取n個訓練樣本(有放回的抽樣)。共進行k輪抽取,得到k個訓練集。(k個訓練集之間是相互獨立的)

b)每次使用乙個訓練集得到乙個模型,k個訓練集共得到k個模型。

c)對分類問題:將上步得到的k個模型採用投票的方式得到分類結果;對回歸問題,計算上述模型的均值作為最後的結果。

random forest(rf)=bagging + fully-grown cart decision tree

random forest的random體現在bagging,forest是因為採用的cart樹模型作為基學習器。決策樹訓練速度很快,但容易過擬合,即有很高的variance,而bagging採取多個模型投票或者平均,可以降低variance,隨機森林的方法就是用bagging的方法把decesion tree合起來。

隨機森立中的每棵樹的按照如下規則生成:

1)如果訓練集大小為n,對於每棵樹而言,隨機且有放回地從訓練集中的抽取n個訓練樣本(這種取樣方式稱為bootstrap sample方法),作為該樹的訓練集;

2)如果每個樣本的特徵維度為m,指定乙個常數m隨機森林的特色體現在oob估計以及特徵選擇上,接下來介紹rf的這兩個重要特性

我們知道,在構建每棵樹時,我們對訓練集使用了不同的bootstrap sample(隨機且有放回地抽取)。所以對於每棵樹而言(假設對於第k棵樹),大約有1/3的訓練例項沒有參與第k棵樹的生成,它們稱為第k棵樹的oob樣本。

為什麼是1/3呢,證明如下:

但我們不需要用oob樣本來驗證每個基學習器,用oob樣本來驗證bagging後的模型才更有意義。

oob estimate的過程如下:

1)對每個樣本,計算它作為oob樣本的樹對它的分類情況(約1/3的樹);

2)然後以簡單多數投票作為該樣本的分類結果;

3)最後用誤分個數佔樣本總數的比率(或者是誤差函式的值)作為隨機森林的oob誤分率。

由於採用了oob估計,rf不需要像傳統的機器學習演算法用計算量龐大的交叉驗證來模型的準確率,而且需要劃分訓練集和驗證集,只能用小部分的樣本集來訓練模型, rf可以用所有樣本集來訓練。

rf有乙個重要的優點就是,沒有必要對它進行交叉驗證或者用乙個獨立的測試集來獲得誤差的乙個無偏估計。它可以在內部進行評估,也就是說在生成的過程中就可以對誤差建立乙個無偏估計。

線性模型中的特徵選擇:每個特徵的樣本值做歸一化後,就可以用係數的絕對值大小來判別特徵的重要性,但是無法對線性不可分的樣本集做特徵選擇。

隨機森林中的特徵選擇:

基本想法:如果特徵i對模型是有利的,那麼將第i維特徵置換為隨機值,將會降低模型的效能。將某個特徵的值重新隨機排列,這樣的好處是不改變原始資料的分布。

將完整模型的效能減去置換第i維特徵後的模型,就得到了第i維特徵的重要性。

要評估置換第i維特徵後的模型效能,正常想法是要重新訓練並用驗證集來評估效能,但是隨機森林中我們可以用oob error來衡量模型效能,此處同樣可以引入oob error。即在oob驗證的時候替換樣本的值,從此時的gt的oob樣本中隨機選取乙個樣本的特徵i的值作為該樣本的特徵i的值

台大林軒田老師的《機器學習技法》

隨機森林RF

隨機森林的一般步驟 採用bagging的方法可以降低方差,但不能降低偏差 公式法分析bagging法模型的方差問題 假設子資料集變數的方差為,兩兩變數之間的相關性為 所以,bagging法的方差 由 4 式可得,bagging法的方差減小了 結論 bagging法的模型偏差與子模型的偏差接近,方差較...

隨機森林模型

模型構建思想 隨機取樣 隨機特徵 多棵決策樹 多數投票 分類 取平均值 回歸 隨機 體現在 1 特徵隨機 2 樣本隨機 優缺點 優點 1.並行 2.隨機性的引入,增加了多樣性,泛化能力非常強,抗雜訊能力強,對缺失值不敏感 3.可省略交叉驗證,因隨機取樣 4.並繼承決策樹的優點,包括 1 可得到特徵重...

隨機森林(RF)與GBDT的異同

相同點 好吧,其實相同點不太好說,如果非要說的話,那就是它們都是由多棵樹組成,最終結果由這多棵樹一起決定 其實中間的細節還是不一樣 1 都是由多棵樹組成 2 最終的結果都是由多棵樹一起決定 不同點 1 從整合學習來說,rf屬於的bagging 稍微有點改變,增加了列抽樣 而gbdt屬於boostin...