1. 程式人生 > >【機器學習模型】整合學習總結

【機器學習模型】整合學習總結

整合學習


首先,整合學習是將多個個體學習器進行結合。
若同種型別的個體學習器整合,就是“同質整合”;若整合包含不同型別的個體學習器,就叫“異質整合”。

一. 同質整合

整合學習是結合多個個體學習器(這裡也叫基學習器),那首先要產生多個不同的基學習器。如何產生多個不同的基學習器,便在於樣本資料集的利用上。
所以,下面介紹的幾種整合學習,很大的不同在於如何使用樣本資料集,如何進行訓練得到多個基學習器。(研究不同方法時可以先問一下這個問題)

1. Boosting

:如何使用樣本資料集,進行訓練得到多個個體學習器?
每次學習時更新樣本權重,不同樣本權重訓練會得到不同學習器,然後每個學習器計算一個係數,得到最終整合模型。

不同個體學習器間存在強依賴關係,必須序列生成,因為每次更新樣本權重都要依賴上一個分類器。

主要關注較低偏差,提高擬合程度。

典型:AdaBoost
利用加性模型迭代式優化指數損失函式得到演算法,只適用於二分類。
不斷迭代,每一次迭代,更新樣本權值 D t D_t 、得到基分類器 h

t h_t h t h_t 的權重 α t \alpha_t
最終得到模型:
H ( x ) = s i g n ( t = 1 T α t h t ( x ) ) H(x)=sign(\sum _{t=1}^{T}\alpha_th_t(x))

(TODO:AdaBoost的詳細演算法推導待完成)

2. Bagging

:如何使用樣本資料集,進行訓練得到多個個體學習器?
每次訓練得到學習器時,利用自主取樣法(放回抽樣),從所有樣本中得到不同樣本子集,從而訓練得到不同學習器。採用簡單投票法或簡單平均法得到最終輸出結果。

不同學習器之間訓練無聯絡。

主要關注較低方差,從而較低樣本變化造成的影響。

特例:隨機森林(RF)
RF在以決策樹為基學習器構建Bagging整合的基礎上,進一步在決策樹的訓練過程中引入隨機屬性選擇
引入隨機屬性選擇之後,不僅通過樣本變化,還通過屬性變化來得到不同基學習器。

3. Stacking

多個初級學習器 ——> 輸出類概率 ——> 次級訓練器 ——> 最終輸出

:如何使用樣本資料集,進行訓練得到多個個體學習器?
將訓練集隨機劃分為 k 個大小相似的集合,k 折交叉驗證法利用初級學習演算法(k 折會訓練出 k 個不同的學習器),得到每個樣本的 “輸出類概率”作為次級學習演算法的輸入屬性,樣本的標記仍作為標記,訓練得到次級學習器。

“多個初級學習器 + 次級學習器” 便是stacking整合模型了。

二. 異質整合

就是不同型別的學習器的結合策略。針對一個問題,利用完全不同的模型會得到多個輸出結果。下面的方法便是如何統一這些結果得到一個最終最優的結果。

1. 平均法

針對數值型輸出

  • 簡單平均
  • 加權平均

2. 投票法

針對分類問題的

  • 絕對多數投票
  • 相對多數投票
  • 加權投票

3. 學習法(Stacking)

和上面介紹的一樣:
將不同模型得到的輸出結果再扔進一個次級學習器中訓練,標籤不變。
多個初級學習器 ——生成——> 新資料集 ——訓練——> 次級學習器

三. “好而不同”

整合學習的關鍵就在於 所整合的個體學習器 “好而不同”,如何得到多個 “好而不同” 的學習器呢?那便是多樣性增強

1. 資料樣本擾動

利用不同訓練集訓練
對“不穩定學習器”有效,例如決策樹、神經網路等。
(“穩定學習器”有線性模型、SVM、樸素貝葉斯、k近鄰等)

2. 輸入屬性擾動

屬性或特徵的不同子集會提供觀察樣本資料的不同視角。

3. 輸出表示擾動

可以對訓練樣本的類標記稍作改動

4. 演算法引數擾動

就是引數變動了,很直接


參考:
《機器學習》周志華