推薦一篇寫的很好的部落格:[machine learning & algorithm] 隨機森林(random forest).
隨機森林演算法是bagging整合框架下的一種演算法。它同時對訓練資料和特徵採用隨機抽樣的方式來構建更加多樣化的基模型。隨機森林具體的演算法步驟如下:
隨機抽樣訓練決策樹。假如有n個樣本,則有放回的隨機選擇n個樣本(每次隨機選擇乙個樣本,然後返回繼續選擇,也就是說可能有重複的)。這選擇好了的n個樣本用來訓練乙個決策樹,作為決策樹根節點處的樣本。
在每個節點隨機選取所有特徵的乙個子集,用來計算最佳**方式。當每個樣本有m個屬性時,在決策樹的每個節點需要**時,隨機從這m個屬性中選取出m個屬性,滿足條件m《決策樹形成過程中每個節點都要按照步驟2來**(也就是說如果下一次該節點擊出來的那乙個屬性是剛剛其父節點**時用過的屬性,則該結點已經達到了葉子節點,無須繼續**了)。一直到不能**為止。注意整個決策樹形成過程中沒有進行剪枝。
按照步驟1-3建立大量的決策樹,這樣就構成了隨機森林。
隨機森林的隨機性體現在每棵樹的訓練樣本都是隨機的,樹中每個節點的**屬性集合也是隨機選擇確定的。
優點:
–特徵和資料的隨機抽樣–
它可以處理很高維度的資料,並且不用降維,無需做特徵選擇;
如果有很大一部分的特徵遺失,仍可以維持準確度;
不容易過擬合;
對於不平均的資料集來說,它可以平衡誤差;
可以判斷出不同特徵之間的互相影響;
–樹模型特性–
它可以判斷特徵的重要程度;
–演算法結構–
訓練速度比較快;
實現起來比較簡單。
缺點:
1.隨機森林已經被證明在某些噪音比較大的分類或回歸問題上會過擬合。(決策樹的學習本質上進行的是決策節點的**,依賴於訓練資料的空間分布)
2.對於有不同取值的屬性資料,取值劃分較多的屬性會對隨機森林產生更大的影響,所以隨機森林在這種資料上產出的屬性權值是不可信的。
隨機森林的基學習器是同構的,如果用全樣本去訓練m棵決策樹的話,基模型之間的多樣性減少,互相相關的程度增加,不能夠有效起到減少方差的作用,對於模型的泛化能力是有害的。隨機森林思想就是取一組高方差、低偏差的決策樹,並將它們轉換成低方差、低偏差的新模型。
隨機森林採用的是bagging的思想,而gbdt採用的是boosting的思想;
組成隨機森林的樹可以並行生成,而gbdt只能是序列生成;
隨機森林對異常值不敏感,而gbdt對異常值非常敏感;
隨機森林是通過減少模型方差提高效能,而gbdt是通過減少模型偏差提高效能;
對於最終的輸出結果而言,隨機森林採用多數投票方法,而gbdt則是將所有結果累加或加權累加起來;
組成隨機森林的樹可以是分類樹,也可以說回歸樹,而gbdt只能由回歸樹組成。
本文涉及很多整合學習的思想,可以參考這篇:整合學習(ensemble learning)面試高頻題.
隨機森林隨機 三
2018年7月22日 陣雨 感冒發燒喉嚨疼,只因為一杯正常冰的奶蓋!以後得少喝加冰的東西了.前面說的是整合學習的兩種形式,這跟隨機森林有啥關係呢?隨機森林是bagging的乙個擴充套件變體.簡單的來說,當bagging演算法中的base learner為決策樹並在訓練決策樹的過程中加入隨機屬性選擇,...
隨機森林演算法
random forest是加州大學伯克利分校的breiman leo和adele cutler於2001年發表的 中提到的新的機器學習演算法,可以用來做分類,聚類,回歸,和生存分析,這裡只簡單介紹該演算法在分類上的應用。random forest 隨機森林 演算法是通過訓練多個決策樹,生成模型,然...
理解隨機森林
理解隨機森林 隨機森林利用隨機的方式將許多決策樹組合成乙個森林,每個決策樹在分類的時候投票決定測試樣本的最終類別。下面我們再詳細說一下隨機森林是如何構建的。隨機森林主要包括4個部分 隨機選擇樣本 隨機選擇特徵 構建決策樹 隨機森林投票分類。給定乙個訓練樣本集,數量為n,我們使用有放回取樣到n個樣本,...