? Random Forest是加州大學伯克利分校的Breiman Leo和Adele Cutler于2001年發表的 論文 中提到的新的機器學習算法,可以用來做分類,聚類,回歸,和生存分析,這里只簡單介紹該算法在分類上的應用。
? Random Forest(隨機森林)算法是通過訓練多個決策樹,生成模型,然后綜合利用多個決策樹進行分類。
? 隨機森林算法只需要兩個參數:構建的決策樹的個數 t ,在決策樹的每個節點進行分裂時需要考慮的輸入特征的個數 m 。
? 1. 單棵決策樹的構建:
? (1)令N為訓練樣例的個數,則單棵決策樹的輸入樣例的個數為N個從訓練集中有放回的隨機抽取N個訓練樣例。
? (2)令訓練樣例的輸入特征的個數為M,切m遠遠小于M,則我們在每顆決策樹的每個節點上進行分裂時,從M個輸入特征里隨機選擇m個輸入特征,然后從這m個輸入特征里選擇一個最好的進行分裂。m在構建決策樹的過程中不會改變。
? (3)每棵樹都一直這樣分裂下去,直到該節點的所有訓練樣例都屬于同一類。不需要剪枝。
? 2. 隨機森林的分類結果
? 按照1生成t個決策樹之后,對于每個新的測試樣例,綜合多個決策樹的分類結果來作為隨機森林的分類結果。
? (1)目標特征為數字類型:取t個決策樹的平均值作為分類結果。
? (2)目標特征為類別類型:少數服從多數,取單棵樹分類結果最多的那個類別作為整個隨機森林的分類結果。
? 3. 分類效果的評價
? 在隨機森林中,無需交叉驗證來評價其分類的準確性,隨機森林自帶OOB(out-of-bag)錯誤估計:
? OOB:在構造單棵決策樹時我們只是隨機有放回的抽取了N個樣例,所以可以用沒有抽取到的樣例來測試這棵決策樹的分類準確性,這些樣例大概占總樣例數目的三分之一(作者這么說的,我還不知道理論上是如何出來的,但是可以自己做試驗驗證)。所以對于每個樣例j,都有大約三分之一的決策樹(記為SetT(j))在構造時沒用到該樣例,我們就用這些決策樹來對這個樣例進行分類。我們對于所有的訓練樣例j,用SetT(j)中的樹組成的森林對其分類,然后看其分類結果和實際的類別是否相等,不相等的樣例所占的比例就是OOB錯誤估計。OOB錯誤估計被證明是無偏的。
?
參考文獻:
? [1] Mahout Wiki-Random Forest
? [2] Leo Breiman 2001年的paper
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
