轉(zhuǎn)自July--4月機(jī)器學(xué)習(xí)算法班
由決策樹和隨機(jī)森林引發(fā)思路
隨機(jī)森林的決策樹分布采樣建立,相對獨立。
思考:
前m-1棵樹是否會影響第m棵樹?
各個決策樹組成決策森林后,最后的投票過程可否在建立決策樹時決定呢?
提升
Adaboost/GDBT
提升的概念:提升是一個機(jī)器學(xué)習(xí)技術(shù),可以用于回歸和分類,它每一步產(chǎn)生一個弱預(yù)測模型(如決策樹),并加權(quán)累加到總模型中;如果每一步的弱預(yù)測模型生成都是依據(jù)損失函數(shù)的梯度方向,則稱之為提升(Gradient boosting)
梯度提升算法首先給定一個目標(biāo)損失函數(shù),它的定義域是所有可行的弱函數(shù)集合(基函數(shù));提升算法通過迭代的選擇一個負(fù)梯度方向上的基函數(shù)來逐漸逼近局部極小值。這種在函數(shù)域的梯度提升觀點對機(jī)器學(xué)習(xí)的很多領(lǐng)域有深刻影響
提升的理論意義:如果一個問題存在弱分類器,則可以通過提升的辦法得到強(qiáng)分類器。
Adaboost
Adaboost,是英文“Adaptive Boosting”自適應(yīng)增強(qiáng)的縮寫,是一種機(jī)器學(xué)習(xí)方法
其自適應(yīng)性在于:前一個分類器分錯的樣本會被用來訓(xùn)練下一個分類器。AdaBoost方法對于噪聲數(shù)據(jù)和異常數(shù)據(jù)很敏感。
但在一些問題中,AdaBoost方法相對于大多數(shù)其他學(xué)習(xí)算法而言,不會很容易出現(xiàn)過擬合現(xiàn)象。
梯度提升決策樹GBDT
梯度提升的典型基函數(shù)即決策樹(尤其是CART)
在第m步的梯度提升是根據(jù)偽殘差數(shù)據(jù)計算決策樹tm(x)。
參數(shù)設(shè)置與正則化
對于訓(xùn)練集擬合過高會降低模型的泛化能力,需要使用正則化技術(shù)來降低過擬合。
--對于復(fù)雜模型增加懲罰項,如:模型復(fù)雜度正比于葉節(jié)點數(shù)目或者葉節(jié)點預(yù)測值的平方和等。
--用于決策樹剪枝
葉節(jié)點數(shù)目控制了樹的層數(shù),一般選擇4<J<8
葉節(jié)點包含的最少樣本數(shù)目
防止出現(xiàn)過小的葉節(jié)點,降低預(yù)測方差
梯度提升迭代次數(shù)M:
增加M可降低訓(xùn)練集的損失值,有過擬合風(fēng)險
交叉驗證