令n為訓練樣例的個數,則單棵決策樹的輸入樣例的個數為n個從訓練集中有放回的隨機抽取n個訓練樣例。
令訓練樣例的輸入特徵的個數為m,我們在每顆決策樹的每個節點上進行**時,從m個輸入特徵裡隨機選擇m個輸入特徵,且m遠遠小於m。然後從這m個輸入特徵裡選擇乙個最好的進行**。m在構建決策樹的過程中不會改變。
構建決策樹的演算法主要有以下三種,且根據決策樹的輸出結果,決策樹可以分為分類樹和回歸樹,分類樹輸出的結果為具體的類別,而回歸樹輸出的結果為乙個確定的數值。其中id3 和 c4.5 是分類樹, cart 是分類回歸樹,且 在id3 和 c4.5 中,特徵(屬性)只能選一次,而 cart 沒有這樣的要求:
a. id3 在決策樹生成過程中,以資訊增益為特徵選擇的準則。
b. c4.5 在決策樹生成過程中,以資訊增益比為特徵選擇的準則。
c. cart 對回歸樹用平方誤差最小化準則,對分類樹用基尼指數(gini index)最小化準則,進行特徵選擇,生成二叉樹。
熵越大,越複雜(混亂程度越高,資料純度越低越不好分)
資訊增益比越大,說明根據這些特徵(屬性)使得分類更簡單(即是我們想要的效果,資訊增益比越大說明h2,h3越小,越**明分類更簡單)
基尼值越大,資料越不純(不好分)
a. 最小節點數
當節點的資料量小於乙個指定的數量時,不繼續**。兩個原因:一是資料量較少時,再做**容易強化雜訊資料的作用;二是降低樹生長的複雜性。提前結束**一定程度上有利於降低過擬合的影響。
b. 熵或者基尼值小於閥值
由上述可知,熵和基尼值的大小表示資料的複雜程度,當熵或者基尼值過小時,表示資料的純度比較大,如果熵或者基尼值小於一定程度數,節點停止**。
c. 決策樹的深度達到指定的條件
節點的深度可以理解為節點與決策樹跟節點的距離,如根節點的子節點的深度為1,因為這些節點與跟節點的距離為1,子節點的深度要比父節點的深度大1。決策樹的深度是所有葉子節點的最大深度,當深度到達指定的上限大小時,停止**。
d. 所有特徵已經使用完畢,不能繼續進行**
按照1生成t個決策樹之後,對於每個新的測試樣例,綜合多個決策樹的分類結果來作為隨機森林的分類結果。
(1)目標特徵為數字型別:取t個決策樹的平均值作為分類結果。
(2)目標特徵為類別型別:少數服從多數,取單棵樹分類結果最多的那個類別作為整個隨機森林的分類結果。
在隨機森林中,無需交叉驗證來評價其分類的準確性,隨機森林自帶oob(out-of-bag)錯誤估計:
oob:在構造單棵決策樹時我們只是隨機有放回的抽取了n個樣例,所以可以用沒有抽取到的樣例來測試這棵決策樹的分類準確性,這些樣例大概佔總樣例數目的三分之一。
所以對於每個樣例j,都有大約三分之一的決策樹(記為sett(j))在構造時沒用到該樣例,我們就用這些決策樹來對這個樣例進行分類。我們對於所有的訓練樣例 j,用sett(j)中的樹組成的森林對其分類,然後看其分類結果和實際的類別是否相等,不相等的樣例所佔的比例就是oob錯誤估計。oob錯誤估計被證明是無偏的
隨機森林 random forest
隨機森林是一種整合學習方法 ensemble learning 用於對資料進行分類 隨機森林的分類結果由眾多分類器的分類結果表決而得到 隨機森林的每個子分類器是決策樹 decision tree 隨機森林一般按以下幾個步驟來構造 第一步,假設我們的高光譜資料報含n個樣本,則我們隨機地有放回地抽取n次...
隨機森林 Random Forest
閱讀目錄 回到頂部 隨機森林非常像 機器學習實踐 裡面提到過的那個adaboost演算法,但區別在於它沒有迭代,還有就是森林裡的樹長度不限制。因為它是沒有迭代過程的,不像adaboost那樣需要迭代,不斷更新每個樣本以及子分類器的權重。因此模型相對簡單點,不容易出現過擬合。下面先來講講它的具體框架流...
隨機森林 Random Forest
隨機森林回歸 閱讀目錄 回到頂部 隨機森林非常像 機器學習實踐 裡面提到過的那個adaboost演算法,但區別在於它沒有迭代,還有就是森林裡的樹長度不限制。因為它是沒有迭代過程的,不像adaboost那樣需要迭代,不斷更新每個樣本以及子分類器的權重。因此模型相對簡單點,不容易出現過擬合。下面先來講講...