AdaBoost演算法梳理

2021-09-17 21:24:11 字數 1514 閱讀 2935

在boosting family中,最具代表性的實現就是adaboost。

adaboost是英文"adaptive boosting"(自適應增強)的縮寫,它的自適應在於:前乙個基本分類器被錯誤分類的樣本的權值會增大,而正確分類的樣本的權值會減小,並再次用來訓練下乙個基本分類器。同時,在每一輪迭代中,加入乙個新的弱分類器,直到達到某個預定的足夠小的錯誤率或達到預先指定的最大迭代次數才確定最終的強分類器。

輸入: 訓練資料集t(二分類問題);弱學習演算法;

輸出:最終分類器g(x)

(1)初始化訓練資料的權值分布。第一步假設具有相同的權值分布,即:

(2) 反覆學習基本分類器,在每一輪m=1,2,…,m,迴圈執行:

(a)使用當前分布dm加權的訓練資料集,學習基本分類器gm(x);

(b)計算基本分類器gm(x)在加權訓練資料集上的分類誤差率:

(c)計算基本分類器gm(x)的係數:

(這裡log應為ln,自然對數),這裡a表示重要性,有數學定義可知,a隨著e的減小而增大,說明分類誤差率越小的分類器在最終分類器中的權重越大。

(d)更新訓練資料集的權值分布

其中,zm是規範化因子:

上式更新權重wm+1還可以寫成以下形式:

由此可知,被誤判的樣本權值在下一輪訓練中得以增大,而正確分類的權重減小。

adaboost可以理解為模型為加法模型、損失函式為指數函式、學習演算法為前向分步演算法的二類分類學習方法。

前向分布演算法

前向分步演算法總體思路:學習的是加法模型,從前往後,每一步只學習乙個基函式及其係數,逐步逼近優化目標函式式。

這樣就把同時求解從m=1到m的所有引數問題簡化為逐次求解每哥迴圈的引數問題。

演算法具體步驟實現:

再次觀察adaboost分類器形式可以發現,它就是前向分步演算法的乙個特例。

利用adaboost演算法實現二分類的例項:

adaboost演算法原理分析和例項+**(簡明易懂)

adaboost是boosting方法中最流行的一種演算法。它是以弱分類器作為基礎分類器,輸入資料之後,通過加權向量進行加權,;在每一輪的迭代過程中都會基於弱分類器的加權錯誤率,更新權重向量,從而進行下一次迭代。並且會在每一輪迭代中計算出該弱分類器的係數,該係數的大小將決定該弱分類器在最終**分類中的重要程度。顯然,這兩點的結合是adaboost演算法的優勢所在。

優點:泛化錯誤率低,容易實現,可以應用在大部分分類器上,無引數調整

缺點:對離散資料點敏感

Adaboost流程梳理

一般地說,adaboost中每個弱分類器都是單層決策樹。基本思想如下 第一步使得所有樣本點等權重,尋找最優的判定閾值 1 theta 1 1 和分類方法 方向,也即大於該閾值為 1還是小於該閾值為 1 在該單層決策樹下得到誤差 1 epsilon 1 1 使用 1 epsilon 1 1 可以計算出...

AdaBoost演算法原理

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

AdaBoost演算法詳解

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