集成學(xué)習(xí)—AdaBoost

集成學(xué)習(xí)—AdaBoost


1球昨、Boosting方法的基本思想:

在集成學(xué)習(xí)的“弱分類器集成”領(lǐng)域或链,除了降低方差來降低整體泛化誤差的裝袋法Bagging端铛,還有專注于降低整體偏差來降低泛化誤差的提升法Boosting尉剩。相比起操作簡單间坐、大道至簡的Bagging算法面粮,Boosting算法在操作和原理上的難度都更大少孝,但由于專注于偏差降低,Boosting算法們在模型效果方面的突出表現(xiàn)制霸整個(gè)弱分類器集成的領(lǐng)域熬苍。當(dāng)代知名的Boosting算法當(dāng)中稍走,Xgboost,LightGBM與Catboost都是機(jī)器學(xué)習(xí)領(lǐng)域最強(qiáng)大的強(qiáng)學(xué)習(xí)器柴底,Boosting毫無疑問是當(dāng)代機(jī)器學(xué)習(xí)領(lǐng)域最具統(tǒng)治力的算法領(lǐng)域婿脸。

在隨機(jī)森林算法中,一次性建立多個(gè)平行且獨(dú)立的弱評估器柄驻,然后以bagging的方法來綜合各弱評估器的預(yù)測值狐树,最終輸出模型最終的預(yù)測值。而boosting集成算法凿歼,逐一建立多個(gè)弱評估器褪迟,并且下一個(gè)弱評估器的建立方式依賴于上一個(gè)弱評估器的評估結(jié)果,最終綜合各個(gè)弱評估器的結(jié)果進(jìn)行輸出答憔,因此boosting算法中的弱評估器不僅不是相互獨(dú)立的味赃,而是強(qiáng)相關(guān)的,同時(shí)boosting算法不是依賴弱評估器之間獨(dú)立性來提高模型的泛化能力虐拓,而是通過降低模型的偏差來提高模型的泛化能力心俗。這是Boosting與Bagging的一大差別。

與Bagging算法中統(tǒng)一的回歸求平均、分類少數(shù)服從多數(shù)的輸出不同城榛,Boosting算法在結(jié)果輸出方面表現(xiàn)得十分多樣揪利。早期的Boosting算法的輸出一般是最后一個(gè)弱評估器的輸出,當(dāng)代Boosting算法的輸出都會考慮整個(gè)集成模型中全部的弱評估器狠持。一般來說疟位,每個(gè)Boosting算法會其以獨(dú)特的規(guī)則自定義集成輸出的具體形式,但對大部分算法而言喘垂,集成算法的輸出結(jié)果往往是關(guān)于弱評估器的某種結(jié)果的加權(quán)平均甜刻,其中權(quán)重的求解是boosting領(lǐng)域中非常關(guān)鍵的步驟。

1.1正勒、Boosting算法的基本元素與基本流程:

基于上面所明確的“降低偏差”得院、“逐一建樹”、以及“以獨(dú)特規(guī)則輸出結(jié)果”的三大特色章贞,我們可以確立任意boosting算法的三大基本元素以及boosting算法自適應(yīng)建模的基本流程:

損失函數(shù)??(??,??):用以衡量模型預(yù)測結(jié)果與真實(shí)結(jié)果的差異

弱評估器??(??):(一般為)決策樹祥绞,不同的boosting算法使用不同的建樹過程

綜合集成結(jié)果??(??):即集成算法具體如何輸出集成結(jié)果

這三大元素將會貫穿所有我們即將學(xué)習(xí)的boosting算法,我們會發(fā)現(xiàn)幾乎所有boosting算法的原理都圍繞這三大元素構(gòu)建鸭限。在此三大要素基礎(chǔ)上蜕径,所有boosting算法都遵循以下流程進(jìn)行建模:

1.2、sklearn中的boosting算法:

