機器學習之整合學習(一)

2022-05-24 18:39:11 字數 4329 閱讀 6416

詳細參考:

首先明確整合學習它本身不是乙個單獨的機器學習演算法,而是通過構建並結合多個機器學習器來完成學習任務。

整合學習有兩個主要的問題需要解決,第一是如何得到若干個個體學習器,第二是如何選擇一種結合策略,將這些個體學習器集合成乙個強學習器。對於個體學習器第一種就是所有的個體學習器都是乙個種類的,或者說是同質的。比如都是決策樹個體學習器,或者都是神經網路個體學習器。第二種是所有的個體學習器不全是乙個種類的,或者說是異質的。比如我們有乙個分類問題,對訓練集採用支援向量機個體學習器,邏輯回歸個體學習器和樸素貝葉斯個體學習器來學習,再通過某種結合策略來確定最終的分類強學習器。

目前來說,同質個體學習器的應用是最廣泛的,一般我們常說的整合學習的方法都是指的同質個體學習器。而同質個體學習器使用最多的模型是cart決策樹和神經網路。同質個體學習器按照個體學習器之間是否存在依賴關係可以分為兩類,第乙個是個體學習器之間存在強依賴關係,一系列個體學習器基本都需要序列生成,代表演算法是boosting系列演算法,第二個是個體學習器之間不存在強依賴關係,一系列個體學習器可以並行生成,代表演算法是bagging和隨機森林(random forest)系列演算法。

整合策略有投票法,平均法,學習法等等。

1.bagging

bagging的個體弱學習器的訓練集是通過隨機取樣得到的。通過t次的隨機取樣,我們就可以得到t個取樣集,對於這t個取樣集,我們可以分別獨立的訓練出t個弱學習器,再對這t個弱學習器通過集合策略(一般對於分類問題整合策略選用投票法,對於回歸問題整合策略選擇平均法)來得到最終的強學習器(具有代表性的bagging思想的整合學習模型是隨機森林(rf))。

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

2.boosting

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

3.stacking(模型融合)

詳細解析可以參考:

如何做

假設弱學習器為(a1,a2,a3)強學習器為b,對訓練資料進行五折交叉,以弱學習器a1為例(對應上圖上面部分的model1),五折交叉對應五次的model1,每次通過上圖藍色的4份learn訓練模型,通過訓練出的模型**橙色的predict驗證集部分,得到結果predictions(維度記為[v1,1]),對五次交叉獲得的predictions進行連線組成新的資料(維度記為[v1*5,1]),同時資料集整體記為p1.同時沒個fold訓練出模型之後還需要對上圖綠色的測試集進行**得到的結果(維度記為[t1,1])五折則結果的維度為[t1*5,1],然後對資料取平均得到的資料維度記為[at1,1],資料整體記住t1.

對於弱學習器a2,a3同樣如此,a2能夠獲得的資料維度記為[v2*5,1]),同時資料集整體記為p2,以及[at2,1],資料整體記住t2,a3能夠獲得的資料維度記為[v3*5,1]),同時資料集整體記為p3,以及[at3,1],資料整體記住t3.對p1,p2,p3組合獲得資料維度[v,3]作為強學習器b的訓練資料,t1,t2,t3組合獲得資料維度[at,3]作為強學習器的驗證資料。

一般來說,乙個好的融合的子模型應該符合以下兩個假設:

1)準確性(accuracy):大部分子模型要能對最終輸出有所幫助,而不是幫倒忙,應該至少比隨機猜測更準確

2)多樣性(diversity)

於是我們想要同時提高「準確性」和「多樣性」,但很快就發現它們是此消彼長、互相制約的關係。

先不考慮準確性問題,僅對多樣性這方面進行考慮,可以通過如下這些方法提高多樣性:

1)選用不同型別的分類器

,在整個x上進行訓練。此時的模型的多樣性取決於子模型對於資料不同的表達能力

2)選用同型別的分類器,但使用不同的引數

此時模型的多樣性取決於「不同超引數在同一模型上的差異」所決定

3)選用相同的分類器,但在不同的訓練集上進行訓練

此時的差異性**於資料的差異性

4)使用相同的分類器,但在不同特徵上進行訓練

同理,此時的多樣性**於資料的差異性

我們因此發現,構造子模型就已經非常複雜了

,融合模型有無數種組合方式,沒有唯一正確的方法

融合的底線就是盡量保持「準確性」和「多樣性」間的平衡因此我們特別注意,手動融合模型時一般很少構造大量的弱分類器,而是精挑細選少量的強模型進行融合。手動構造融合模型時,建議優先考慮準確性,再考慮多樣性

