隨機森林演算法梳理

shiyuan發表於2019-03-01

整合學習概念

通過構建並結合多個學習器來完成任務,常可以獲得比單一學習器更加優越的泛化效能。即使每個簡單的模型能力很弱,預測精度非常低,但組合起來之後,精度得到了顯著的提升,可以和其他型別的強模型相媲美。

隨機森林演算法梳理
整合學習示意圖
上圖是整合學習的一般結構: 先產生一組個體學習器(概念見下節),再用某種策略將其結合起來。

個體學習器概念

個體學習器通常由現有的一個演算法從訓練中產生。此時整合中之包含同種型別的個體學習器,如決策樹整合中的個體學習器全部是決策樹,神經網路模型中的個體學習器全部是神經網路,這種整合是同質(homogenous)的,同質整合中的個體學習器也稱作基學習器。 對應的,有異質整合,若整合中包含不同型別的個體學習器,如同時包含決策樹整合神經網路整合,這時的個體學習器一般稱作元件學習器,而不是基學習器,或者,直接稱之為個體學習器。

boosting bagging

根據個體學習器的生成方式不同,目前的整合學習方法大致分為兩類:

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

Boosting

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

Bagging

Bagging 是並行式整合學習方法代表之一,其演算法原理大致如下:

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

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

平均法

隨機森林演算法梳理
平均法

投票法

隨機森林演算法梳理

學習法

當訓練資料很多時,一種更為強大的結合策略是使用 “學習法”,即通過另一個學習器來進行結合。 Stacking 是學習法的典型代表。這裡我們把個體學習器稱為初級學習器,用於結合的學習器稱為次級學習器或元學習器 (meta-learner)。 Stacking 先從初始資料集訓練出初級學習器,然後 “生成” 一個新資料集用於訓練次級學習器。在這個新資料集中,初級學習器的輸出被當做樣例輸入特徵,而初始樣本的標記仍被當作樣例標記。

隨機森林思想

隨機森林是Bagging的代表演算法,其原理與Bagging十分相似,在此基礎上做了一些改進:

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

隨機森林演算法流程:

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

隨機森林的推廣

基於RF,有很多演算法變種,應用很廣泛,不止用於分類,還可以用於特徵轉換,異常點檢測等。 1、 extra trees 原理與RF幾乎相同,具體的區別有:

  • 對於每一個決策樹的訓練集,RF採用隨機抽樣,而ET採用原始資料集
  • 選定劃分特徵後,RF會基於gini或者資訊熵等選擇一個最優特徵值劃分點,與傳統決策樹相同。但ET會隨機選擇一個特徵值來劃分決策樹。 由於隨機選擇了特徵值的劃分點位,而不是最優點位,這樣會導致生成的決策樹的規模一般會大於 RF 所生成的決策樹。也就是說,模型的方差相對於 RF 進一步減少,但是偏倚相對於 RF 進一步增大。在某些時候,ET的泛化能力比 RF 更好。 2、Totally Random Trees Embedding (以下簡稱 TRTE)  TRTE 是一種非監督學習的資料轉化方法。它將低維的資料集對映到高維,從而讓對映到高維的資料更好的運用於分類迴歸模型。我們知道,在支援向量機中運用了核方法來將低維的資料集對映到高維,此處 TRTE 提供了另外一種方法。 3、 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)_

其中,引數2criterion表示特徵劃分方法選擇,預設為gini,可選擇為entropy(資訊增益) 二者用於表示資訊的純度,區別是計算方法的不同。

應用場景

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

參考

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

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

使用 sklearn 進行整合學習——理論

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

相關文章