在sklearn當(dāng)中里覆,我們可以接觸到數(shù)個(gè)Boosting集成算法丧荐,包括Boosting入門算法AdaBoost,性能最穩(wěn)定喧枷、奠定了整個(gè)Boosting效果基礎(chǔ)的梯度提升樹GBDT(Gradient Boosting Decision Tree)虹统,以及近幾年才逐漸被驗(yàn)證有效的直方提升樹(Hist Gradient Boosting Tree)。

在過去5年之間隧甚,除了sklearn车荔,研究者們還創(chuàng)造了大量基于GBDT進(jìn)行改造的提升類算法,這些算法大多需要從第三方庫進(jìn)行調(diào)用戚扳,例如極限提升樹XGBoost(Extreme Gradient Boosting Tree)忧便,輕量梯度提升樹LightGBM(Light Gradiant Boosting Machine),以及離散提升樹CatBoost(Categorial Boosting Tree)帽借。

2珠增、AdaBoost:

AdaBoost(Adaptive Boosting,自適應(yīng)提升法)是當(dāng)代boosting領(lǐng)域的開山鼻祖砍艾,它雖然不是首個(gè)實(shí)踐boosting思想算法蒂教,卻是首個(gè)成功將boosting思想發(fā)揚(yáng)光大的算法。它的主要貢獻(xiàn)在于實(shí)現(xiàn)了兩個(gè)變化:

1脆荷、首次實(shí)現(xiàn)根據(jù)之前弱評估器的結(jié)果自適應(yīng)地影響后續(xù)建模過程

2凝垛、在Boosting算法中懊悯,首次實(shí)現(xiàn)考慮全部弱評估器結(jié)果的輸出方式

作為開山算法,AdaBoost的構(gòu)筑過程非常簡單:首先梦皮,在全樣本上建立一棵決策樹炭分,根據(jù)該決策樹預(yù)測的結(jié)果和損失函數(shù)值,增加被預(yù)測錯(cuò)誤的樣本在數(shù)據(jù)集中的樣本權(quán)重剑肯,并讓加權(quán)后的數(shù)據(jù)集被用于訓(xùn)練下一棵決策樹捧毛。這個(gè)過程相當(dāng)于有意地加重“難以被分類正確的樣本”的權(quán)重,同時(shí)降低“容易被分類正確的樣本”的權(quán)重让网,而將后續(xù)要建立的弱評估器的注意力引導(dǎo)到難以被分類正確的樣本上岖妄。


在該過程中,上一棵決策樹的的結(jié)果通過影響樣本權(quán)重寂祥、即影響數(shù)據(jù)分布來影響下一棵決策樹的建立,整個(gè)過程是自適應(yīng)的七兜。當(dāng)全部弱評估器都被建立后丸凭,集成算法的輸出??(??)等于所有弱評估器輸出值的加權(quán)平均,加權(quán)所用的權(quán)重也是在建樹過程中被自適應(yīng)地計(jì)算出來的腕铸。

需要注意的是惜犀,雖然最初的原理較為簡單,但近年來AdaBoost在已經(jīng)發(fā)展出多個(gè)升級的版本(比如狠裹,在建立每棵樹之前虽界,允許隨機(jī)抽樣特征,這使得Boosting中的決策樹行為更加接近Bagging中的決策樹)涛菠,而sklearn中使用了這些升級后的版本進(jìn)行實(shí)現(xiàn)莉御。

在sklearn中,AdaBoost既可以實(shí)現(xiàn)分類也可以實(shí)現(xiàn)回歸俗冻,我們使用如下兩個(gè)類來調(diào)用它們:

class?sklearn.ensemble.AdaBoostClassifier(base_estimator=None, *, n_estimators=50, learning_rate=1.0, algorithm='SAMME.R', random_state=None)

class?sklearn.ensemble.AdaBoostRegressor(base_estimator=None, *, n_estimators=50, learning_rate=1.0, loss='linear', random_state=None)

不難發(fā)現(xiàn)礁叔,AdaBoost的參數(shù)非常非常少,在調(diào)用AdaBoost時(shí)我們甚至無需理解AdaBoost的具體求解過程迄薄。同時(shí)琅关,ADB分類器與ADB回歸器的參數(shù)也高度一致。在課程當(dāng)中讥蔽,我們將重點(diǎn)Boosting算法獨(dú)有的參數(shù)涣易,以及ADB分類與ADB回歸中表現(xiàn)不一致的參數(shù)。

2.1冶伞、AdaBoost中的基本參數(shù)和損失函數(shù):

參數(shù)base_estimator新症,屬性base_estimator_與estimators_

base_estimator是規(guī)定AdaBoost中使用弱評估器的參數(shù)。與對弱評估器有嚴(yán)格要求的Bagging算法不同碰缔,boosting算法通過降低偏差來降低整體泛化誤差账劲,因此可以使用任意弱評估器,且這些弱評估器往往被假設(shè)成非常弱小的評估器。當(dāng)然了瀑焦,默認(rèn)的弱評估器還是決策樹腌且。在sklearn中,ADB分類器的默認(rèn)弱評估器是最大深度為1的“樹樁”榛瓮,ADB回歸器的默認(rèn)評估器是最大深度為3的“樹苗”铺董,弱評估器本身基本不具備判斷能力。而回歸器中樹深更深是因?yàn)閎oosting算法中回歸任務(wù)往往更加復(fù)雜禀晓。在傳統(tǒng)ADB理論當(dāng)中精续,一般認(rèn)為AdaBoost中的弱分類器為最大深度為1的樹樁,但現(xiàn)在我們也可以自定義某種弱評估器來進(jìn)行輸入粹懒。

當(dāng)模型建好之后重付,我們可以使用屬性base_estimator_來查看當(dāng)前弱評估器,同時(shí)也可以使用estimators_來查看當(dāng)前集成模型中所有弱評估器的情況凫乖。

參數(shù)learning_rate

在Boosting集成方法中确垫,集成算法的輸出??(??)往往都是多個(gè)弱評估器的輸出結(jié)果的加權(quán)平均結(jié)果。但??(??)并不是在所有樹建好之后才統(tǒng)一加權(quán)求解的帽芽,而是在算法逐漸建樹的過程當(dāng)中就隨著迭代不斷計(jì)算出來的删掀。例如,對于樣本????导街,集成算法當(dāng)中一共有??T棵樹(也就是參數(shù)n_estimators的取值)披泪,現(xiàn)在正在建立第??個(gè)弱評估器,則第??個(gè)弱評估器上????的結(jié)果可以表示為????(????)搬瑰。假設(shè)整個(gè)Boosting算法對樣本????輸出的結(jié)果為??(????)款票,則該結(jié)果一般可以被表示為t=1~t=T過程當(dāng)中,所有弱評估器結(jié)果的加權(quán)求和:

其中泽论,????為第t棵樹的權(quán)重星掰。對于第??次迭代來說妒御,則有:

在這個(gè)一般過程中熔吗,每次將本輪建好的決策樹加入之前的建樹結(jié)果時(shí)吆倦,可以在權(quán)重??前面增加參數(shù)??,表示為第t棵樹加入整體集成算法時(shí)的學(xué)習(xí)率抄瓦,對標(biāo)參數(shù)learning_rate潮瓶。


該學(xué)習(xí)率參數(shù)控制Boosting集成過程中??(????)的增長速度,是相當(dāng)關(guān)鍵的參數(shù)钙姊。當(dāng)學(xué)習(xí)率很大時(shí)毯辅,??(????)增長得更快,我們所需的n_estimators更少煞额,當(dāng)學(xué)習(xí)率較小時(shí)思恐,??(????)增長較慢沾谜,我們所需的n_estimators就更多,因此boosting算法往往會需要在n_estimators與learning_rate當(dāng)中做出權(quán)衡(以XGBoost算法為例)胀莹。

