隨機森林算法梳理

集成學習概念

經過構建並結合多個學習器來完成任務,常能夠得到比單一學習器更加優越的泛化性能。即便每一個簡單的模型能力很弱,預測精度很是低,但組合起來以後,精度獲得了顯著的提高,能夠和其餘類型的強模型相媲美。html

集成學習示意圖
上圖是集成學習的通常結構: 先產生一組 個體學習器(概念見下節),再用某種策略將其結合起來。

個體學習器概念

個體學習器一般由現有的一個算法從訓練中產生。此時集成中之包含同種類型的個體學習器,如決策樹集成中的個體學習器所有是決策樹,神經網絡模型中的個體學習器所有是神經網絡,這種集成是同質(homogenous)的,同質集成中的個體學習器也稱做基學習器。 對應的,有異質集成,若集成中包含不一樣類型的個體學習器,如同時包含決策樹集成神經網絡集成,這時的個體學習器通常稱做組件學習器,而不是基學習器,或者,直接稱之爲個體學習器。node

boosting bagging

根據個體學習器的生成方式不一樣,目前的集成學習方法大體分爲兩類:算法

  • 個體學習器之間存在強依賴關係,必須串行生成的序列化方法,表明:Boosting系列算法,Adaboost,GBDT,XGBoost
  • 個體學習器之間不存在強依賴關係,可同時生成的並行化方法,表明:Bagging 和 隨機森林

Boosting

工做機制:先從初始訓練機訓練出一個基學習器,再根據基學習器的表現對訓練樣本分佈進行調整,使得先前基學習器作錯的訓練樣本在後續受到更多的關注,而後基於調整後的樣本分佈來訓練下一個基學習器。bootstrap

Bagging

Bagging 是並行式集成學習方法表明之一,其算法原理大體以下:網絡

  • 數據處理:將數據根據實際狀況進行清洗整理
  • 隨機採樣:重複T次,每一次從樣本中隨機選出T個字樣本
  • 個體訓練:將每個子樣本放入個體學習器訓練
  • 分類決策:用投票法集成進行分類決策

結合策略(平均法,投票法,學習法)

平均法

平均法

投票法

學習法

當訓練數據不少時,一種更爲強大的結合策略是使用 「學習法」,即經過另外一個學習器來進行結合。 Stacking 是學習法的典型表明。這裏咱們把個體學習器稱爲初級學習器,用於結合的學習器稱爲次級學習器或元學習器 (meta-learner)。 Stacking 先從初始數據集訓練出初級學習器,而後 「生成」 一個新數據集用於訓練次級學習器。在這個新數據集中,初級學習器的輸出被當作樣例輸入特徵,而初始樣本的標記仍被看成樣例標記。dom

隨機森林思想

隨機森林是Bagging的表明算法,其原理與Bagging十分類似,在此基礎上作了一些改進:機器學習

  1. 對於普通的決策樹,會在N個樣本的全部特徵中選擇一個最優劃分特徵,可是隨機森林首先會從全部特徵中隨機選擇部分特徵,再從該部分特徵中選擇一個最優劃分特徵。這樣進一步加強了模型的泛化能力。
  2. 在決定部分特徵個數時,經過交叉驗證的方式來獲取一個合適的值。

隨機森林算法流程:性能

  1. 從樣本集中有放回隨機採樣選出n個樣本
  2. 從全部特徵值中隨機選擇k個特徵,對選出的樣本利用這些特徵創建決策樹
  3. 重複以上兩步m次,即生成m棵決策樹,造成隨機森林
  4. 對於新數據,通過每棵樹決策,最後投票確認分到哪一類。

隨機森林的推廣

基於RF,有不少算法變種,應用很普遍,不止用於分類,還能夠用於特徵轉換,異常點檢測等。 一、 extra trees 原理與RF幾乎相同,具體的區別有:學習

  • 對於每個決策樹的訓練集,RF採用隨機抽樣,而ET採用原始數據集
  • 選定劃分特徵後,RF會基於gini或者信息熵等選擇一個最優特徵值劃分點,與傳統決策樹相同。但ET會隨機選擇一個特徵值來劃分決策樹。 因爲隨機選擇了特徵值的劃分點位,而不是最優勢位,這樣會致使生成的決策樹的規模通常會大於 RF 所生成的決策樹。也就是說,模型的方差相對於 RF 進一步減小,可是偏倚相對於 RF 進一步增大。在某些時候,ET的泛化能力比 RF 更好。 二、Totally Random Trees Embedding (如下簡稱 TRTE)  TRTE 是一種非監督學習的數據轉化方法。它將低維的數據集映射到高維,從而讓映射到高維的數據更好的運用於分類迴歸模型。咱們知道,在支持向量機中運用了核方法來將低維的數據集映射到高維,此處 TRTE 提供了另一種方法。 三、 Isolation Forest(如下簡稱 IForest) 是一種異常點檢測的方法。它也使用了相似於 RF 的方法來檢測異常點

優缺點

優勢

  1. 訓練能夠高度並行化
  2. 因爲能夠隨機選擇決策樹節點劃分特徵,這樣在樣本特徵維度很高的時候,仍然能高效的訓練模型。
  3. 採用了隨機採樣,每次都模型都會使用不一樣的特徵集,必定程度上避免過擬合。訓練出的模型的方差小,泛化能力強。

缺點

  1. 在某些噪音比較大的樣本集上,RF 模型容易陷入過擬合。
  2. 取值劃分比較多的特徵容易對 RF 的決策產生更大的影響,從而影響擬合的模型的效果。

sklearn參數2

RandomForestClassifier(n_estimators='warn', criterion='gini', max_depth=None, min_samples_split=2, min_samples_leaf=1, min_weight_fraction_leaf=0.0, max_features='auto', max_leaf_nodes=None, min_impurity_decrease=0.0, min_impurity_split=None, bootstrap=True, oob_score=False, n_jobs=None, random_state=None, verbose=0, warm_start=False, class_weight=None)_.net

其中,參數2criterion表示特徵劃分方法選擇,默認爲gini,可選擇爲entropy(信息增益) 兩者用於表示信息的純度,區別是計算方法的不一樣。

應用場景

  • 在銀行領域,隨機森林算法可用於發現忠誠客戶,也就是說客戶常常從銀行借貸而且按時還款,一樣也能用於發現欺詐客戶,即那些沒有按時還款且行爲異常的人。
  • 在醫療領域,隨機森林算法可以用於識別醫藥中的不一樣成分是否以正確的方式組合在之前,也可經過分析患者的病歷識別疾病。
  • 在股市方面,隨機森林算法能夠用於識別股票的波動行爲,預估損失或收益。
  • 在電子商務方面,隨機森林算法可用於根據顧客的購物經歷,預測他們是否喜歡系統推薦的商品。

參考

機器學習總結(lecture 15)算法:隨機森林 Random Forest(RF)

Bagging 與隨機森林算法原理小結

使用 sklearn 進行集成學習——理論

機器學習 - 淺談隨機森林的幾個 tricks-20170917

相關文章
相關標籤/搜索