Adaboost演算法及分析

2021-07-25 19:10:28 字數 2046 閱讀 6508

adaboost演算法步驟:

adaboost是一種比較有特點的演算法,可以總結如下:

1)每次迭代改變的是樣本的分布,而不是重複取樣(re weight)

2)樣本分佈的改變取決於樣本是否被正確分類

總是分類正確的樣本權值低

總是分類錯誤的樣本權值高(通常是邊界附近的樣本)

3)最終的結果是弱分類器的加權組合

權值表示該弱分類器的效能

簡單來說,adaboost有很多優點:

1)adaboost是一種有很高精度的分類器

2)可以使用各種方法構建子分類器,adaboost演算法提供的是框架

3)當使用簡單分類器時,計算出的結果是可以理解的。而且弱分類器構造極其簡單

4)簡單,不用做特徵篩選

5)不用擔心overfitting!

總之:adaboost是簡單,有效。

adaboost例子

第一步

根據分類的正確率,得到乙個新的樣本分佈d2­,乙個子分類器h1,其中劃圈的樣本表示被分錯的。在右邊的途中,比較大的「+」表示對該樣本做了加權。

第二步:

根據分類的正確率,得到乙個新的樣本分佈d3,乙個子分類器h2

第三步:

得到乙個子分類器h3

整合所有子分類器:

因此可以得到整合的結果,從結果中看,即使簡單的分類器,組合起來也能獲得很好的分類效果,在例子中所有的。

adaboost演算法的某些特性是非常好的,此處,主要介紹adaboost的兩個特性。一是訓練的錯誤率上界,隨著迭代次數的增加,會逐漸下降;二是adaboost演算法即使訓練次數很多,也不會出現過擬合的問題。

下面主要通過證明過程和圖表來描述這兩個特性:

1)錯誤率上界下降的特性(推導)

可以看出,隨著迭代次數的增加,訓練誤差率上界以指數形式下降。

2)不會出現過擬合現象

通常,過擬合現象指的是下圖描述的這種現象,即隨著模型訓練誤差的下降,實際上,模型的泛化誤差(測試誤差)在上公升。橫軸表示迭代的次數,縱軸表示訓練誤差的值。

而實際上,並沒有觀察到adaboost演算法出現這樣的情況,即當訓練誤差小到一定程度以後,繼續訓練,泛化誤差仍然不會增加。

對這種現象的解釋,要借助margin的概念,其中margin表示如下:

通過引入margin的概念,我們可以觀察到下圖所出現的現象:

從圖上左邊的子圖可以看到,隨著訓練次數的增加,test的誤差率並沒有公升高,同時對應著右邊的子圖可以看到,隨著訓練次數的增加,margin一直在增加。這就是說,在訓練誤差下降到一定程度以後,更多的訓練,會增加分類器的分類margin,這個過程也能夠防止測試誤差的上公升。

AdaBoost演算法原理

每個haar特徵對應看乙個弱分類器,但並不是任伺乙個haar特徵都能較好的描述人臉灰度分布的某一特點,如何從大量的haar特徵中挑選出最優的haar特徵並製作成分類器用於人臉檢測,這是adaboost演算法訓練過程所要解決的關鍵問題。paul viola和michael jones於2001年將ad...

AdaBoost演算法詳解

adaboost 演算法介紹 adaboost演算法本身是通過改變資料分布來實現的,它根據每次訓練集之中每個樣本的分類是否正確,以及上次的總體分類的準確率,來修改每個樣本的權值。將修改過權值的新資料集送給下層分類器進行訓練,最後將每次得到的分類器最後融合起來,作為最後的決策分類器。adaboost演...

AdaBoost演算法梳理

在boosting family中,最具代表性的實現就是adaboost。adaboost是英文 adaptive boosting 自適應增強 的縮寫,它的自適應在於 前乙個基本分類器被錯誤分類的樣本的權值會增大,而正確分類的樣本的權值會減小,並再次用來訓練下乙個基本分類器。同時,在每一輪迭代中,...