2017-09-13 65 views
0

根據我的理解,RF隨機選擇特徵,因此很難過度配合。但是,在sklearn中,漸變增強還提供了max_features選項,可以防止過度配合。那麼,爲什麼會有人使用隨機森林? 任何人都可以解釋什麼時候使用基於給定數據的漸變增強vs隨機森林?漸變增強vs隨機森林

任何幫助,高度讚賞。

+2

你的問題有點像說「汽車駛下道路,但是船隻在水中快速行駛,爲什麼有人會用船去一條路?」當然,隨機森林具有某些適合的數據問題。這是一種監督學習方法,當你有很多功能並且希望讓每個人都可能在模型中扮演角色而不必擔心偏見時,這種方法是很好的。 –

+1

@TimBiegeleisen不同之處在於,很容易識別何時使用船隻以及何時使用汽車。並不總是清楚何時使用隨機森林與何時使用梯度提升。有幾個複雜的梯度增強庫(lightgbm,xgboost和catboost)可能會勝過隨機森林,以解決大多數類型的問題。識別指示隨機森林何時可能表現更好的問題特徵是一個很好的問題。我當然沒有答案。 – ftiaronsem

+0

我投票結束這個問題作爲題外話題,因爲它涉及到[機器學習,而不是軟件開發](// meta.stackoverflow.com/q/291009/1233251)。您可以在[交叉驗證](// stats.stackexchange.com)或[DataScience.SE](// datascience.stackexchange.com)上提出這些問題。 –

回答

0

類似的問題問在Quora上: https://www.quora.com/How-do-random-forests-and-boosted-decision-trees-compare

我同意作者的鏈接,隨機森林是更強大的 - 他們並不需要太多的具體問題調整取得了良好的效果。除此之外,根據我自己的經驗還有其他一些項目:

  • 隨機森林可以在小數據集上執行得更好;梯度提升樹木數據飢渴
  • 隨機森林更容易解釋和理解。這也許看起來很傻,但如果需要由技術人員少
0

根據我個人的經驗被用於能帶來更好的採納模型,隨機森林可能是一個更好的選擇,當..

  1. 您在小數據集上訓練模型。
  2. 您的數據集有幾個功能可以學習。
  3. 您的數據集的Y標誌計數較低,或者您嘗試預測發生或極少發生機會的情況較少。

在這些情況下,像XGBoost和輕GBM可以過度擬合梯度推進算法(儘管它們的參數被調整),同時像隨機森林或甚Logistic迴歸簡單的算法可以執行更好。爲了說明,對於XGboost和Ligh GBM,來自測試集的ROC AUC可能與隨機森林相比更高,但與來自火車集的ROC AUC顯示出太高的差異。儘管Gradient Boosting算法具有很強的預測性,但在某些情況下,隨機森林利用乞討方法(隨機選擇)的模型穩定性優於XGBoost和Light GBM。但是,漸變增強算法在一般情況下表現更好。