需要注意的是基跑,以上式子為boosting算法中計(jì)算方式的一般規(guī)則,并不是具體到AdaBoost或任意Boosting集成算法的具體公式描焰。

參數(shù)algorithm與loss

參數(shù)algorithm與loss是boosting算法中非常常見的媳否,分類器與回歸器展示出不同參數(shù)的情況。正如之前提到的荆秦,雖然AdaBoost算法的原理簡單篱竭,但是在近幾年已經(jīng)發(fā)展出了多種不同的算法實(shí)踐手段,而參數(shù)algorithm與loss正是用來控制算法實(shí)踐手段的關(guān)鍵參數(shù)步绸,其中algorithm控制具體的實(shí)踐算法掺逼,loss控制該實(shí)踐算法中所使用的具體損失函數(shù)。

algorithm

首先瓤介,參數(shù)algorithm是針對分類器設(shè)置的參數(shù)坪圾,其中備選項(xiàng)有"SAMME"與"SAMME.R"兩個(gè)字符串。這兩個(gè)字符串分別代表了兩種不同的惑朦、實(shí)現(xiàn)AdaBoost分類的手段:AdaBoost-SAMME與AdaBoost-SAMME.R。兩者在數(shù)學(xué)流程上的區(qū)別并不大漓概,只不過SAMME是基于算法輸出的具體分類結(jié)果(例如-1漾月,1,2)進(jìn)行計(jì)算胃珍,而SAMME.R則是在SAMME基礎(chǔ)上改進(jìn)過后梁肿、基于弱分配器輸出的概率值進(jìn)行計(jì)算,兩種方法都支持在AdaBoost上完成多分類任務(wù)觅彰,但SAMME.R往往能夠得到更好的結(jié)果吩蔑,因此sklearn中的默認(rèn)值是SAMME.R,因此sklearn中默認(rèn)可以輸入的base_estimators也需要是能夠輸出預(yù)測概率的弱評估器填抬。實(shí)際在預(yù)測時(shí)烛芬,AdaBoost輸出的??(??)也針對于某一類別的概率

需要注意的是飒责,在分類器中赘娄,我們雖然被允許選擇算法,卻不被允許選擇算法所使用的損失函數(shù)宏蛉,這是因?yàn)镾AMME與SAMME.R使用了相同的損失函數(shù):二分類指數(shù)損失(Exponential Loss Function)與多分類指數(shù)損失(Multi-class Exponential loss function)遣臼。

二分類指數(shù)損失——

其中y為真實(shí)分類,???(??)則是從集成算法輸出的概率結(jié)果??(??)轉(zhuǎn)換來的向量拾并。轉(zhuǎn)換規(guī)則如下:

在sklearn當(dāng)中揍堰,由于??(??)是概率值鹏浅,因此需要轉(zhuǎn)換為???(??),如果在其他實(shí)現(xiàn)AdaBoost的算法庫中屏歹,??(??)輸出直接為預(yù)測類別隐砸,則可以不執(zhí)行轉(zhuǎn)換流程。

根據(jù)指數(shù)損失的特殊性質(zhì)西采,二分類狀況下的類別取值只能為-1或1凰萨,因此??的取值只能為-1或1。當(dāng)算法預(yù)測正確時(shí)械馆,?????(??)的符號為正胖眷,則在函數(shù)?????上損失很小。當(dāng)算法預(yù)測錯(cuò)誤時(shí)霹崎,?????(??)的符號為負(fù)珊搀,則在函數(shù)?????上損失較大。二分類指數(shù)損失是AdaBoost最經(jīng)典的損失函數(shù)尾菇,它在數(shù)學(xué)推導(dǎo)上的有效性以及在實(shí)踐過程中很強(qiáng)的指導(dǎo)性讓其沿用至今境析。

多分類指數(shù)損失——

