隨機森林

原理: http://www.zilhua.com/629.html
原理+代碼(opencv),強力推薦: http://www.ibm.com/developerworks/cn/opensource/os-cn-spark-random-forest/index.html

1. 機器學習弊端

缺點 解決
數據規模不能滿足模型複雜性(過擬合、過學習) 1.增加訓練樣本;2. 正則化(對過大的數據進行懲罰);3. 交叉驗證
模型複雜,計算機性能不能滿足 現已有針對deeplearning研發的cpu
黑盒,無法understand其中的機理。

2. 原理

  • 其是基於決策樹的(是一個樹結構(可以是二叉樹或非二叉樹)。其每個非葉節點表示一個特徵屬性上的測試,每個分支代表這個特徵屬性在某個值域上的輸出,而每個葉節點存放一個類別。使用決策樹進行決策的過程就是從根節點開始,測試待分類項中相應的特徵屬性,並按照其值選擇輸出分支,直到到達葉子節點,將葉子節點存放的類別作爲決策結果。)。
  • 其就是多個決策樹構成一個森林。而每棵決策樹的構成:從訓練集中有放回的隨機取M個數據集(所以可重複),且隨機取其中的f個數據的特徵(無放回,不可重複)作爲此棵決策樹的特徵屬性。

2.1 預測過程

名詞解釋:
1. 信息增益: 用於度量分類的好壞,值越大,越好
2. 預測輸出: 即標記當前節點的某一屬性值(分類和迴歸不同)

給定訓練集S,測試集T,特徵維數F。

  • 確定參數:使用到的決策樹的數量n(森林中樹的數目),每棵樹的深度d,每個節點使用到的特徵數量f;
  • 終止條件:
    1) 節點上最少樣本數s(如果小於s,則終止,此節點爲葉節點,通常s取data的1%);
    2) 節點上最少的信息增益m(後續會提到,增益越大,分類越均勻,如果小於m,則表示很多data屬於某一類,所以停止).

對於第t棵樹,i = t:

  1. 從S中有放回的抽取訓練集S(i),作爲根節點的樣本,從根節點開始訓練;
  2. 節點訓練劃分:

    2.1 如果當前節點上達到終止條件,則設置當前節點爲葉子節點;

    2.2 如果當前節點沒有達到終止條件

    2.2.1 標記預測輸出

    2.2.1.1 如果是分類問題,該葉子節點的預測輸出爲當前節點樣本集合中數量最多的那一類c(j),概率p爲c(j)佔當前樣本集的比例;

    2.2.1.2 如果是迴歸問題,預測輸出爲當前節點樣本集各個樣本值的平均值。然後繼續訓練其他節點

    2.2.2 將當前節點的datas劃分到左右分支中:

    2.2.2.1 從F維特徵中無放回的隨機選取f維特徵;

    2.2.2.2 利用這f維特徵,尋找分類效果最好的一維特徵k及其閾值th:

    1) 對於分類問題(將某個樣本劃分到某一類),也就是離散變量問題,CART使用Gini值作爲評判標準。定義爲Gini=1-∑(P(i)*P(i)),P(i)爲當前節點上數據集中第i類樣本的比例。例如:分爲2類,當前節點上有100個樣本,屬於第一類的樣本有70個,屬於第二類的樣本有30個,則Gini=1-0.7×07-0.3×03=0.42,可以看出,類別分佈越平均,Gini值越大,類分佈越不均勻,Gini值越小。在尋找最佳的分類特徵和閾值時,評判標準爲:argmax(Gini-GiniLeft-GiniRight),即尋找最佳的特徵f和閾值th,使得當前節點的Gini值減去左子節點的Gini和右子節點的Gini值最大。

    2) 對於迴歸問題,相對更加簡單,直接使用argmax(Var-VarLeft-VarRight)作爲評判標準,即當前節點訓練集的方差Var減去減去左子節點的方差VarLeft和右子節點的方差VarRight值最大。

    2.2.2.3當前節點上樣本第k維特徵小於th的樣本被劃分到左節點,其餘的被劃分到右節點。

  3. 重複(1),(2)直到所有節點都訓練過了或者被標記爲葉子節點;

  4. 重複(1),(2),(3)直到所有決策樹都被訓練過。

2.2 訓練過程

對於第1-t棵樹,i=1-t:

  1. 從當前樹的根節點開始,根據當前節點的閾值th,判斷是進入左節點(< th)還是進入右節點(>= th),直到到達,某個葉子節點,並輸出預測值。

  2. 重複執行(1)直到所有t棵樹都輸出了預測值。

  3. 獲得分類或者回歸(根據上述2.2.1
    3.1 如果是分類問題,則輸出爲所有樹中預測概率總和最大的那一個類,即對每個c(j)的p進行累計;
    3.2 如果是迴歸問題,則輸出爲所有樹的輸出的平均值。

3. 應用

  • 分類
  • 迴歸
  • 屬性權值(在分類或者回歸中,各個屬性所佔比重)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章