在機器學習問題中,對於乙個複雜的任務來說,能否將很多的機器學習演算法組合在一起,這樣計算出來的結果會不會比使用單一的演算法效能更好?這樣的思路就是整合學習方法。
三個臭皮匠,頂個諸葛亮。實際操作中,整合學習把大大小小的多種演算法融合在一起,共同協作來解決乙個問題。這些演算法可以是不同的演算法,也可以是相同的演算法。
第一種就是所有的個體學習器都是乙個種類的,或者說是同質的。比如都是決策樹個體學習器,或者都是神經網路個體學習器。第二種是所有的個體學習器不全是乙個種類的,或者說是異質的。比如我們有乙個分類問題,對訓練集採用支援向量機個體學習器,邏輯回歸個體學習器和樸素貝葉斯個體學習器來學習,再通過某種結合策略來確定最終的分類強學習器。
目前來說,同質個體學習器的應用是最廣泛的,一般我們常說的整合學習的方法都是指的同質個體學習器。而同質個體學習器使用最多的模型是cart決策樹和神經網路。同質個體學習器按照個體學習器之間是否存在依賴關係可以分為兩類,第乙個是個體學習器之間存在強依賴關係,一系列個體學習器基本都需要序列生成,代表演算法是boosting系列演算法,第二個是個體學習器之間不存在強依賴關係,一系列個體學習器可以並行生成,代表演算法是bagging和隨機森林(random forest)系列演算法。
整合學習方法是指組合多個模型,以獲得更好的效果,使整合的模型具有更強的泛化能力。對於多個模型,如何組合這些模型,主要有以下幾種不同的方法:
在驗證資料集上上找到表現最好的模型作為最終的**模型;
對多個模型的**結果進行投票或者取平均值;
對多個模型的**結果做加權平均。
用好整合學習有兩個關鍵點:1)怎麼訓練每個演算法?2)怎麼融合每個演算法?圍繞這兩個關鍵點,有很多方法提出來,極具代表性就是大家熟知的bagging和boosting方法,其中bagging和boosting也是當今兩大殺器rf(random forests)和gbdt(gradient boosting decision tree)之所以成功的主要秘訣。
bagging主要減小了variance,而boosting主要減小了bias,而這種差異直接推動結合bagging和boosting的multiboosting的誕生。
在整合學習方法中,是將多個弱模型,通過一定的組合方式,組合成乙個強模型。在《統計學習方法》中介紹了「強可學習
(strongly learnable)
」和「弱可學習
(weakly learnable)
」的概念。
在概率近似正確
學習的框架中,乙個概念(乙個類),如果存在乙個多項式的學習演算法能夠學習它,並且正確率很高,那麼就稱這個概念是強可學習的。乙個概念,如果存在乙個多項式的學習演算法能夠學習它,學習正確率僅比隨機猜測略好,那麼就稱這個概念是弱可學習的。
schapire
指出在pac
學習框架下,乙個概念是強可學習的充分必要條件是這個概念是弱可學習的。那麼對於乙個學習問題,若是找到「弱學習演算法」,那麼可以將弱學習方法變成「強學習演算法」。
這樣的方法的思想與決策樹的思想類似,在不同的條件下選擇滿足條件的演算法。
對於資料集訓練多個模型,對於分類問題,可以採用投票的方法,選擇票數最多的類別作為最終的類別,而對於回歸問題,可以採用取均值的方法,取得的均值作為最終的結果。在這樣的思路裡最著名的是
bagging
方法.bagging
即boostrap aggregating
,其中,
boostrap
是一種有放回的抽樣方法,其抽樣策略是簡單的隨機抽樣。 在
bagging
方法中,讓學習演算法訓練多次,每次的訓練集由初始的訓練集中隨機取出的
分類問題:採用投票的方法,得票最多的類別為最終的類別
回歸問題:採用簡單的平均方法
(來自參考文章2)
隨機森林演算法就是基於
bagging
思想的學習演算法。
在上述的
bagging
方法中,其特點在於隨機化抽樣,通過反覆的抽樣訓練新的模型,最終在這些模型的基礎上取平均。而在對多個模型的**結果做加權平均則是將多個弱學習模型提公升為強學習模型,這就是
boosting
的核心思想。 在
boosting
演算法中,初始化時對每個訓練樣本賦予相等的權重,如
,然後用該學習演算法對訓練集訓練
輪,每次訓練後,對訓練失敗的訓練樣本賦予更大的權重,也就是讓學習演算法在後續的學習中幾種對比較難學的訓練樣本進行學習,從而得到乙個**函式序列
,其中每個
都有乙個權重,**效果好的**函式的權重較大。最終的**函式為
對於分類和回歸問題可採用如下的兩種方法:
分類問題:有權重的投票方式
回歸問題:加權平均
機器學習之整合演算法
目的 讓機器學習效果更好,單個機器學習演算法不行,就用多個機器演算法整合。bagging模型 訓練多個分類器取結果的平均 boosting模型 從弱學習器開始加強,通過加權來進行訓練 加入一棵樹,要比原來強 stacking模型 聚合多個分類或回歸模型 可以分階段來做 全稱 bootstrap ag...
機器學習之整合學習
整合學習 ensemble learning 通過構建並結合多個弱學習器來完成學習任務。一般來說整合學習可以分為三大類 bagging又叫做自舉匯聚法,思想是 常見的推廣演算法有 extra tree是隨機森林的變種,原理和隨機森林一樣,區別如下 主要用於異常點檢測 在隨機取樣的過程中,一般只需要少...
機器學習之整合學習演算法學習筆記
boosting方法是一種將弱學習器提公升為強學習器的演算法。最著名的代表是 adaboost 演算法。它學習過程中,對分類正確的樣本降低了權重,對分類錯誤的樣本公升高權重或保持不變。在演算法中,需要對訓練樣本分佈進行重新調整。有兩種調整方式 重新賦權法 即在訓練的每一輪中,根據樣本分佈為每乙個訓練...