Xgboost算法詳細講解

因爲Xgboost算法常常用於有監督學習,關於有監督學習我們在前面已經介紹過來,但是有監督學習的要素有哪些呢?Xgboost算法爲什麼經常用於有監督學習呢?

有監督學習的要素包含兩大塊:

模型和參數

模型通常是給定輸入Xi,找出和輸出y之間的關係,如線性模型

在這裏插入圖片描述
參數通常是我們需要從數據中學習的未確定部分。在線性迴歸模型中,參數是係數Wj。

損失函數和正則化

我們在對數據進行訓練的時候,總是要有一個評價指標,判斷訓練的好壞程度,這時候就引入了目標函數的概念,其中:
目標函數=損失函數L(θ)+正則化Ω(θ)

損失函數
損失函數L(θ)是描述預測值和真實值的偏差有多少,衡量我們的數據對訓練數據的預測性,數學表達式用l(Y-Yi)來表示,其中l(x)可以是均方誤差,邏輯迴歸損失。

正則化
正則化Ω(θ)控制模型的複雜性,這有助於避免過擬合。

簡單來說就是損失函數判斷模型的好壞,正則化判斷模型的複雜程度,我們當然需要一個既簡單又可以預測的模型。如果數據量無限多的話,訓練最好的情況下此時的模型擬合誤差記爲bias。如果在有限數據量的條件下進行擬合的話,那麼此時的誤差記爲variance。

樹集成

現在有五個人,要研究的是他們去打電腦遊戲的可能性,最後的結果越大表明去打遊戲的可能性也就越大。
在這裏插入圖片描述
在這裏插入圖片描述

如果只用上圖左邊根據性別和年齡來進行分類的話,採用的是單棵樹。如果加上上圖右邊的樹將使用電腦頻率進行分類的話,兩棵樹的結果相加最後得到每個人會去打電腦遊戲的可能性,這樣的方法稱爲樹集成。而Xgboost本質上就是樹集成。

有了上面的基礎之後,我們再來討論,當我們既有了一棵樹,我們還得添加哪些樹?添加多少樹呢?

添加哪些樹?
Xgboost裏面的樹是一個一個添加的,每一個樹都可以看作是一個函數
在這裏插入圖片描述
所以我們添加的樹必須要保證預測效果是比不加樹之前的效果要好的。

添加多少樹?
有可能到最後樹的性能是提升了,但是提升的增益很小,甚至會帶來過擬合情況的產生。這個時候就引入了懲罰函數
在這裏插入圖片描述比如在這裏插入圖片描述對目標函數進行優化

在這裏插入圖片描述
利用均方誤差對目標函數進行展開之後
在這裏插入圖片描述
將均方誤差的泰勒展示式展開到二階之後
在這裏插入圖片描述
因爲損失函數最後是一個具體的值,和輸入xi沒有什麼關係,所以除去損失函數和常量的值
在這裏插入圖片描述
其中
在這裏插入圖片描述
在這裏插入圖片描述在這裏插入圖片描述
在二次函數的基礎上滿足以下條件可以使得目標函數最小,
在這裏插入圖片描述
信息增益:
對於每次擴展,我們依舊要枚舉所有可能的方案。對於某個特定的分割,我們要計算出這個分割的左子樹的導數和和右子數導數和之和,然後和劃分前的進行比較(基於損失,看分割後的損失和分割前的損失有沒有發生變化,變化了多少)。遍歷所有分割,選擇變化最大的作爲最合適的分割。
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章