機器學習演算法6 AdaBoost元演算法

2021-07-22 12:06:59 字數 3185 閱讀 9663

一. 什麼是元演算法(meta-algorithm)

元演算法就是對其他演算法進行組合的一種方式。也稱為整合演算法(ensemble method),例如bagging方法和boosting 方

法。它可以是不同演算法的整合;也

可以是同一演算法在不同設定下的整合;還可以是資料集不同部分分配給不同分類 器

之後的整合。

二. boosting方法與bagging方法的區別

bagging方法:也稱為自舉匯聚法(bootstrap aggregating)。是從原始資料集中選擇s次後得到s個新資料集的一 種

技術。這s個資料集的大小和原始資料集的大小一樣。每個資料集都是在原始資料集上隨機選擇s次並替換得到的。 因

此,新的資料集可能有重複的樣本,原始資料集中的某些樣本也可能不在新的資料集中。s個

資料集經訓練最後會 得

到s個分類器,應用這s個分類器對測試樣本進行分類,得到s個結果,選擇投票結果中最多的類別作為最後的分類 結

果。 boosting方法:與bagging方法很類似,說使用的多個分類器的型別是一樣的。bagging方法中,不同的分類器是 通

過序列訓練得到的,每個分類器都根據已訓練出的分類器的效能來進行訓練。boosting是通過集中關注被已有分類

器錯分的那些資料來獲得新的分類器。

另外,boosting分類結果是基於所有分類器的加權求和結果的,而bagging方法中的分類器權重是相等的,

boosting方法的權重並不相等,每個權重代表的是其對應分類器在上一輪迭代中的成功度。

boosting方法有很多版

本,adaboost是其中乙個比較優秀的版本。

三. adaboosting演算法(adaptive boosting)

自適應boosting,對訓練資料中的每乙個樣本賦予乙個權重,這些權重構成了向量d。一開始,這些權重值被初

始化為相等值。首先,在訓練資料上訓練出乙個弱分類器並計算該分類器的錯誤率,然後在同一資料集上再次訓練弱

分類器。在第二次訓練分類器時,將會重新調整每個樣本的權重,其中第一次分對的樣本的權重將會降低,而第一次

分錯的樣本權重將會提高。為了從所有的弱分類器中得到最終的分類結果,adaboost為每個分類器都分配了乙個權重

值為alpha,這些alpha值是基於每個弱分類器的錯誤率進行計算的。其中,錯誤率為:

r = 未正確分類的樣本數目 / 所有樣本數目

而alpha的計算公式為:

計算出alpha值後,可以對權重向量d進行更新,更新規則為:

樣本被正確分類,那麼權重值更改為:

樣本未被正確分類,那麼權重值更改為:

adaboosting會不斷重複訓練和調整上述權重的過程,直至訓練錯誤率為0或者弱分類器的數目達到使用者指定值為止。

四.非均衡分類

監督學習中,使用錯誤率(測試樣本中錯分的樣例比例)來衡量分類器任務的成功程度,往往

掩蓋了樣例如何被

錯分的事實。而通常的分類問題上,往往存在非均衡分類,即做出某種決策導致的代價並不一樣。因此,我們

還可以

採用以下

指標來衡量分類器的效能。

1.混淆矩陣(confusion matrix)可以幫助人們更好地了解分類中的錯誤,而錯誤率往往掩蓋了

樣例如何被錯分的 事

實。 2.幾個概念:

若乙個正例被判為正例,則認為產生了乙個真正例(true positive, tp, 也成真陽);如果乙個反例正 確

地被判為反例,則認為產生了乙個真反例(true negative, tn, 也成為真陰);另外兩個分別被稱為偽反例(false 

negative, 也成為假陰),和偽正例(false positive, fp, 也成為假陽)。

因此,在分類中,當某個類別的重要性高於其他類別時,我們可以利用上述定義來定義出多個比錯誤率更好的新

指標。(1)正確率(precision):它等於tp/(tp+fp),給出的是**為正例的樣本中的真正正例的比例。(2)召回率

(recall),它等於tp/(tp+fn),給出的是**為正例的真實正例佔所有真實正例的比例。

3.roc曲線(roc curve):

roc曲線代表接受者操作特徵(receiver operating characteristic)。其橫軸偽正例的比例(fp/(fp+tn))。

而縱軸是真正例的比例(tp/(tp+fn))。roc曲線給出的是當 閾值變化時假陽例和真陰率的變化情況。對不同roc曲

線進行比較的乙個指標是曲線下的面積(area under the curse:auc)。auc給出的分類器的平均效能值,當然並不能

完全代替整條曲線的觀察。乙個完美分類器的auc為1.0,而隨機才測的auc為0.5。

4.代價敏感的學習(cost-sensitive learning)

即給出做出任意決策的代價表,通過計算總代價最小來選擇分類器型別。

在分類演算法中,很多可以引入代價資訊。在adaboost中,可以基於代價函式來調整錯誤權重向量d。在樸素貝葉

斯中,可以選擇具有最小期望代價而不是最大概率的類別作為最後的結果。在svm中,可以在代價函式中對於不同的

類別選擇不同的引數c。

5.過抽樣(unsersampling)與欠抽樣(oversampling)

為了針對非均衡問題來調節分類器,可以對分類器的訓練資料進行改造。因此,可以通過欠抽樣和過抽樣實現。

過抽樣意味複製樣例,而欠抽樣意味著刪除樣例。通常的一種策略就是使用反例類別的欠抽樣與正例類別的過抽樣

相結合的方法。

另外,要對正例樣例進行過抽樣,我們可以複製已有樣例或者加入與已知樣例相似的點。一種是加入已有資料點

的插值點,但是這種做法會導致過擬合問題。

五. 總結

本章介紹了boosting方法中最為流行的乙個稱為adaboosting的演算法。adaboosting以弱學習器作為基礎分類器,

並且輸入資料,使其通過權重向量進行加權。在第一次迭代當中,所有資料都等權重。但是在後續的迭代中,前次迭

代中分錯的資料的權重會增大。這種針對錯誤的調節能力正是adaboost的長處。

以單層決策樹作為弱學習器構建了adaboost分類器。實際上,adaboosting函式可以應用於任意分類器,只要該

分類器能夠處理加權資料即可。adaboost演算法十分強大,它能夠快速處理其他分類器很難處理的資料集。

機器學習演算法 adaboost

adaboost 1.簡述原理 2.例項 3.演算法流程和公式推導 4.優點和缺點 5.問題 adaboost 1.簡述原理 形式 弱學習器學習方法 弱學習器權值 adaboost就是加法模型 前向分步演算法 指數損失函式 任意基學習器演算法 boosting框架 指數損失函式 任意基學習器演算法 ...

機器學習 演算法 Adaboost

寫在前面 說到adaboost,公式與 網上到處都有,統計學習方法 裡面有詳細的公式原理,github上面有很多例項,那麼為什麼還要寫這篇文章呢?希望從一種更容易理解的角度,來為大家呈現adaboost演算法的很多關鍵的細節。基本原理 adaboost演算法基本原理就是將多個弱分類器 弱分類器一般選...

機器學習演算法 之Adaboost

統計學習方法 對adaboost演算法進行了相當精彩的介紹,尤其是後面證明adaboost演算法是前向分布加法演算法的特例,這就將adaboost演算法拉入到 統計學習 模型 策略 演算法這一框架中。1.模型 加法模型 adaboost演算法期望用一系列不同權重的基函式的和來構成最終的分類器。2.策...