1. 程式人生 > >XGBoost原理與例項分析

XGBoost原理與例項分析

這幾天一直在研究XGboost的基本原理與程式碼調參,其原理是在GBDT的基礎上進行優化,但也有很多的不同之處;所以自己準備更新兩篇部落格分為XGBoost原理與例項和XGBoost實戰與調參優化來鞏固這方面的知識。

一、XGBoost原理分析

在機器學習的問題中,目標函式(objective function)隨處可見,目標函式一般由損失函式+正則化項。

                               O

b j ( Θ ) L ( Θ )
+ Ω ( Θ ) \boldsymbol{Obj(\Theta)=L(\Theta)+\Omega(\Theta)}

L

( Θ ) L(\Theta) (損失函式):用於描述模型擬合數據的程度;
Ω ( Θ ) \Omega(\Theta) (正則化項):用於描述模型複雜度的程度。

  • 訓練資料的損失函式: L = Σ i = 1 n l ( y i , y i ^ ) L=\Sigma_{i=1}^nl(y_i,\hat{y_i}) ,如:
    • Square loss: l ( y i , y i ^ ) = ( y i y i ^ ) 2 l(y_i,\hat{y_i})=(y_i-\hat{y_i})^2
    • Logistic loss: l ( y i , y i ^ ) = y i ln ( 1 + e y i ^ ) + ( 1 y i ) ln ( 1 + e y i ˉ ) l(y_i,\hat{y_i})=y_i\ln(1+e^{-\hat{y_i}})+(1-y_i)\ln(1+e^{\bar{y_i}})
  • 正則化項:
    • L 2 L2  norm: Ω ( ω ) = λ ω 2 \Omega(\omega)=\lambda\left \|\omega \right \|_2
      • ( L 2 L2 正則化是指權值向量 ω \omega 各個元素的平方和然後再求根號;可以防止模型過擬合overfitting)
    • L 1 L1  norm: Ω ( ω ) = λ ω 1 \Omega(\omega)=\lambda\left \|\omega \right \|_1
      • L 1 L1 正則化是指權值向量 ω \omega 各個元素的絕對值之和;通常能產生稀疏權值矩陣,即產生一個稀疏模型,可以用於特徵選擇,一定程度上也能防止過擬合)

若想對正則化有一個較為清晰的理解,請參考部落格機器學習中正則化項L1和L2的直觀理解


我們訓練的基學習器是CART迴歸樹,因此模型的複雜度與樹的深度葉子結點的個數葉子結點的輸出值(XGBoost裡稱為葉子結點的權值)有關。那麼假設我們有 K K 顆樹,那麼模型的輸出值為:
                               y i ^ = Σ t = 1 T f t ( x i ) \hat{y_i}=\Sigma_{t=1}^{T}f_t(x_i)
因為每一棵的引數包括它的結構與葉子結點的值,所以我們不妨將每一顆樹 f k f_k 作為引數來進行優化,因此我們可以表示為 Ω = { f 1 , f 2 , f 3 , . . . , f T } \Omega=\left \{f_1,f_2,f_3,...,f_T \right \} ,所以我們的目標函式現在可以改寫為:

                               O b j = Σ i = 1 n l ( y i , y i ^ ) + Σ i = 1 T Θ ( f t ) Obj=\Sigma_{i=1}^{n}l(y_i,\hat{y_i})+\Sigma_{i=1}^T\Theta(f_t)

現在的問題是我們如何訓練目標函式,學習基學習器,當然,XGBoost既然是GBDT的優化,自然大部分的思想是相通的,所以我們也採用前向分佈演算法(additive model),即我們把學習的過程分解為先學習第一顆樹,然後基於學習好的第一顆樹再去學習第二棵樹,以此類推,直到通過第 t 1 t-1 顆樹來學習第 T T 顆樹為止…

                               y i ^ 0 = c o n s t a n t \hat{y_{i}}^0=constant

                               y i ^ 1 = y i ^ 0 + f 1 ( x i ) \hat{y_{i}}^1=\hat{y_{i}}^0+f_1(x_i)

相關推薦

XGBoost原理例項分析

這幾天一直在研究XGboost的基本原理與程式碼調參,其原理是在GBDT的基礎上進行優化,但也有很多的不同之處;所以自己準備更新兩篇部落格分為XGBoost原理與例項和XGBoost實戰與調參優化來鞏固這方面的知識。 一、XGBoost原理分析 在機器學習的問題中,目標函式

jvm原理(17)類載入器名稱空間深度解析例項分析

