Learning Boosting Algorithms for Better Predictions (with R code)
Photo Source: http://www.datasciencecentral.com
在國外許多Data science 競賽中, Boosting algorithms是一個被廣泛使用的演算法, 用以提升預測模型的準確率, 尤其最近一段時間各大Data Hack比賽, 前3名的獲勝者幾乎都使用XGBoost模型取得關鍵性的突破。 與Random Forest algorithm一樣, Boosting algorithms也是ensemble models的一種machine learning approach, 讓我們能在相同的數據資料下, 使用較少的時間獲得大幅的預測效能躍進。在這篇文章, 我將簡單描述Boosting的原理概念, 讓大家能初步了解到Boosting algorithms的運作想法, 最後同樣附上一個簡單的實例, 展示如何利用Boosting algorithms進行數據的分類預測。
Introduction to Boosting
Boosting
algorithms最初開發用以解決分類(classification)預測的問題,
其概念在於藉由合併(combine)許多的weak
learner(classifier, predictor, etc) , 創造出一個高準確預測的模型(稱之為strong
learner/classifier). 所謂的weak learner可以視之為其模型的預測能力,
僅僅高於隨機猜測的結果。我們先簡單地以垃圾郵件辨識為例子, 說明為何ensemble
models(以Boosting為例-
combine many weak learners), 能產生出較強的預測模型。假設我們使用下列5條rules來判斷email是否為垃圾郵件:
1.
Email僅包含一張圖片 è 促銷圖片,
此封為垃圾郵件
2.
Email僅包含一個超鏈結網址 è 垃圾郵件
3.
Email內文包含”您贏得了 大獎
$” è 垃圾郵件
4.
Email寄件者為任職公司的網站 è 非垃圾郵件
5.
Email寄件者存在於聯絡人清單中 è 非垃圾郵件
這5條rules可分別視作weak
classifier, 單獨使用其中任何一個rule來進行垃圾郵件分類, 其辨識效果可想而知。但若我們將5條rules合併使用,
並將5條rules預測結果,
以簡單平均或是加權平均的方式計算出預測結果, 那麼我們將可以獲得一個較佳的預測能力模型。以上述為例, 3條rules認定為垃圾郵件,
2條rules認定為非垃圾郵件, 因此我們認定該封email為垃圾郵件。
Boosting algorithms並非簡單地以majority
votes(多數決)或平均數的方式, 來進行model
building. 不同類型的Boosting algorithms, 各自有不同的數學模型與建置邏輯。目前主流的Boosting
algorithms有:
- AdaBoost (Adaptive Boosting)
- Gradient Boosting
- XGBoost (eXtreme Gradient Boosting)
繼續閱讀...
8/04/2016 | 標籤: Machine Learning, R |
訂閱:
文章 (Atom)