其中,??為總類別數(shù)派诬,如四分類[0,1,2,3]的情況時(shí)劳淆,??=4,???與???(??)都是根據(jù)多分類具體情況默赂、以及集成算法實(shí)際輸出??(??)轉(zhuǎn)化出的向量沛鸵,其中???1與???1(??)的上標(biāo)1都表示當(dāng)前類別。

在二分類算法中缆八,算法會直接針對二分類中的其中一個(gè)類別輸出概率曲掰,因?yàn)樵诙诸愔??(??=1)=1???(??=?1),所以只計(jì)算出一類的概率即可判斷預(yù)測的標(biāo)簽奈辰。但在多分類算法中栏妖,算法必須針對所有可能的取值類型都輸出概率,才能夠從中找出最大概率所對應(yīng)的預(yù)測標(biāo)簽奖恰。因此在集成算法中吊趾,我們對進(jìn)行多分類預(yù)測時(shí),會得到如下的表格:

每一行對應(yīng)一個(gè)樣本瑟啃,每一列則對應(yīng)該樣本的預(yù)測標(biāo)簽為某一類別的概率趾徽,以上表格就是5個(gè)樣本在10分類情況下得出的概率表格,而每一個(gè)樣本的10個(gè)概率中翰守,最大概率所對應(yīng)的類別就是預(yù)測類別孵奶。而這一轉(zhuǎn)換可以由函數(shù)argmax完成。argmax會取出最大值所對應(yīng)的索引蜡峰,剛好也就是最大概率所對應(yīng)的預(yù)測標(biāo)簽了袁。


在多分類算法當(dāng)中朗恳,我們常常求解類似于???或???(??)的向量,比如在softmax函數(shù)中载绿,當(dāng)預(yù)測值或真實(shí)值不等于??時(shí)粥诫,我們賦予的向量值為0,而不是?1/???1崭庸。

softmax的一般規(guī)則:

同時(shí)怀浆,當(dāng)K=2時(shí),多分類指數(shù)損失的值與二分類指數(shù)損失完全一致:

多分類指數(shù)損失:

假設(shè)K=2怕享,

假設(shè)預(yù)測分類 = 真實(shí)分類 = 1执赡,

二分類指數(shù)損失,y=1函筋,由于預(yù)測正確沙合,所以???(??) = 1

在實(shí)踐中,無論是SAMME還是SAMME.R跌帐,我們都無法改變使用的損失函數(shù)首懈,因此參數(shù)中沒有為我們提供相應(yīng)的選擇。

loss

看完參數(shù)algorithm谨敛,我們來看參數(shù)loss究履。與分類的情況完全相反,在AdaBoost回歸當(dāng)中脸狸,我們能夠使用的算法是唯一的最仑,即AdaBoost.R2,但是在R2算法下肥惭,我們卻可以選擇三種損失函數(shù),分別是"linear"(線性),"square"(平方),"exponential"(指數(shù))紊搪。

在算法AdaBoost.R2當(dāng)中蜜葱,三種損失函數(shù)如下定義:

首先:

??=??????|??(????)?????|,??=1,2,...,??

其中????yi為真實(shí)標(biāo)簽,??(????)H(xi)為預(yù)測標(biāo)簽耀石,sup表示“取最大值”牵囤,但它與直接寫作max的函數(shù)的區(qū)別在于,max中的元素已是固定的數(shù)值滞伟,而sup中的元素可以是一個(gè)表達(dá)式揭鳞、并讓該表達(dá)式在i的備選值中循環(huán)。上述式子表示梆奈,取出1~N號樣本中真實(shí)值與預(yù)測值差距最大的那一組差異來作為D的值野崇。

R2算法線性損失——

R2算法平方損失——

R2算法指數(shù)損失——

