天天看點

adaboost算法_adaboost算法原理學習筆記

adaboost算法是boosting系列算法的一種,boosting系列算法是串行生成多個弱學習器,并根據結合政策得到強學習器。Adaboost算法能用于分類和回歸,本文隻介紹分類算法。

上篇文章講到了boosting系列的算法思想,adaboost算法是它的具體實作。

boosting系列算法都需要解決下面幾個問題:

1)如何計算學習誤差率e

2)如何得到弱學習器的系數α

3)每次疊代過程中,如何更新樣本權重D

4)采用何種結合政策

本文介紹的adaboosting算法回答了上述的4個問題。

1. Adaboosting算法步驟

假設訓練集樣本為:

adaboost算法_adaboost算法原理學習筆記

第k輪疊代的資料集樣本權重為:

adaboost算法_adaboost算法原理學習筆記

初始化樣本權重為:

adaboost算法_adaboost算法原理學習筆記

下面基于boosting系列算法的4個基本問題來介紹Adaboost算法

1) 學習率誤差的計算

adaboost算法_adaboost算法原理學習筆記

其中

adaboost算法_adaboost算法原理學習筆記

為第k輪弱學習器的輸出。

2)如何得到弱學習器的系數α

adaboost算法_adaboost算法原理學習筆記
adaboost算法_adaboost算法原理學習筆記

表示第k輪疊代的弱學習器的系數。

3)如何更新樣本權重D

adaboost算法_adaboost算法原理學習筆記
adaboost算法_adaboost算法原理學習筆記

表示第k輪疊代過程中,第i個樣本的權重。

4)采用何種結合政策

Adaboost算法采用權重平均的方法,并通過sign函數得到最終的分類結果:

adaboost算法_adaboost算法原理學習筆記

2. Adaboost算法的幾個知識要點

Adaboost算法一系列弱學習器的權重平均,暫不考慮sign函數(因為不影響算法的思想),有:

adaboost算法_adaboost算法原理學習筆記

由上式可知,Adaboost算法是一種加法模型。

adaboost算法_adaboost算法原理學習筆記

表示為第k輪疊代後的強學習器,由加法模型可得:

adaboost算法_adaboost算法原理學習筆記

Adaboost算法的損失函數為指數函數,即:

adaboost算法_adaboost算法原理學習筆記

根據本節介紹的這幾個知識點,可反推出樣本權重的更新公式和弱學習器的權重系數,具體請參考https://www.cnblogs.com/pinard/p/6133937.html。

Adaboost的優點在于簡單,且模型不易過拟合。缺點是若資料集包含了異常樣本,則異常樣本在疊代過程中會獲得較高的權重,導緻模型分類性能較差。

歡迎掃碼關注:

adaboost算法_adaboost算法原理學習筆記

繼續閱讀