機器學習方法篇(17)------集成學習

● 每週一言

做出決定,然後對決定負責。

導語

俗話說“三個臭皮匠,頂個諸葛亮”。單個模型的性能效果通常弱於多個模型的融合結果,而這種融合就叫做集成學習。那麼集成學習有哪些常見模型?這種集成是否一定能提升模型效果呢?

集成學習

在做多人決策時,通常採取投票機制,即“少數服從多數”。我們不妨就先從投票講講什麼是好的集成,什麼是不好的集成。假設有三類樣本,三種模型分別預測後進行結果融合,不同的融合結果如下圖所示:

fig1

上圖說明了集成學習的各個子模型需要滿足兩點要求:準確性多樣性。準確性是指子模型把樣本分類正確的概率,上圖表現爲a比c具備準確性;多樣性指的則是子模型之間分類正確樣本集合的重疊程度,上圖表現爲a比b具備多樣性。通俗的講就是,模型達到一定預測準確度之後,還要保證你學到的特徵和我學到的特徵不相同,才能同時發揮你我的作用,使融合得到正向結果。
fig2

事實上,準確性和多樣性存在一定衝突。當準確性達到一定程度後,多樣性一般就很難體現,需要犧牲一定的準確性來保證。

提高準確性是模型訓練的普遍目標,因此不多講,這裏講講如何提高多樣性。提高子模型多樣性通常有兩個方法:特徵抽樣樣本抽樣

特徵抽樣,是說每個子模型分別抽取一部分特徵訓練,讓不同的特徵在不同的模型當中分別發揮作用,提高多樣性。同理,樣本抽樣是指每個子模型分別抽取一部分樣本訓練,讓不同的樣本在不同的模型中分別發揮作用,提高多樣性。

fig3

說完子模型應具備的特點,下面講講其融合的方式。常見的融合方式分爲 串行融合並行融合 兩種。

串行融合指的就是Boosting,Boosting算法最有名的代表是AdaBoostGBDT。有關GBDT的介紹可以參見我之前的文章 機器學習方法篇(9)——梯度提升決策樹GBDT

並行融合指的則是Bagging,Bagging算法最有名的代表是決策樹BaggingRF隨機森林。有關隨機森林的介紹可以參見我之前的文章 機器學習方法篇(10)——隨機森林

除開上述兩種融合方式,還有兩種在各大算法比賽中作爲殺手鐗的融合方式 stackingblending。其中blending採用不相交數據集訓練不同的子模型,然後將結果取加權平均輸出;而stacking稍微複雜點,但使用更爲廣泛,這裏借用一張網上著名的圖說明:

fig4

上圖的大致意思是第一層子模型先對訓練集進行K折預測,預測結果作爲第二層模型的訓練集再進行訓練預測。

以上便是集成學習的講解,敬請期待下節內容。

結語

感謝各位的耐心閱讀,後續文章於每週日奉上,敬請期待。歡迎大家關注小鬥公衆號 對半獨白

face

發佈了91 篇原創文章 · 獲贊 113 · 訪問量 27萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章