隨機森林(Random Forests)

在機器學習中,隨機森林是一個包含多個決策樹的分類器。要說隨機森林,必須先講決策樹。決策樹是一種基本的分類器,一般是將特徵分爲兩類。構建好的決策樹呈樹形結構,可以認爲是if-then規則的集合,主要優點是模型具有可讀性,分類速度快。決策樹的主要工作,就是選取特徵對數據集進行劃分,最後把數據貼上兩類不同的標籤。如何選取最好的特徵呢?在現實應用中,我們用不同的準則衡量特徵的貢獻程度。主流準則的列舉3個:ID3算法,採用信息增益最大的特徵;C4.5算法採用信息增益比選擇特徵;CART算法利用基尼指數最小化準則進行特徵選擇。

待選特徵:在決策樹的構建過程中,需要按照一定的次序從全部的特徵中選取特徵。待選特徵就是在目前的步驟之前還沒有被選擇的特徵的集合。例如,全部的特徵是 ABCDE,第一步的時候,待選特徵就是ABCDE,第一步選擇了C,那麼第二步的時候,待選特徵就是ABDE。
分裂特徵:接待選特徵的定義,每一次選取的特徵就是分裂特徵,例如,在上面的例子中,第一步的分裂特徵就是C。因爲選出的這些特徵將數據集分成了一個個不相交的部分,所以叫它們分裂特徵。

決策樹相當於一個大師,通過自己在數據集中學到的知識對於新的數據進行分類。但是俗話說得好,一個諸葛亮,玩不過三個臭皮匠。隨機森林就是希望構建多個臭皮匠,希望最終的分類效果能夠超過單個大師的一種算法。

那隨機森林具體如何構建呢?有兩個方面:數據的隨機性選取,以及待選特徵的隨機選取。

數據的隨機選擇:
首先,從原始的數據集中採取有放回的抽樣,構造子數據集,子數據集的數據量是和原始數據集相同的。不同子數據集的元素可以重複,同一個子數據集中的元素也可以重複。第二,利用子數據集來構建子決策樹,將這個數據放到每個子決策樹中,每個子決策樹輸出一個結果。最後,如果有了新的數據需要通過隨機森林得到分類結果,就可以通過對子決策樹的判斷結果的投票,得到隨機森林的輸出結果了。假設隨機森林中有3棵子決策樹,2棵子樹的分類結果是A類,1棵子樹的分類結果是B類,那麼隨機森林的分類結果就是A類。、

待選特徵的選擇:

與數據集的隨機選取類似,隨機森林中的子樹的每一個分裂過程並未用到所有的待選特徵(意思:不是從所有的待選特徵中選擇最有優的),而是從所有的待選特徵中隨機選取一定的特徵(隨機選擇現有待選特徵中的幾個),之後再在隨機選取的特徵中選取最優的特徵。這樣能夠使得隨機森林中的決策樹都能夠彼此不同,提升系統的多樣性,從而提升分類性能。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章