機器學習樹模型——隨機森林和AdaBoost

介紹

隨機森林(Random Forest)是集成學習的代表作,同時又是以bagging爲基礎的加法模型。隨機森林在以決策樹爲基學習器構建bagging的基礎上,進一步在決策樹的訓練過程中引入了隨機屬性的選擇。

集成學習

集成學習(Ensemble Learning)通過構建多個弱分類器組合成一個強分類器來完成學習任務,幾種機器學習技術組合成一個預測模型的元算法,以達到減小方差(bagging)、偏差(boosting)或改進預測(stacking)的效果。這裏介紹前兩種集成方法。

Bagging (bootstrap aggregating,裝袋)

Bagging即套袋法,先說一下bootstrap,bootstrap也稱爲自助法,它是一種有放回的抽樣方法,目的爲了得到統計量的分佈以及置信區間,其算法過程如下:
在這裏插入圖片描述

 1. 從原始樣本集中抽取訓練集。每輪從原始樣本集中使用Bootstraping的方法抽取n個訓練樣本
(在訓練集中,有些樣本可能被多次抽取到,而有些樣本可能一次都沒有被抽中)。共進行k輪抽取,
得到k個訓練集。(k個訓練集之間是相互獨立的)
 2. 每次使用一個訓練集得到一個模型,k個訓練集共得到k個模型。
 3. 對分類問題:將上步得到的k個模型採用投票的方式得到分類結果;對迴歸問題,
計算上述模型的均值作爲最後的結果。

Bagging採用的採樣方法是有放回的抽樣方法,那麼樣本在k次採樣中始終不會被採到的概率爲(11n)k(1-\frac{1}{n})^{k},取極限後可得樣本有1e\frac{1}{e}的概率未出現在採樣數據集中。
Bagging方法有以下特點:

  1. Bagging通過降低基分類器的方差,改善了泛化誤差。
  2. 其性能依賴於基分類器的穩定性;如果基分類器不穩定,bagging有助於降低訓練數據的隨機波動導致的誤差;如果穩定,則集成分類器的誤差主要由基分類器的偏倚引起。
  3. bagging並不側重於訓練數據集中的任何特定實例,每個樣本被選擇的概率相同。
    最具代表性的方法,隨機森林。

Boosting

與Bagging不同,boosting選用的是所有的樣本。但是每個樣本的權重在每次訓練出基分類器時候不一樣:本次訓練會提升上次分類錯誤的樣本的權重,減小前一輪分類正確的樣本的權值。最後通過加法模型將弱分類器進行線性組合。
最具代表性的方法,AdaBoost。

隨機森林

字面理解,很多棵決策樹通過bagging組成一片森林。隨機森林的每一棵決策樹還引入了隨機屬性選擇,假設訓練樣本一共有dd個屬性,那麼每棵決策樹會從所有的屬性集合中隨機選擇包含kk個屬性的子集。然後再按照決策樹的屬性選擇方式(信息增益熵、信息增益比)選擇最優屬性來構建決策樹。生成nn棵決策樹以後,採用投票法來預測最終結果。
在這裏插入圖片描述

AdaBoost

AdaBoost (Adaptive Boosting) 實現了boosting策略,並且將弱分類器採用加權多數表決的組合方式。首先學習一個弱分類器,
在這裏插入圖片描述
對所有未分類正確的樣本求得分類誤差率,初始的wmiw_{mi}所有的樣本等概率。
在這裏插入圖片描述
計算基分類器的係數:
在這裏插入圖片描述
然後求得每個樣本的權值:
在這裏插入圖片描述
這裏可以進行將exp(αmyiGm(xi))exp(-\alpha_{m}y_{i}G_{m}(x_{i}))簡化:如果分類正確,爲exp(αm)exp(-\alpha_{m});分類錯誤,爲exp(αm)exp(\alpha_{m})。由此可見,分類錯誤的樣本的權值變大。其中,ZmZ_{m}爲歸一化因子,
在這裏插入圖片描述
在這裏插入圖片描述
對求得的基分類器線性求和,得到最終的分類器:
在這裏插入圖片描述

Reference

1、統計學習方法,李航
2、機器學習,周志華
3、https://www.cnblogs.com/zongfa/p/9304353.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章