隨機森林學習筆記

1.分類迴歸樹CARThtml

隨機森林是由多顆CART樹組成的算法

一、下面簡單敘述下CART樹及生成樹的原理。
數據結構

CART(Classification and regression tree)是決策樹的一種,主要由特徵選擇,樹的生成和剪枝三部分組成。它主要用來處理分類和迴歸問題。函數

(1)、迴歸樹:使用平方偏差最小準則 性能

訓練集爲:D={(x1,y1), (x2,y2), …, (xn,yn)}。 學習

輸出Y爲連續變量,將輸入劃分爲M個區域,分別爲R1,R2,…,RM,每一個區域的輸出值分別爲:c1,c2,…,cm則迴歸樹模型可表示爲: 測試

技術分享

則平方偏差爲:spa

技術分享 

假如使用特徵j的取值s來將輸入空間劃分爲兩個區域,分別爲: .net

技術分享

 咱們須要最小化損失函數,即:3d

技術分享

  其中c1,c2分別爲R1,R2區間內的輸出平均值。(此處與統計學習課本上的公式有所不一樣,在課本中裏面的c1,c2都須要取最小值,可是,在肯定的區間中,當c1,c2取區間輸出值的平均值時其平方會達到最小,爲簡單起見,故而在此直接使用區間的輸出均值。)

  爲了使平方偏差最小,咱們須要依次對每一個特徵的每一個取值進行遍歷,計算出當前每個可能的切分點的偏差,最後選擇切分偏差最小的點將輸入空間切分爲兩個部分,而後遞歸上述步驟,直到切分結束。此方法切分的樹稱爲最小二乘迴歸樹。

最小二乘迴歸樹生成過程:

1)依次遍歷每一個特徵j,以及該特徵的每一個取值s,計算每一個切分點(j,s)的損失函數,選擇損失函數最小的切分點。 

技術分享 

2)使用上步獲得的切分點將當前的輸入空間劃分爲兩個部分

3)而後將被劃分後的兩個部分再次計算切分點,依次類推,直到不能繼續劃分。

4)最後將輸入空間劃分爲M個區域R1,R2,…,RM,生成的決策樹爲: 

技術分享 

其中cm爲所在區域的輸出值的平均。

  總結:此方法的複雜度較高,尤爲在每次尋找切分點時,須要遍歷當前全部特徵的全部可能取值,假如總共有F個特徵,每一個特徵有N個取值,生成的決策樹有S個內部節點,則該算法的時間複雜度爲:O(F*N*S) 

(2)、分類樹:使用基尼指數最小化準則

基尼指數:假如總共有K類,樣本屬於第k類的機率爲:pk,則該機率分佈的基尼指數爲:

技術分享

基尼指數越大,說明不肯定性就越大。 

對於二類分類:技術分享 

使用特徵A=a,將D劃分爲兩部分,即D1(知足A=a的樣本集合),D2(不知足A=a的樣本集合)。則在特徵A=a的條件下D的基尼指數爲:

技術分享 

Gini(D):表示集合D的不肯定性。

Gini(A,D):表示通過A=a分割後的集合D的不肯定性。

CART生成算法:

1)依次遍歷每一個特徵A的可能取值a,對每個切分點(A, a)計算其基尼指數。 

2)選擇基尼指數最小的切分點做爲最優切分點。而後使用該切分點將當前數據集切分紅兩個子集。

3)對上步切出的兩個子集分別遞歸調用1)和2),直至知足中止條件。(算法中止的條件是樣本個數小於預約閥值,或者樣本集的基尼指數小於預約閥值或者沒有更多特徵)

4)生成CART決策樹。 

  分類樹能夠使用基尼指數做爲分類標準,至於爲何使用該指標,咱們能夠從信息論的角度思考。一樣採樣這樣的分類標準會致使生成樹選擇最優屬性時會偏向類別比較多的屬性,所以在實際使用的過程當中應對數據集進行處理或者控制樹的深度。雖然決策樹算法能夠經過剪枝(正則、驗證集測試)或者早中止策略儘可能避免過擬合,但性能上依舊不能使人滿意。

2.隨機森林定義
隨機森林是一個樹型分類器{h(x,k),k=1,…}的集合。其中元分類器h(x,k)是用CART算法構建的沒有剪枝的分類迴歸樹;x是輸入向量;k是獨立同分布的隨機向量,決定了單顆樹的生長過程;森林的輸出採用簡單多數投票法(針對分類)或單顆樹輸出結果的簡單平均(針對迴歸)獲得。
轉自:http://blog.csdn.net/a819825294/article/details/51177435
   http://www.bubuko.com/infodetail-1005171.html
相關文章
相關標籤/搜索