1. 程式人生 > >樹模型-隨機森林RF

樹模型-隨機森林RF

樹模型

1、決策樹 ID3,C4.5,CART
2、隨機森林RF
3、Adaboost
4、GBDT
5、XGboost
6、孤立森林(異常檢測)

二、隨機森林RF

一、整合學習

​ 整合學習通過構建多個學習器採用加權的方式來完成學習任務,類似於“三個臭皮匠頂個諸葛亮”的思想。當然多個學習器之間需要滿足一定的條件,一般來講,多個學習器同屬於一種模型,比如決策樹,線性模型,而不會交叉用多種模型。為了保證整合學習的有效性,多個弱分類器之間應該滿足兩個條件:

​ 1)準確性:即個體學習器要有一定的準確性,在訓練集上正確率至少達到 0.5 才能有好的效果。

​ 2)多樣性:即學習器之間要有一些差異,因為完全相同的幾個學習器整合起來後完全沒有任何效果。

目前,整合學習主要分為Bagging和Boosting兩種方式,前者通過Booststrap Aggregation的重取樣得到多組訓練集,並行的訓練基學習器。而後者是一種提升的思想,基學習器是序列執行的,下一個學習器會基於上一個學習的經驗進行調整,學習器前後有依賴關係,多個學習器最終組合得到強學習器。

//整合學習的有效性說明:

二、隨機森林

​ 隨機森林是整合學習中Bagging方式的代表,其相對決策樹的提高很重要的一點防止過擬合,主要通過以下兩點來防止過擬合,這與深度學習中的Dropout(隨機的丟失一些樣本和特徵)技術非常相似

​ 1)樣本選擇隨機:Bootstrap Sampling

​ 2)特徵選擇隨機:基學習器決策樹的特徵選擇log2d

Bootstrap Sampling:是一種統計學上的抽樣方法,該方法是這樣執行的,對於有m個樣本的資料集D,進行m次有放回取樣得到資料集 D,這樣DD的大小一致。有放回取樣使得D中有的樣本重複出現,有的樣本則沒有出現,簡單估計一下,某個樣本在m次取樣中始終沒被採到的概率為(11m)m,取極限:

limm(11m)m=1e0.368D中的樣本大概有
63.2
%機率出現在D中,取樣出B個Bootstrap 樣本集 D1,D2,,DB,對這K個樣本集分別訓練一個基學習器 Tb(x),結合這些基學習器共同作出決策。決策時,在分類任務中通常採用投票法,若兩個類別票數一樣,最簡單的做法是隨機選擇一個;而迴歸任務則一般使用平均法。整個流程如下所示:

這裡寫圖片描述

基學習器:早期的Bagging方法是每個基學習器都是一個決策樹,完全按照決策樹的規則建樹。隨機森林則在Bagging的基礎繼續採用特徵隨機,每個基學習器只對在k個特徵構成的子集下進行建樹,一般取k=log2d。這樣構建的決策樹相對於完整的決策樹是一個“淺決策樹”,這樣就構成了特徵的隨機性。

這裡寫圖片描述

隨機森林過程:

  1. 假設我們設定訓練集中的樣本個數為N,然後通過Bootstrap Sampling來獲得B個有重複的樣本集N
  2. 針對每個樣本集N獨立訓練,對於有d個特徵的資料集,隨機選擇k(k<d)個特徵構成特徵選擇集Ψ。然後在樣本集N,特徵集Ψ上構建決策樹。k值是保持不變的, 隨機選取特徵增加樹的獨立性,每棵決策樹都最大可能地進行生長而不進行剪枝;
  3. 通過對所有的決策樹進行加權來預測新的資料(在分類時採用多數投票,在迴歸時採用平均)。

到此,隨機森林基本介紹完,但是依然存在問題,隨機森林為什麼能防止過擬合,隨機森林適合什麼樣的場景?

Bias and Variance 分析

從Bias和Variance的角度分析,Bagging對樣本的重取樣得到BN訓練集,對於每個訓練集訓練一個基學習器,因為基學習器相同,因此各個學習器有近似的Bais和Variance(學習器並不一定獨立)。假設每個學習器的權重相同即1B。每個學習器的損失用Lb表示,那麼隨機森林的損失可表示為:

E(1NbLb)=E(Lb)b=1,2,,B 所以 Bagging 後的 Bias和單個基學習器的接近,並不能顯著降低bias,但是若各基學習器獨立,因為每個學習器的權重是1B,所以引入的方差為1BVar(X),那麼隨機森林的Variance可表示為: