Ensemble learning(集成學(xué)習(xí))
- 做法
假設(shè)我們有多個(gè)模型(假設(shè)3個(gè)),每個(gè)模型準(zhǔn)確率都大於50%(假設(shè)80%)乍桂,而每個(gè)模型之間都會(huì)存在差異侈咕,那麼我們混合模型,分類問題使用每個(gè)模型投票(vote)多數(shù)作為預(yù)測結(jié)果播歼、而回歸問題使用平均(avg)作為預(yù)測結(jié)果,如此一來我們的模型不會(huì)比原來最低準(zhǔn)確率的模型的差掰读,但有可能讓模型準(zhǔn)確率更高秘狞。
Bagging(bootstrap aggregating)
做法
我們有一個(gè)樣本池有N個(gè)樣本,我們從樣本池中取N'次蹈集,每一次的取出的樣本都會(huì)放回樣本池中(表示會(huì)抽到重複的樣本)烁试,然後我們做C次得到C組樣本,我們分別以4個(gè)相同或不同的模型進(jìn)行訓(xùn)練拢肆,然後預(yù)測時(shí)使用投票或平均作為預(yù)測結(jié)果减响,通常會(huì)比只使用一個(gè)模型時(shí)效果還要來的好,模型比較robust郭怪。使用時(shí)機(jī)
在模型容易o(hù)verfitting的時(shí)候支示,使用Bagging。
因?yàn)槲覀儼褦?shù)據(jù)分成多個(gè)子集鄙才,分別從各個(gè)子集訓(xùn)練後使用投票或平均作為預(yù)測結(jié)果颂鸿,所以結(jié)果會(huì)比較平滑,比較不會(huì)overfitting攒庵,因?yàn)樵肼暱赡軙?huì)在投票或平均被忽視掉嘴纺。
Boosting
- 使用時(shí)機(jī)
在模型underfitting的時(shí)候,使用Boosting浓冒。
AdaBoost
AdaBoost方法對於噪聲數(shù)據(jù)和異常數(shù)據(jù)很敏感栽渴。
AdaBoost方法的自適應(yīng)在於:前一個(gè)model分錯(cuò)的樣本讓判斷錯(cuò)誤的train data提高權(quán)重,被用來訓(xùn)練下一個(gè)model稳懒,我們在loss function上乘上一組weight闲擦,錯(cuò)誤的資料有更高的weight,使得錯(cuò)誤的資料有更高的loss。
代表錯(cuò)誤率
代表樣本數(shù)
我們第一個(gè)(model)錯(cuò)誤率小於0.5墅冷,我們要找一個(gè)使得model錯(cuò)誤率等於0.5贮缕,我們使用model來訓(xùn)練這組新weight的資料(資料本身沒改變我們只是在loss function乘上一個(gè)每一筆資料對應(yīng)的weight),然後model的錯(cuò)誤率會(huì)小於0.5俺榆,就這樣可以重複的做下去,直到你想訓(xùn)練的model數(shù)量装哆。
怎麼找呢?
假設(shè)我們某一筆資料model預(yù)測錯(cuò)誤罐脊,我們將乘上,如果資料model預(yù)測正確蜕琴,我們將除以萍桌,而可以經(jīng)過推倒求出,詳細(xì)推導(dǎo)可以參考李宏毅老師的課程凌简。
我們訓(xùn)練完成多個(gè)模型要預(yù)測時(shí)上炎,我們要讓訓(xùn)練完錯(cuò)誤率較低的模型他佔(zhàn)比較大的weight,所以預(yù)測時(shí)我們將每個(gè)模型的預(yù)測結(jié)果乘上然後相加雏搂,取預(yù)測結(jié)果最高的類別藕施、或平均。
Stacking
stacking概念有點(diǎn)類似transfer(遷移學(xué)習(xí))凸郑,我們手上有訓(xùn)練了幾個(gè)不同的模型裳食,然後我們使用這些模型的輸出作為另一個(gè)新模型的輸入進(jìn)行訓(xùn)練,新模型從現(xiàn)有模型的基礎(chǔ)上再學(xué)習(xí)如何運(yùn)用不同模型的輸出差異來增加準(zhǔn)確率芙沥。