整合學習概述

2021-09-26 09:08:44 字數 3292 閱讀 1976

整合學習有兩個分類,乙個是個體學習器存在強依賴關係、必須序列生成的序列化方法,以boosting為代表。另外一種是個體學習器不存在強依賴關係、可同時生成的並行化方法,以bagging和隨機森林(random forest)為代表。

全稱: bootstrap aggregation(並行訓練一堆分類器),代表:隨機森林

對於這裡的隨機取樣有必要做進一步的介紹,這裡一般採用的是自助取樣法(bootstrap sampling),即對於m個樣本的原始訓練集,我們每次先隨機採集乙個樣本放入取樣集,接著把該樣本放回,也就是說下次取樣時該樣本仍有可能被採集到,這樣採集m次,最終可以得到m個樣本的取樣集,由於是隨機取樣,這樣每次的取樣集是和原始訓練集不同的,和其他取樣集也是不同的,這樣得到多個不同的弱學習器。

隨機:資料取樣隨機,特徵選擇隨機(數量相同),保證泛化能力,每棵樹都不一樣,得到不同的結果,再進行投票取最終結果

森林:很多個決策樹並行放在一起

隨機森林優勢:

 它能夠處理很高維度(feature很多)的資料,並且不用做特徵選擇

 在訓練完後,它能夠給出哪些feature比較重要

 可以進行視覺化展示,便於分析

 容易做成並行化方法,速度比較快

理論上樹越多,效果越好,但實際上超過一定數量就差不多上下浮動

典型代表:adaboost,xgboost

從弱學習器開始加強,通過加權來進行訓練

boosting演算法的工作機制是首先從訓練集用初始權重訓練出乙個弱學習器1,根據弱學習的學習誤差率表現來更新訓練樣本的權重,使得之前弱學習器1學習誤差率高的訓練樣本點的權重變高,使得這些誤差率高的點在後面的弱學習器2中得到更多的重視。然後基於調整權重後的訓練集來訓練弱學習器2.,如此重複進行,直到弱學習器數達到事先指定的數目t,最終將這t個弱學習器通過集合策略進行整合,得到最終的強學習器。

舉例:當a模型**實際值1000為950時,b模型繼續**殘差(1000-950=50),當b模型**實際值50為30時,c模型繼續**殘差(50-30=20),c模型**得到結果為18,將各結果累加,得到合適的準確度

adaboost實現流程:

每次切分一次,最終合在一起,形成乙個弱分類器的加強版

當使用stacking時, 我們不是對弱學習器的結果做簡單的邏輯處理,而是再加上一層學習器,也就是說,我們將訓練集弱學習器的學習結果作為輸入,將訓練集的輸出作為輸出,重新訓練乙個學習器來得到最終結果。

在這種情況下,我們將弱學習器稱為初級學習器,將用於結合的學習器稱為次級學習器。對於測試集,我們首先用初級學習器**一次,得到次級學習器的輸入樣本,再用次級學習器**一次,得到最終的**結果。

聚合多個分類或回歸模型(可分階段來做)

對於每一輪的 5-fold,model都要做滿5次的訓練和**。分別為model1-model5

titanic 例子:

train data有890行。(請對應圖中的上層部分)

每1次的fold,都會生成 713行 小train, 178行 小test。我們用model_i來訓練 713行的小train,然後** 178行 小test。**的結果是長度為 178 的**值。

這樣的動作走5次! 長度為178 的**值 x 5 = 890 **值,剛好和train data長度吻合。這個890**值是model 1-5產生的,我們先存著,因為,一會讓它將是第二層模型的訓練**。

重點:這一步產生的**值我們可以轉成 890 x 1 (890 行,1列),記作 p1 (大寫p)

接著說 test data 有 418 行。(請對應圖中的下層部分,對對對,綠綠的那些框框)

每1次的fold,713行 小train訓練出來的model _i要去**我們全部的test data(全部!因為test data沒有加入5-fold,所以每次都是全部!)。此時,model _i的**結果是長度為418的**值。

這樣的動作走5次!我們可以得到乙個 5 x 418 的**值矩陣。然後我們根據行來就平均值,最後得到乙個 1 x 418 的平均**值。

重點:這一步產生的**值我們可以轉成 418 x 1 (418行,1列),記作 p1 (小寫p)

走到這裡,你的第一層的某個model就完成了他的使命

過擬合:實際中stacking非常容易過擬合,第二層應該採用簡單的模型,如線性回歸

為了更好的效果,第一層學習器要盡量多樣化:

1、平均法(回歸)

在上面幾節裡面我們主要關注於學習器,提到了學習器的結合策略但沒有細講,本節就對整合學習之結合策略做乙個總結。我們假定我得到的t個弱學習器是

對於數值類的回歸**問題,通常使用的結合策略是平均法,也就是說,對於若干個弱學習器的輸出進行平均得到最終的**輸出。

最簡單的平均是算術平均,也就是說最終**是

如果每個個體學習器有乙個權重w,則最終**是

2、投票法(分類)

對於分類問題的**,我們通常使用的是投票法。假設我們的**類別是,對於任意乙個**樣本x,我們的t個弱學習器的**結果分別是(h1(x),h2(x)…ht(x))。

最簡單的投票法是相對多數投票法,也就是我們常說的少數服從多數,也就是t個弱學習器的對樣本x的**結果中,數量最多的類別ci為最終的分類類別。如果不止乙個類別獲得最高票,則隨機選擇乙個做最終類別。

稍微複雜的投票法是絕對多數投票法,也就是我們常說的要票過半數。在相對多數投票法的基礎上,不光要求獲得最高票,還要求票過半數。否則會拒絕**。

更加複雜的是加權投票法,和加權平均法一樣,每個弱學習器的分類票數要乘以乙個權重,最終將各個類別的加權票數求和,最大的值對應的類別為最終類別。

整合學習概述

整合學習是指通過訓練多個分類器,然後將這些分類器組合起來,來獲得比單個分類器更優的效能 比最好的那個分類器還要好 如果每個分類器都是同種型別的 比如都是決策樹或者都是svm等等 那麼這些單個的分類器我們稱為基學習器 如果整合中包含不同型別的分類器,這樣的整合是異質的。需要注意的是,這些單個的分類器效...

機器學習常見演算法概述 整合學習總結

整合學習 多個弱分類器組合成乙個強分類器。1.adaboost 通過改變訓練樣本的權重 初始時權重相同,每次將前乙個分類器分類錯誤的那些樣本的權重增加,表現在分類誤差率的計算上 反覆訓練多個弱分類器,最後根據這些弱分類器的分類誤差率 權重 將他們線性組合到一起。其中分類誤差率越大權重越小。等價於損失...

機器學習筆記(七) 整合學習概述

整合學習 ensemble learning 是通過組合多個基分類器 baseclassifier 來完成學習任務。基分類器一般採用的是弱可學習分類器,通過整合學習,組合成乙個強可學習分類器。整合學習主要分為兩類 一是個體學習器間存在強大依賴關係 必須序列生成的序列化方法,代表演算法 boostin...