1. 程式人生 > >機器學習與深度學習系列連載: 第一部分 機器學習(十二)整合學習(Ensemble)

機器學習與深度學習系列連載: 第一部分 機器學習(十二)整合學習(Ensemble)

整合學習(Ensemble)

1. Bagging

我們考慮當結果的 variance 很大,如果降低 variance。
我們可以考慮“平行宇宙”,不同的training set 中生成不同的模型,然後做平均或者voting。
在這裡插入圖片描述在這裡插入圖片描述

2. Decision Tree(Review)

我們複習上一節的決策樹的概念。
在這裡插入圖片描述
來一個有意思的實驗,分辨出漫畫人物
在這裡插入圖片描述
當單棵決策樹的深度為20的時候,得到的結果已經很不錯了,但是很有可能會出現一個結果:overfitting。 如果解決overfitting呢?我們看隨機森林

3. 隨機森林(Random Forest)

Decision tree 很容易在訓練資料中誤差為0,但是產生overfitting。
Random Forest 就是 bagging of decision tree ,是眾多決策樹的集合。在這裡插入圖片描述


我們使用沒有選擇的資料做validation資料
在這裡插入圖片描述

4. Boosting

對於Boosting 我們有:

  • 當我們使用機器學習演算法得出的分類器的錯誤率在訓練資料中小於50%
  • 我們使用Boosting 可以讓最後的錯誤結果達到0%
    Boosting 的框架結構:
    • 首先獲得分類器f1(x)f_{1}(x)
    • 找到另一個分類器f2(x)f_{2}(x) 來幫助f1(x)f_{1}(x)
      - 但是, 如果f2(x)f_{2}(x)f1(x)f_{1}(x)相似,對於結果的幫助不太大
      - 如果我們想讓f2(x)f_{2}(x)成為f
      1(x)f_{1}(x)
      的補充(我們將怎樣去做)
    • 找到第二個分類器f2(x)f_{2}(x)
    • … 最後整合所有的分類器
    • 所有的分類學習都是序列的

1)怎樣獲取不同的分類器?

  • 在不同的訓練資料集中進行訓練
  • 獲得不同訓練資料集的方法
    - 重新抽樣資料集
    - 給資料集的資料分配權重
    - 在實作中,僅僅需要修改cost 函式
    在這裡插入圖片描述

(2) Adaboost的思路(Idea of Adaboost)
思路: 分類器f1(x)f_{1}(x)的錯誤分類小於50%,我們調整訓練資料權重,是的f2(x)f_{2}(x) 中的訓練資料權重,在f1(x)f_{1}(x)

出錯的地方提高,f1(x)f_{1}(x)正確的地方降低。

在這裡插入圖片描述
究竟訓練資料的權重增大或者降低多少呢???
在這裡插入圖片描述
推導過程:
在這裡插入圖片描述
(2) Adaboost演算法
在這裡插入圖片描述
在這裡插入圖片描述
舉例說明:
在這裡插入圖片描述
在這裡插入圖片描述

5.General Formulation of Boosting

在這裡插入圖片描述

6.Stacking

Voting
在這裡插入圖片描述
在這裡插入圖片描述