我們在 上一節講到例項基礎上做一下改動: public class MyTest21 { public static void main(String[] args) throws Exception{ MyTest16 load

《大型網站技術架構:核心原理案例分析》-- 讀書筆記 (5) :網購秒殺系統

案例 並發 刷新 隨機 url 對策 -- 技術 動態生成 1. 秒殺活動的技術挑戰及應對策略 1.1 對現有網站業務造成沖擊 秒殺活動具有時間短,並發訪問量大的特點,必然會對現有業務造成沖擊。對策:秒殺系統獨立部署 1.2 高並發下的應用、

《大型網站技術架構:核心原理案例分析》【PDF】下載

優化 均衡 1.7 3.3 架設 框架 應用服務器 博客 分布式服務框架 《大型網站技術架構:核心原理與案例分析》【PDF】下載鏈接: https://u253469.pipipan.com/fs/253469-230062557 內容簡介 本書通過梳理大型網站技

Redis實現分布式鎖原理實現分析

數據表 防止 中一 csdn 訂單 not 產生 www 整體 一、關於分布式鎖 關於分布式鎖,可能絕大部分人都會或多或少涉及到。 我舉二個例子: 場景一:從前端界面發起一筆支付請求,如果前端沒有做防重處理,那麽可能在某一個時刻會有二筆一樣的單子同時到達系統後臺。 場

閱讀《大型網站技術架構:核心原理案例分析》第五、六、七章,結合《河北省重大技術需求征集系統》,列舉實例分析采用的可用性和可修改性戰術

定時 並不會 表現 做出 span class 硬件 進行 情況   網站的可用性描述網站可有效訪問的特性,網站的頁面能完整呈現在用戶面前,需要經過很多個環節,任何一個環節出了問題,都可能導致網站頁面不可訪問。可用性指標是網站架構設計的重要指標,對外是服務承諾,對內是考核指

《大型網站技術架構:核心原理案例分析》結合需求征集系統分析

運行 模塊 正常 一致性hash 產品 進行 OS 很多 層次 閱讀《大型網站技術架構:核心原理與案例分析》第五、六、七章,結合《河北省重大技術需求征集系統》,列舉實例分析采用的可用性和可修改性戰術,將上述內容撰寫成一篇1500字左右的博客闡述你的觀點。 閱

《大型網站技術架構:核心原理案例分析》讀後感

TP bubuko 一個 nbsp 分享 架構 優化 技術分享 src 李智慧的著作《大型網站技術架構:核心原理與案例分析》,寫得非常好, 本著學習的態度,對於書中的關於性能優化的講解做了一個思維導圖,供大家梳理思路和學習之用。拋磚引玉。 《大型網站技術架構

OpenCV學習筆記(31)KAZE 演算法原理原始碼分析(五)KAZE的原始碼優化及SIFT的比較

  KAZE系列筆記: 1.  OpenCV學習筆記(27)KAZE 演算法原理與原始碼分析(一)非線性擴散濾波 2.  OpenCV學習筆記(28)KAZE 演算法原理與原始碼分析(二)非線性尺度空間構建 3.  Op

OpenCV學習筆記(30)KAZE 演算法原理原始碼分析(四)KAZE特徵的效能分析比較

      KAZE系列筆記: 1.  OpenCV學習筆記(27)KAZE 演算法原理與原始碼分析(一)非線性擴散濾波 2.  OpenCV學習筆記(28)KAZE 演算法原理與原始碼分析(二)非線性尺度空間構

SURF演算法原理原始碼分析

如果說SIFT演算法中使用DOG對LOG進行了簡化,提高了搜尋特徵點的速度,那麼SURF演算法則是對DoH的簡化與近似。雖然SIFT演算法已經被認為是最有效的,也是最常用的特徵點提取的演算法,但如果不借助於硬體的加速和專用影象處理器的配合,SIFT演算法以現有的計算機仍然很難達到實時的程度。對於需要

SIFT原理原始碼分析:DoG尺度空間構造

《SIFT原理與原始碼分析》系列文章索引:http://blog.csdn.net/xiaowei_cqu/article/details/8069548 尺度空間理論   自然界中的物體隨著觀測尺度不同有不同的表現形態。例如我們形容建築物用“米”,觀測分子、原子等用“納米”。

《大型網站技術架構之核心原理案例分析》讀書筆記

      架構!對於工作經驗尚淺的我是理應遠遠不用考慮的倆字。不過就像這本書所說到的一個好的網站架構體系,不僅僅是架構師個人的架構,而是和參與共同建設的人共同貢獻,讓參與的人覺得自己是架構體系的建設者之一,就越是自動承擔開發過程的責任和共同維護架構和改善軟體。  

《大型網站技術架構:核心原理案例分析》筆記

· 大型網站軟體系統的特點 · 大型網站架構演化發展歷程     · 初始階段的網站架構         · 需求/解決問題         · 架構     · 應用服務和資料

Shuffle操作的原理原始碼分析

普通的shuffle操作 第一個特點,     在Spark早期版本中,那個bucket快取是非常非常重要的,因為需要將一個ShuffleMapTask所有的資料都寫入記憶體快取之後,才會重新整理到磁碟。但是這就有一個問題,如果map side資料過多

TaskScheduler原理原始碼分析

接DAGScheduler原始碼分析stage劃分演算法,task最佳位置計算演算法taskScheduler的submitTask()方法 在TaskScheduler類中 ①在SparkContext原始碼分析中,會建立TaskScheduler的時候,會建立一個SparkDe

java:N叉樹堆排序基本原理例項

堆排序(Heapsort)概念:是指利用堆這種資料結構所設計的一種排序演算法; 堆(英語:heap) 概念:電腦科學中一類特殊的資料結構的統稱。堆通常是一個可以被看做一棵樹的陣列(集合)物件。 原理圖(圖示為三叉樹):  擴充套件說明:     堆

讀《大型網站技術架構核心原理案例分析

讀《大型網站技術架構核心原理與案例分析》 1人們對於網站的期望是:高可用、 高效能、 易擴充套件 、 可伸縮且安全的網站。 大型網站軟體系統的特點:高併發, 大流量看,高可用,海量資料,使用者分佈廣泛, 網路情況複雜,安全環境惡劣,需求快速變更, 釋出頻繁,漸進式發展 2.大型網站架構演、化發展歷程

架構師---(大型網站技術架構核心原理案例分析)1大型網站架構演化

參考資料大型網站技術架構核心原理與案例分析(作者李智慧) 感悟:書讀百遍,其意自見 QQ群北京it—推薦–交流:300458205 群專注內推、大資料、雲端計算、Java、Android、UI等技術交流,歡迎你的加入。 1初始階段的網站架構 小型網站起初訪問量不是很高,只

Bow詞袋模型原理例項(bag of words)

The bag-of-words model is a simplifying assumption used in natural language processing and information retrieval. In this model, a text (s