不難發(fā)現(xiàn),其實(shí)線性損失就是我們常說的MAE的變體亩钟,平方損失就是MSE的變體乓梨,而指數(shù)損失也與分類中的指數(shù)損失高度相似鳖轰。在R2算法當(dāng)中,這些損失函數(shù)特殊的地方在于分母D扶镀。由于D是所有樣本中真實(shí)值與預(yù)測值差異最大的那一組差異蕴侣,因此任意樣本的????在上述線性與平方損失定義下,取值范圍都只有[0,1](當(dāng)真實(shí)值=預(yù)測值時(shí)臭觉,取值為0昆雀,當(dāng)真實(shí)值-預(yù)測值=D時(shí),取值為1)蝠筑。

特別的狞膘,對于指數(shù)損失來說,自變量的部分是在[0,1]中取值菱肖,因此?????的在該定義域上的值域也為[0,1]客冈,因此1??????的值域?yàn)閇0,1]。事實(shí)上稳强,在R2算法的論文當(dāng)中场仲,就有明確對損失函數(shù)的唯一要求:即值域?yàn)閇0,1]。該規(guī)則使得整個(gè)AdaBoost算法的求解流程變得順暢退疫,具體可以在《2 原理進(jìn)階:AdaBoost的求解流程》中看到渠缕。

現(xiàn)在,我們已經(jīng)了解了AdaBoost的全部參數(shù)了褒繁。不難發(fā)現(xiàn)亦鳞,在AdaBoost的參數(shù)空間中,n_estimators與learning_rate是最為重要的兩個(gè)參數(shù)棒坏。當(dāng)我們在進(jìn)行超參數(shù)調(diào)整時(shí)燕差,注意對這兩個(gè)參數(shù)的組合進(jìn)行同時(shí)調(diào)整即可。

2.2坝冕、原理進(jìn)階:AdaBoost的求解流程:

在使用AdaBoost算法時(shí)徒探,我們并不需要對AdaBoost的具體求解流程掌握太過于深入。嚴(yán)格來說喂窟,只要知道參數(shù)的含義测暗,即便我們完全不了解AdaBoost的求解流程,我們也能夠自由地調(diào)用這個(gè)算法磨澡。然而碗啄,對于參數(shù)較少、原理簡單的AdaBoost來說或許是okay的稳摄,對于后續(xù)即將要學(xué)習(xí)的復(fù)雜Boosting算法而言稚字,我們卻很難再避開復(fù)雜數(shù)學(xué)推導(dǎo)與原理。即便是為了應(yīng)對面試中會出現(xiàn)的“你都知道哪些boosting算法厦酬?這些算法之間有什么異同尉共?”褒傅,我們也必須對Boosting算法的原理有所掌握。

對于任意Boosting算法袄友,我們都需要明確以下幾點(diǎn):

損失函數(shù)??(??,??)的表達(dá)式是什么殿托?損失函數(shù)如何影響模型構(gòu)建?

弱評估器??(??)是什么剧蚣,當(dāng)下boosting算法使用的具體建樹過程是什么支竹?

綜合集成結(jié)果??(??)是什么?集成算法具體如何輸出集成結(jié)果鸠按?

同時(shí)礼搁,還可能存在其他需要明確的問題,例如:

是加權(quán)求和嗎目尖?如果是馒吴,加權(quán)求和中的權(quán)重如何求解?

訓(xùn)練過程中瑟曲,擬合的數(shù)據(jù)??與??分別是什么饮戳?

模型訓(xùn)練到什么時(shí)候停下來最好?

同時(shí)洞拨,別忘記boosting算法的基本規(guī)則:

依據(jù)上一個(gè)弱評估器??(??)???1的結(jié)果扯罐,計(jì)算損失函數(shù)??(??,??),

并使用??(??,??)自適應(yīng)地影響下一個(gè)弱評估器??(??)??的構(gòu)建烦衣。

集成模型輸出的結(jié)果歹河,受到整體所有弱評估器??(??)0~???(??)??的影響。

在此基本指導(dǎo)思想下花吟,我們來梳理回歸算法的基本流程(考慮到后續(xù)Boosting算法也是以回歸為主流秸歧,因此在這里我們梳理回歸算法的基本流程)。

