前面的文章已經介紹了五種不一樣的分類器,它們各有優缺點。咱們能夠很天然地將不一樣的分類器組合起來,而這種組合結果則被成爲集成方法(ensemble method)或者元算法(meta-algorithm)。使用集成方法時會有多種形式:能夠是不一樣算法的集成,也能夠是同一種算法在不一樣設置下的集成,還能夠是數據集不一樣部分分配給不一樣分類器以後的集成。算法
集成方法(ensemble method)經過組合多個基分類器(base classifier)來完成學習任務,很有點「三個臭皮匠頂個諸葛亮」的意味。基分類器通常採用的是弱可學習(weakly learnable)分類器,經過集成方法,組合成一個強可學習(strongly learnable)分類器。所謂弱可學習,是指學習的正確率僅略優於隨機猜想的多項式學習算法;強可學習指正確率較高的多項式學習算法。集成學習的泛化能力通常比單一的基分類器要好,這是由於大部分基分類器都分類錯誤的機率遠低於單一基分類器的。bootstrap
集成方法主要包括Bagging和Boosting兩種方法,Bagging和Boosting都是將已有的分類或迴歸算法經過必定方式組合起來,造成一個性能更增強大的分類器,更準確的說這是一種分類算法的組裝方法,即將弱分類器組裝成強分類器的方法。api
自舉匯聚法(bootstrap aggregating),也稱爲bagging方法。Bagging對訓練數據採用自舉採樣(boostrap sampling),即有放回地採樣數據,主要思想:框架
Boosting是一種與Bagging很相似的技術。Boosting的思路則是採用重賦權(re-weighting)法迭代地訓練基分類器,主要思想:函數
樣本選擇上:性能
樣例權重:學習
預測函數:blog
並行計算:it
這兩種方法都是把若干個分類器整合爲一個分類器的方法,只是整合的方式不同,最終獲得不同的效果,將不一樣的分類算法套入到此類算法框架中必定程度上會提升了原單一分類器的分類效果,可是也增大了計算量。class
下面是將決策樹與這些算法框架進行結合所獲得的新的算法:
集成方法衆多,本文主要關注Boosting方法中的一種最流行的版本,即AdaBoost。
代碼以下: