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