。對於模型融合而言,子模型的選擇尤為重要,選擇子模型時應以準確度為首要,以多樣性為次要。同時需要注意的是,子模型的輸出不一定在同乙個取值範圍內,為了更好的進行融合,應該把各個模型的取值控制在相同的範圍之內。

4.stacking的輸出層為什麼一般用logistic回歸的效果比較好?

stacking的有效性主要來自於特徵抽取,第一層已經通過不同的模型進行了特徵的抽取,把這些抽取的特徵作為新的輸入,即為

已經使用了複雜的非線性變換,因此在輸出層不需要複雜的分類器

。同時這也是在stacking中第二層資料中的特徵中不該包括原始特徵

的原因,都是為了避免過擬合現象的發生。

因此,stacking的輸出層不需要過分複雜的函式,用邏輯回歸還有額外的好處:

1)配合正則化還可以進一步防止過擬合

2)邏輯回歸的輸出結果還可被理解為概率

5.stacking和神經網路

具體參考:非常贊的分析,多思考)

stacking一般來說,就是訓練乙個多層(一般是兩層)的學習器結構,第一層(也叫學習層)用n個異質分類器或者n個同質分類器(這時要保證特徵不同或者訓練資料不同)將得到**結果合併為新的特徵集,並作為下一層分類器的輸入。

stacking不需要多層一般兩層就好,因為層數過多會帶來更嚴重的過擬合問題,那為什麼

在stacking中堆多幾層,效果提公升不明顯,或由於過擬合而效果下降呢?專欄的博主認為原因是,stacking中的表示,不是分布表示。而深度起作用的前提是分布表示,所以堆多層不好。

第一層分類器的數量對於特徵學習應該有所幫助,經驗角度看越多的基分類器越好。即使有所重複和高依賴性,我們依然可以通過特徵選擇來處理,問題不大。

在stacking中,通過第一層的多個學習器後,有效的特徵被學習出來了。從這個角度來看,stacking的第一層就是特徵抽取的過程。

stacking的缺點也非常明顯,stacking往往面臨很大的運算開銷,在**時需要執行多個模型。

別的非常贊的想法:

stacking和神經網路都屬於表示學習(表示學習指的是模型從原始資料中自動抽取有效特徵的過程)

stacking中的第一層可以等價於神經網路中的前 n-1層,而stacking中的最終分類層可以模擬於神經網路中最後的輸出層。不同點在於,stacking中不同的分類器通過異質來體現對於不同特徵的表示,神經網路是從同質到異質的過程且有分布式表示的特點(distributed representation)。stacking中應該也有分布式的特點,主要表現在多個分類器的結果並非完全不同,而有很大程度的相同之處。

stacking的第一層與神經網路的所有隱藏層都

是乙個高度複雜的非線性特徵轉換器,樣本的表示經過這個變換後,得到了新的表示

更好的表示,即線性可分。這樣stacking的第二層與神經網路的輸出層使用簡單模型就足夠了。

不同之處:

stacking需要寬度,深度學習不需要

深度學習需要深度,而stacking不需要

我覺得stacking和深度學習有個區別,深度學習層與層之間梯度是能傳回去的,所以所有層之間會「彼此協調」,stacking每層之間並沒有之間的關聯,訓練後面的一層不會改變前面一層的權重值。

神經網路相比於stacking的優勢,神經網路能夠通過遷移學習應用到先驗知識。

機器學習之整合學習

整合學習 ensemble learning 通過構建並結合多個弱學習器來完成學習任務。一般來說整合學習可以分為三大類 bagging又叫做自舉匯聚法,思想是 常見的推廣演算法有 extra tree是隨機森林的變種,原理和隨機森林一樣,區別如下 主要用於異常點檢測 在隨機取樣的過程中,一般只需要少...

機器學習演算法之整合學習

在機器學習問題中,對於乙個複雜的任務來說,能否將很多的機器學習演算法組合在一起,這樣計算出來的結果會不會比使用單一的演算法效能更好?這樣的思路就是整合學習方法。三個臭皮匠,頂個諸葛亮。實際操作中,整合學習把大大小小的多種演算法融合在一起,共同協作來解決乙個問題。這些演算法可以是不同的演算法,也可以是...

機器學習之整合學習(二)

1.隨機森林 rf rf是對bagging的進化版,首先都是有放回的進行取樣,獲得n個訓練集從而訓練n個弱分類器,但是rf在隨機選取的訓練集的基礎上對於特徵的選擇也是隨機的,隨機的選取一部分的特徵進行弱分類器的構建,同時在劃分建樹的過程中也是從這些隨機選取的部分特徵中選擇最優的特徵。使用的為同質個體...