一. 什麼是元演算法(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.策...