隨機森林是通過集成學習的思想將多棵決策樹 集成的一種算法,它的基本單元是決策樹 ,而它的本質是屬於機器學的一大分支——集成學習(Ensemble Learning)。
隨機森林的直觀解釋:每棵決策樹都是一個分類器,那麼對於一個輸入樣本,N棵樹會有N個分類結果,隨機森林集成了所有分類投票的結果,將投票次數最多的類別指定爲最終的輸出,這是一種最簡單的Bagging的思想。
每棵樹的生成規則:
- 如果訓練集大小爲N,對於每棵樹而言,隨機且有放回 地從訓練集中抽取N個訓練樣本(這種採樣方式稱爲bootstrap sample),作爲該數的訓練集。
- 如果每個樣本的特徵維度爲M,指定一個常數m<=M,隨機地從M個特徵中選取m個特徵子集,每次樹進行分裂時,從這m個特徵中選擇最優的。
- 每棵樹都儘量最大程度的生長,並且沒有剪枝過程
解釋:
- “隨機且有放回地抽樣” 的原因:a. 如果不進行“隨機”抽樣 ,則每棵樹的訓練集都是一樣的,那麼最終訓練出來的樹分類結果是完全一樣的,這樣就沒有了投票的必要。b.如果不進行“有放回”的抽樣,那麼每棵樹的訓練樣本都是不同的,都是沒有交集的,這樣的每棵樹都是“有偏的”,都是絕對“片面的”,也就是說每棵樹訓練出來有很大的差異,而隨機森林最後分類取決於多棵樹(弱分類器)的投票表決,這種表決應該是“求同”,因此使用完全不同的訓練集來訓練每棵樹這樣對最終結果是沒有幫助的。
- “隨機森林”名字的來歷:a."隨機":"隨機抽樣"和"隨機選取特徵"這兩個隨機的引入對隨機森林的分類性能非常重要。由於它的引入,使得隨機森林不容易過擬合,並且具有很好的抗噪能力。b. “森林”:一棵叫做樹,那麼成百上千棵就可以叫做森林了,這是集成思想的體現。
優點:
- 在當前所有算法中,具有極好的準確率
- 能夠有效地應用在大數據集上
- 能處理具有高維特徵的輸入樣本,而且不需要降維
- 能評估各個特徵在分類問題上的重要性
- 對於缺省值問題也能夠獲得很好的結果