集成學(xué)習(xí)
著重于在訓(xùn)練集上做文章:將訓(xùn)練集劃分為各種子集或權(quán)重變換后用較弱的基模型擬合,然后綜合若干個(gè)基模型的預(yù)測作為最終整體結(jié)果。
兩種算法:Bagging method、Boosting method
Bagging method:若干個(gè)模型在若干個(gè)子集上單獨(dú)訓(xùn)練,預(yù)測時(shí)使用所有基模型預(yù)測得到結(jié)果(投票表決或求平均)
Boosting method:模型訓(xùn)練按順序進(jìn)行,每個(gè)基模型訓(xùn)練后都進(jìn)行預(yù)測、根據(jù)預(yù)測結(jié)果選擇下一次訓(xùn)練數(shù)據(jù)集,預(yù)測時(shí)使用所有基模型預(yù)測得到結(jié)果
偏差和方差:進(jìn)行模型預(yù)測時(shí),每組預(yù)測值與真值之間的差值組成錯(cuò)誤值集合,使用高斯分布擬合錯(cuò)誤值集合,可以得到參數(shù)u和σ2,使得 Error~N(u,σ2),其中u可以理解為**偏差**,σ2為方差
偏差對應(yīng)“擬合不足”的情況,方差對應(yīng)“過度擬合”的情況。
為什么集成多個(gè)弱模型會(huì)得到比較好的效果呢?
弱模型通常存在擬合不足的情況,即高偏差、低方差,預(yù)測時(shí)綜合各模型效果可以看成是這些錯(cuò)誤高斯分布求平均的過程。根據(jù)高斯分布的計(jì)算公式有:Error~N((u1+u2+...)/N,(σ12+σ22+...),其中N是弱模型的數(shù)量。因?yàn)槠钣姓胸?fù),因此會(huì)起到降低偏差的作用,因此集成學(xué)習(xí)達(dá)到了能自動(dòng)找到最優(yōu)錯(cuò)誤偏差和方差的效果。
隨機(jī)森林
是Bagging Method的一個(gè)典型代表,是一種使用決策樹作為基模型的集成學(xué)習(xí)方法。
上圖抽樣子訓(xùn)練集的方式通常采用 有放回采樣。
一般選用有較大偏差、較小方差的樹模型,具體表現(xiàn)在:
1.樣本裁剪:通過隨機(jī)采樣,每個(gè)弱模型只訓(xùn)練部分樣本數(shù)據(jù)。(剩余數(shù)據(jù)可以作為各基模型的測試集)
2.特征裁剪:每個(gè)基模型的決策樹只選用數(shù)據(jù)特征中的一部分進(jìn)行訓(xùn)練和預(yù)測,隨機(jī)抽樣保證了所有特征都能被部分弱模型學(xué)習(xí)到。
3.小樹:由于特征和樣本數(shù)量有限每個(gè)弱模型決策樹都長不高,所以不需要像普通決策樹那樣在訓(xùn)練結(jié)束后為避免過度擬合而執(zhí)行剪枝。
自適應(yīng)增強(qiáng)
即AdaBoost,是Boosting Method類集成算法的典型代表,其全稱是Adaptive Boosting。
通過調(diào)整訓(xùn)練集中每個(gè)樣本的權(quán)重使得每次迭代在不同的訓(xùn)練集上運(yùn)行。

AdaBoost 的每次迭代中都使用了全部訓(xùn)練樣本,但訓(xùn)練集中的每個(gè)樣本都被賦予了權(quán)值,基模型必須支持基于樣本權(quán)值的訓(xùn)練方法(常見算法如支持向量機(jī)、樸素貝葉斯、決策樹等都支持基于樣本權(quán)值進(jìn)行訓(xùn)練)。
每次訓(xùn)練降低預(yù)測正確的樣本的權(quán)值,提高預(yù)測錯(cuò)誤的樣本的權(quán)值。
由于模型是不斷進(jìn)化的,因此在最終決策后生成的基模型往往比先生成基模型的決策權(quán)更大,預(yù)測時(shí)可采用加權(quán)投票或平均。
引用
1.從機(jī)器學(xué)習(xí)到深度學(xué)習(xí):基于scikit-learn與tensorflow的高效開發(fā)實(shí)戰(zhàn)