本章主要講述了「集成學習」和「隨機森林」兩個方面。html
重點關注:bagging/pasting、boosting、stacking三個方法。git
首先,提出一個思想,若是想提高預測的準確率,一個很好的方法就是用集成的方法。讓多種預測器儘量相互獨立,使用不一樣的算法進行訓練。最後以預測器中的預測結果的多數做爲最終結果或者將平均機率最高的結果做爲最後的結果。github
還有沒有其餘的方法呢,有的。算法
當訓練完成後,咱們的集成函數通常就採用統計的方法便可。顯然,咱們能夠得出這樣的結論,就是每一個預測器單獨的誤差都高於在原始訓練集上的誤差,可是經過聚合集成,咱們將會下降誤差與方差,得出更精準的答案。決策樹通常採用上述方法進行訓練。固然,隨機森林也能夠採用上述方法。函數
sklearn中有相關bagging與pasting的工具包,這裏再也不作贅述,請自行查閱相關文檔。提示:使用BaggingClassifier類進行調用。工具
Adaboost方法,思想就是更多地關注前序擬合不足地訓練實例。從而使得新地預測器不斷地愈來愈專一於難纏的問題。能夠發現,該方法是一種存在時序關係的方法,咱們必需要獲得前者地訓練的狀況,而後對數據中對前者狀態的分類器擬合很差的數據再次進行訓練,而後循環往復。故此,能夠得出,這個方法不能並行計算,在拓展方面,不如bagging、boosting。學習
相關推導,請看Scorpio.Lu博主的文章:http://www.javashuo.com/article/p-tkpgxxsp-bh.htmlui
梯度提高法:該方法是逐步在集成中添加預測器,每一個都對其前序作出改正,讓新的預測器對前一個的預測器的殘差進行擬合。具體的推導,請見劉建平Pinard博主的文章:http://www.javashuo.com/article/p-coowgizi-dv.htmlspa