集成學習+adaboost
在做出重要決定時去扣,大家會吸取多個專家而不是一個人的意見
這就是元算法背后的思路
元算法是對其他算法進行組合的一種方式涩蜘。元算法也叫做集成方法。
可以是不同算法的的集成醉冤,可以是同一種算法在不同設置下的集成蓖宦,還可以是數據集不同部分分配給不同分類器之后的集成
---Bagging:基于數據隨機沖抽樣的分類器構建方法
自舉匯聚法(bootstrap aggregating),也稱bagging茄厘。
1. 在從原始數據集選擇S次后得到S個新數據集的一種技術矮冬。新數據集的原始數據集大小相等。允許新數據集中有重復值
2. 在S個數據集建好后次哈,將某個學習算法分別作用于每個數據集就得到了S個分類器胎署。
3. 當我們對新數據進行分類時,就用這S個分類器進行分類窑滞,與此同時琼牧,分類器投票結果最多的類別作為最終結果
比如RF隨機森林就是采用bagging的思想,并作了一定的改進哀卫。
---Boosting
boosting所使用的多個分類器的類型都是一致的巨坊,并且是通過串行訓練獲得的,每個新分類器都是根據已經訓練出的分類器的性能來進行訓練此改。boosting是通過集中關注被已有分類器錯分的那些數據獲得新的分類器趾撵。
boosting的分類結果是基于所有分類器的加權就和。bagging中分類器的權重是相等的共啃,而boosting的分類器權重并不相等占调。
boosting有很多版本,流行的是adaboost移剪,和gbdt
整個實現(xiàn)的偽代碼如下:
對每次迭代:
利用buildStump()函數找到最佳的單層決策樹
將最佳單層決策樹加入到單層決策樹數組
計算alpha
計算新的權重向量D
更新累計類別估計值
如果錯誤率等于0.0,則退出循環(huán)
---------------------------------------------------------------------------------------------------