AdaBoost.R2

AdaBoost.R2算法是當(dāng)前AdaBoost實(shí)現(xiàn)流程中使用最多的回歸類實(shí)踐方式衅澈,它囊括了對數(shù)據(jù)進(jìn)行有放回抽樣键菱、按損失函數(shù)結(jié)果調(diào)整樣本權(quán)重、自動(dòng)計(jì)算弱分類器權(quán)重矾麻、并輸出預(yù)測結(jié)果等AdaBoost算法經(jīng)典的全流程纱耻。假設(shè)現(xiàn)有數(shù)據(jù)集N芭梯,含有樣本??個(gè)险耀,任意樣本編號為??,同時(shí)玖喘,弱評估器為決策樹??甩牺,總共學(xué)習(xí)??輪,則AdaBoost.R2的基本流程如下所示:

1) 初始化原始數(shù)據(jù)集的權(quán)重????累奈,其中任意????=1/M

開始循環(huán)贬派,for t in 1,2,...T:

2) 在現(xiàn)有數(shù)據(jù)集??中急但,有放回抽樣??個(gè)樣本,構(gòu)成訓(xùn)練集????搞乏。在每次抽取一個(gè)樣本時(shí)波桩,任意樣本被抽中的概率為??????=????/∑????,很顯然请敦,該概率就是當(dāng)前樣本在訓(xùn)練集????中的權(quán)重镐躲。當(dāng)從初始權(quán)重中抽樣時(shí),概率??1??=1/M侍筛,當(dāng)后續(xù)權(quán)重變化時(shí)萤皂,擁有更大權(quán)重的樣本被抽中的概率會更大。

3) 在訓(xùn)練集????上按照CART樹規(guī)則建立一棵回歸樹????匣椰,訓(xùn)練時(shí)所擬合的標(biāo)簽為樣本的真實(shí)標(biāo)簽??????裆熙。

4) 將????上所有的樣本輸入????進(jìn)行預(yù)測,得出預(yù)測結(jié)果????(????)禽笑,其中i = 1,2,...M入录。

5) 計(jì)算單一樣本??i上的損失函數(shù)??????=??(????(????),????),計(jì)算過程如下所示:

求解??=??????|????(????)?????|,??=1,2,...,??

選擇線性/平方或指數(shù)損失函數(shù)中的一種計(jì)算??????

根據(jù)AdaBoost的要求蒲每,所有損失的值域都在[0,1]之間纷跛。

6) 計(jì)算全樣本上的加權(quán)平均損失:

注意此時(shí)??????就等于樣本的權(quán)重。由于??????=????/∑????邀杏,所以??????一定位于[0,1]范圍內(nèi)贫奠,并且∑??????,??=1,2,...??一定為1。

當(dāng)權(quán)重之和為1時(shí)望蜡,加權(quán)平均值一定會小于等于單一數(shù)值的最大值(同時(shí)大于等于單一數(shù)值的最小值)唤崭,因此加權(quán)平均的值域不會超出單一平均數(shù)的值域。由于所有損失的值域都是[0,1]脖律,因此加權(quán)平均值????ˉ的值域也是[0,1]谢肾。同時(shí),由于損失的最大值為1小泉,而權(quán)重??????Pit的最大值一定是遠(yuǎn)遠(yuǎn)小于1的芦疏,因此加權(quán)平均值????ˉ的最大值一般也是遠(yuǎn)遠(yuǎn)小于1的。

7) 依據(jù)加權(quán)平均損失????ˉ計(jì)算衡量當(dāng)前集成算法的置信度????

????=????ˉ/(1?????ˉ+??)微姊,其中??是為了防止分母為0的常數(shù)

不難發(fā)現(xiàn)酸茴,當(dāng)加權(quán)平平均損失很高時(shí),????很大兢交,因此置信度小薪捍,當(dāng)加權(quán)平均損失很低時(shí),????很小,因此置信度大酪穿。置信度越大凳干,集成算法當(dāng)前的預(yù)測結(jié)果越好。

