天池實戰-街景字符編碼識別-task5模型集成


寫在前面的話

前四節我們已經完成了模型的建立的訓練,分別是:

數據的預處理和賽題的相關背景:天池實戰-街景字符編碼識別-task1賽題理解

通過Pytorch 批量讀取圖像數據並進行圖像預處理:天池實戰-街景字符編碼識別-task2數據預處理

通過CNN模型完成字符識別功能以及如何在Pytorch下進行模型的建立:天池實戰-街景字符編碼識別-task3模型建立

模型的訓練和驗證:天池實戰-街景字符編碼識別-task4模型的訓練和驗證

這節主要介紹模型集成的相關內容



先從集成方法開始

集成方法(ensemble method)通過組合多個學習器來完成學習任務。

通過集成方法,可以將多個弱可學習器組合成一個強可學習分類器,因此集成學習的泛化能力一般比單一的基分類器要好

集成方法主要包括Bagging、Boosting和stacking,都是將已有的分類或迴歸算法通過一定方式組合起來,形成一個更加強大的分類。更準確的說這是一種分類算法的組裝方法,即將弱分類器組裝成強分類器的方法。


1. Bagging

Bagging法也稱爲投票法,有放回地對訓練集進行採樣,bagging法的主要流程是:

  • 從原始樣本集中抽取訓練集。

    每輪從原始樣本集中使用Bootstraping的方法抽取n個訓練樣本(在訓練集中,有些樣本可能被多次抽取到,而有些樣本可能一次都沒有被抽中)。共進行k輪抽取,得到k個訓練集。(此時的k個訓練集之間是相互獨立的)

  • 每次使用一個訓練集得到一個模型,k個訓練集共得到k個模型。

    (注:這裏可以根據具體問題採用不同的分類或迴歸方法,如決策樹、感知機等)

  • 將k個模型採用投票的方式得到分類結果。

需要注意的是,在分類問題中,需要將k個模型採用投票的方式得到分類結果;對於迴歸問題,則直接計算k個模型的均值作爲最後的結果,如圖所示:

文章首發:公衆號『知秋小一』

多說一嘴,投票的方式就是少數服從多數的方式


2. Boosting

Boosting(再學習法)的思路則是採用重賦權法迭代地訓練基分類器,主要流程是:

  • 所有樣本賦予初始權重
  • 迭代訓練,並在上一次訓練的基礎上進行改進提升,增大分類錯誤樣本的權重
  • 迭代後的最終的模型就是目標分類模型

再學習法其實就是在上一輪的基礎上再次進行訓練,直到滿足終止條件,如圖所示:

文章首發:公衆號『知秋小一』


3. stacking

在stacking 算法中,訓練一個多層(一般是兩層)的學習器結構,第一層(也叫學習層)用n個不同的分類器(或者不同模型的參數)將得到預測結果合併爲新的特徵集,並作爲下一層分類器的輸入。

比如在前面的例子中,我們想要預測明天是否會下雨,我們可以通過相關數據利用knn、決策樹、svm等將進行第一層的訓練,比如我們訓練出了十個分類器。然後通過stacking的方法將這十個分類器的結果作爲了第二層訓練器的數據,通過第二層的輸出訓練器得到了最終的預測結果。

stacking流程:

  • 通過樣本進行訓練,得到個體學習器,也就是初級學習器
  • 使用訓練出來的個體學習器得到預測的結果,這個預測結果當做次級學習器的訓練集
  • 用初級學習器預測的結果訓練出次級學習器,得到最終的訓練模型。

一般使用LR作爲第二層的模型進行建模預測


3. Bagging、Boosting二者之間的區別

樣本選擇上

  • Bagging:訓練集是從原始集中有放回的選取,從原始集中選出的各輪訓練集之間是獨立的
  • Boosting:每一輪的訓練集不變,只是訓練集中每個樣本在分類器中的權重發生變化。而權值是根據上一輪的分類結果進行調整

樣例權重

  • Bagging:使用均勻取樣,每個樣本的權重相等
  • Boosting:根據錯誤率不斷調整樣本的權值,錯誤率越大則權重越大

預測函數

  • Bagging:所有預測函數的權重相等
  • Boosting:每個弱分類器都有相應的權重,對於分類誤差小的分類器會有更大的權重

並行計算

  • Bagging:各個預測函數可以並行生成
  • Boosting:各個預測函數只能順序生成,因爲後一個模型參數需要前一輪模型的結果

集成算法總結

兩種方法都是把若干個分類器整合爲一個分類器的方法,只是整合的方式不一樣,最終得到不一樣的效果

將不同的分類算法套入到算法框架中一定程度會提高了分類效果,但是也增大了計算量

常見的決策樹結合算法:

  • Bagging + 決策樹 = 隨機森林
  • Adaboost + 決策樹 = 提升樹
  • Gradient Boosting + 決策樹 = GBDT



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章