[資料分析&機器學習] 第5.2講: Kaggle機器學習競賽神器XGBoost介紹

Yeh James
JamesLearningNote
Published in
4 min readDec 24, 2017
XGBoost

XGboost全名為eXtreme Gradient Boosting(極限梯度提升),XGboost之所以被稱為Kaggle競賽神器主要是因為在Kaggle上很多比賽的第一名都使用了XGboost,在2015年的時候29個Kaggle冠軍隊伍中有17隊使用XGboost在他們的算法之中!由此可知XGboost的威力了!而XGBoost除了精準度很高之外,Training的速度也很異常的快,因此受到許多參賽者的喜愛。XGBoost之所以速度快主要是因為整個模型背後是用C++來實作,並且在算法上也做了很多的調整(高度利用CPU多核心平行運算)

安裝

XGBoost的安裝就比較麻煩一點,在Mac上還算簡單,但在Windows上複雜了不少,詳細的步驟可參考官方文件。若在安裝過程當中出現什麼錯誤訊息不要緊張,把錯誤訊提貼到Google查一下就知道你電腦可能缺了某些東西,一個一個裝起來就可以了

實作

安裝完畢之後就教大家到底要怎麼使用XGBoost了,首先載入鐵達尼號的資料集,簡單使用鐵達尼資料中的性別、艙等、年齡來預測乘客是否存活

選取性別、艙等、年齡、是否存活以及將年齡補空值,並將資料拆成Train以及Test

將性別轉為0,1的數值型態

什麼參數都沒調整的情況下RandomForest的正確率是81.6%

而在什麼參數都沒調整的情況下XGBoost的正確率是83.8%,在什麼事都沒做的情況下(只是換Model)就高出了2.2%,相當划算的投資

原理

關於XGboost的原理在知乎上有一篇非常詳細的說明,有興趣的朋友可以深入研讀

程式碼

感謝你閱讀完這篇文章,如果你覺得這些文章對你有幫助請在底下幫我拍個手(長按最多可以拍50下手)。

[Python資料分析&機器學習]這系列文章是我在Hahow上面所開設課程的講義,如果你是新手想著看影片一步一步學習,可以參考這門課:https://hahow.in/cr/pydataml

如果你對什麼主題的文章有興趣的話,歡迎透過這個連結告訴我:https://yehjames.typeform.com/to/XIIVQC
有任何問題也歡迎在底下留言或是來信告訴我: yehjames23@gmail.com

參考閱讀

  1. 同樣用XGBoost,為什麼你的結果和別人差距這麼大
  2. xgboost入门与实战(原理篇)
  3. Ensembling & Boosting 概念介紹
  4. [知乎]xgboost原理

--

--