已知????ˉ的理論值域是[0,1]被济,因此????βt的理論值域是[0,+∞]救赐,因此????βt的值越接近0越好。

同時(shí)只磷,我們還知道????ˉ的實(shí)際范圍大約都在0.2~0.3之間净响,因此一般來說????βt的實(shí)際范圍基本都是小于1的。

8) 依據(jù)置信度評估????更新樣本權(quán)重:

9) 求解迭代過程中弱分類器f^t所需的權(quán)重

其中l(wèi)og的底數(shù)為e或者為2皆可喳瓣。當(dāng)??值越接近于0馋贤,說明損失越小、置信度越高畏陕,則??????(1/\beta ^t)的值越大配乓。所以,損失更小的樹對應(yīng)的權(quán)重更大惠毁,損失更大的樹對應(yīng)的權(quán)重更小犹芹。

10) 求解出當(dāng)前迭代??下集成算法的輸出值:

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
禁止轉(zhuǎn)載,如需轉(zhuǎn)載請通過簡信或評論聯(lián)系作者鞠绰。
  • 序言:七十年代末腰埂,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子蜈膨,更是在濱河造成了極大的恐慌屿笼,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,590評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件翁巍,死亡現(xiàn)場離奇詭異驴一,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)灶壶,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,157評論 3 399
  • 文/潘曉璐 我一進(jìn)店門肝断,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人驰凛,你說我怎么就攤上這事胸懈。” “怎么了恰响?”我有些...
    開封第一講書人閱讀 169,301評論 0 362
  • 文/不壞的土叔 我叫張陵趣钱,是天一觀的道長。 經(jīng)常有香客問我渔隶,道長羔挡,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,078評論 1 300
  • 正文 為了忘掉前任间唉,我火速辦了婚禮绞灼,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘呈野。我一直安慰自己低矮,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,082評論 6 398
  • 文/花漫 我一把揭開白布被冒。 她就那樣靜靜地躺著军掂,像睡著了一般。 火紅的嫁衣襯著肌膚如雪昨悼。 梳的紋絲不亂的頭發(fā)上蝗锥,一...
    開封第一講書人閱讀 52,682評論 1 312
  • 那天,我揣著相機(jī)與錄音率触,去河邊找鬼终议。 笑死,一個(gè)胖子當(dāng)著我的面吹牛葱蝗,可吹牛的內(nèi)容都是我干的穴张。 我是一名探鬼主播,決...
    沈念sama閱讀 41,155評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼两曼,長吁一口氣:“原來是場噩夢啊……” “哼皂甘!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起悼凑,我...
    開封第一講書人閱讀 40,098評論 0 277
  • 序言:老撾萬榮一對情侶失蹤偿枕,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后户辫,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體益老,經(jīng)...
    沈念sama閱讀 46,638評論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,701評論 3 342
  • 正文 我和宋清朗相戀三年寸莫,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了捺萌。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,852評論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡膘茎,死狀恐怖桃纯,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情披坏,我是刑警寧澤态坦,帶...
    沈念sama閱讀 36,520評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站棒拂,受9級特大地震影響伞梯,放射性物質(zhì)發(fā)生泄漏玫氢。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,181評論 3 335
  • 文/蒙蒙 一谜诫、第九天 我趴在偏房一處隱蔽的房頂上張望漾峡。 院中可真熱鬧,春花似錦喻旷、人聲如沸生逸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,674評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽槽袄。三九已至,卻和暖如春锋谐,著一層夾襖步出監(jiān)牢的瞬間遍尺,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,788評論 1 274
  • 我被黑心中介騙來泰國打工涮拗, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留狮鸭,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,279評論 3 379
  • 正文 我出身青樓多搀,卻偏偏與公主長得像歧蕉,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子康铭,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,851評論 2 361

推薦閱讀更多精彩內(nèi)容