机器学习——XGboost模型
相關文章鏈接
?
????????機器學習——人工神經網絡(NN)
????????機器學習——卷積神經網絡(CNN)
????????機器學習——循環神經網絡(RNN)
????????機器學習——長短期記憶(LSTM)
????????機器學習——決策樹(decision tree)
????????機器學習——隨機森林(Random forest)
????????機器學習——梯度提升決策樹(GBDT)
一、XGBoost概述:
XGBoost:在訓練出一棵樹的基礎上再訓練下一棵樹預測它與真是分布間的差距。通過不斷訓練用來彌補差距的樹,最終用樹的組合實現對真是分布的模擬。XGBoost本質上還是一個GBDT,但是力爭把速度和效率發揮到極致,所以叫X (Extreme) GBoosted。
XGBoost與GBDT比較大的區別就是目標函數的定義。XGboost的目標函數包括損失函數和正則項兩部分。
XGboost的目標函數:
?其中:
二、XGBoost核心思想
XGBoost的核心算法思想是:
目標是要使得樹群的預測值yi’盡量接近真實值yi,而且有盡量大的泛化能力。XGBoost也是需要將多棵樹的得分累加得到最終的預測得分(每一次迭代,都在現有樹的基礎上,增加一棵樹去擬合前面樹的預測結果與真實值之間的殘差)。
其中選取一個f來使我們的目標函數盡量最大地降低。這里f可以使用泰勒展開公式近似。
數學原理外XGBoost最大的改進是大幅提升了計算速度。數的構建中最耗時的部分是為確定最佳分裂點而進行的特征值排序。XGBoost在訓練前會將特征值進行排序,存儲為Block結構,此后重復使用這些結構,從而減少計算量。
三、樹的生長與停止
樹的生長:
XGBoost作者在其原始論文中給出了一種分裂節點的方法:枚舉所有不同樹結構的貪心法。不斷的枚舉不同樹的結構,然后利用打分函數來尋找出一個最優結構的樹,接著加入到模型中,不斷重復這樣的操作。尋找的過程使用的就是貪心算法。選擇一個feature分裂,計算loss function最小值,然后再選一個feature分裂,又得到一個loss function最小值,枚舉完,找到一個效果最好的,把樹給分裂,就得到了小樹苗。
XGBoost使用了和CART回歸樹一樣的想法,利用貪心算法,遍歷所有特征的所有特征劃分點,不同的是使用的目標函數不一樣。具體做法就是分裂后的目標函數值比單葉子節點的目標函數的增益,同時為了限制樹的生長過深,還加了個閥值,只有當增益大于該閥值才進行分裂。從而繼續分裂,形成一棵樹,再形成一棵樹,每次在上一次的預測基礎上取最優進一步分裂/建樹。
停止樹的生長
設置樹的最大深度,當樣本權重和小于設定閥值時會停止生長防止過擬合。
四、XGBoost的優缺點
優點:
缺點:
在高緯稀疏特征數據集和小規模數據集上的表現不是很好。
XGBoost和GBDT的不同:
總結
以上是生活随笔為你收集整理的机器学习——XGboost模型的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ismobile什么意思_英语is是什么
- 下一篇: 如何正确修改标题,如何修改标题不会被降权