XGBoost相关知识-1
一、XGBoost簡介
XGBoost:eXtreme Gradient Boosting
XGBoost簡介
--Gradient Boosting Machines
Machines:機器學習模型,建模數據產生規(guī)律,最小化目標函數
目標函數通常包含兩部分:
1、損失函數:與任務有關(選擇與訓練數據匹配最好的模型)
回歸:殘差平方
分類:0-1損失,logistic損失
2、正則項:與模型復雜度有關(選擇最簡單的模型)
?L2正則
?L1正則
Boosting Machines
Boosting:將弱學習器組合成強學習器
弱學習器:比隨機猜測性能好的學習器
常用弱學習器:決策樹/分類回歸樹
? ? --決策樹:每個葉子節(jié)點對應一個決策
? ? --分類回歸樹:每個葉子節(jié)點有個預測分數,比決策樹更靈活
第一個Boosting算法:Adaptive Boosting(AdaBoost)
弱分類器:只有一個分裂的決策樹
不斷的加入新的弱學習器,直到達到終止條件
-強學習器:弱學習器的加權先行組合
--XGBoost的特別之處,權重與其正確率有關
Friedman將AdaBoost推廣到一般Gradient Boosting框架,得到Gradient Boosting Machines(GBM):將boosting視作一個數值優(yōu)化問題,采用類似梯度下降的方式優(yōu)化求解
XGBoost的特別之處:
1、正則化:以正則話提升,標準的GBM的實現沒有顯示的正則化步驟,正則化對減少過擬合有幫助
2、并行處理,相比GBM有了速度的飛躍,自動利用單機cpu的多核進行并行運算,支持gpu加速,支持分布式
3、高度的靈活性:允許用戶自定義優(yōu)化目標和評價標準,只需損失函數的一階導數和二階導數
4、剪枝:當新增分裂帶來負增益時,GBM會停止分裂,XGBoost一直分裂到指定的最大深度,然后回過頭來剪枝
5、內置交叉驗證:xgboost允許在每一輪boosting迭代中使用交叉驗證-》可以方便的獲得最優(yōu)boosting迭代次數,GBM使用網格搜索,智能檢測有限個值
6、兩者都支持在線學習
XGBoost的優(yōu)勢
執(zhí)行速度快,模型性能:在結構化數據集上,在分類、回歸、排序預測建模上表現突出
XGBoost處理科學任務的一般流程:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?設置訓練參數? ? ? ? ? ? ? ? ? ? ? ? ?
訓練數據讀取--》數據導入-------》模型訓練---》模型評估
????????????????????????????????????????????????????????????????? ? |
????????????????????????????????????????????????????????????? ? 訓練好的模型
xgboost實戰(zhàn)簡單任務:
數據集:xgboost安裝包的demo數據
任務:根據蘑菇的22個特征判斷蘑菇是否有毒
總樣本數:8124? 可食用:4208 ,51.8% 有毒:3916,48.2%
訓練樣本:6513? 測試樣本:1611
特征:Demo中22維特征經過處理,變成了126維特征向量
XGBoost與sklearn一起使用
如果沒有測試集合,與sklearn用split
plot可視化
k-折交叉驗證
通常 k-折交叉驗證是評估機器學習模型的黃金準則(k=3, 5, 10)
當類別數目較多,或者每類樣本數目不均衡時,采用stratified交
叉驗證
當訓練數據集很大, train/test split帶來的模型性能估計偏差很
小,或者模型訓練很慢時,采用train/test split
對給定問題找到一種技術,速度快且能得到合理的性能估計
如果有疑問,對回歸問題,采用10-fold cross-validation ; 對分類,采用stratified 10-fold cross-validation
下面還是用原來的數據集數據,用決策樹,隨機森林等算法查看效果? ? ? ? ? ? ? ? ? ? ??
總結
以上是生活随笔為你收集整理的XGBoost相关知识-1的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: tensorflow就该这么学--6(多
- 下一篇: XGBoost相关知识-2