上兩篇說了決策樹到集成學(xué)習(xí)的大概,這節(jié)我們通過adaboost來具體了解一下集成學(xué)習(xí)的簡單做法。
集成學(xué)習(xí)有bagging和boosting兩種不同的思路,bagging的代表是隨機(jī)森林,boosting比較基礎(chǔ)的adaboost,高級一點(diǎn)有GBDT,在這里我也說下我理解的這兩個(gè)做法的核心區(qū)別:
隨機(jī)森林的bagging是采用有放回抽樣得到n個(gè)訓(xùn)練集,每個(gè)訓(xùn)練集都會(huì)有重復(fù)的樣本,每個(gè)訓(xùn)練集數(shù)據(jù)都一樣,然后對每個(gè)訓(xùn)練集生成一個(gè)決策樹,這樣生成的每個(gè)決策樹都是利用了整個(gè)樣本集的一部分,也就說每棵決策樹只是學(xué)習(xí)了大部分,然后決策的時(shí)候綜合每棵決策樹的評分,最終得出一個(gè)總的評分
boosting的adaboost每次訓(xùn)練的時(shí)候用的是同一個(gè)數(shù)據(jù)集,但是前一棵決策樹分錯(cuò)的樣本在后面的權(quán)重會(huì)升高,相當(dāng)于說,后面的決策樹利用了前面決策樹學(xué)習(xí)的結(jié)果,不斷的優(yōu)化這個(gè)結(jié)果,也就是說,后面的決策樹恰恰擅長的是前面決策樹不擅長(分錯(cuò))的樣本,相當(dāng)于說,boosting的每棵決策樹擅長的“領(lǐng)域”不一樣,并且在擅長的領(lǐng)域都很厲害
而對比bagging,bagging中的每一棵樹都是同樣普通的決策樹,相當(dāng)于每棵決策樹擅長的“領(lǐng)域”區(qū)分不大,也沒有很擅長。
下面我們看下adaboost是如何工作的吧,這次我們使用更簡單的例子。
這是二維平面的上的兩個(gè)點(diǎn),紅色是正樣本,綠色是負(fù)樣本,如果使用強(qiáng)分類器,例如深度大于1的決策樹,很簡單就可以區(qū)分開了,或者使用邏輯回歸,計(jì)算一下,就可以輕松得到一條直線把這兩個(gè)類別的點(diǎn)區(qū)分開了,我們這里主要是先學(xué)習(xí)adaboost是如何把弱分類器組裝成強(qiáng)大的強(qiáng)分類器以及boosting的學(xué)習(xí)效果
類別和之前不一樣,這里的正負(fù)樣本的類似是1,-1,原因是預(yù)測結(jié)果的分界線不一樣,決策樹是沒有對類別做任何的操作,adaboost設(shè)計(jì)到多棵樹的權(quán)重相加,使用0作為正負(fù)樣本的分界線會(huì)更好