日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

xgboost算法_手把手机器学习实战系列:xgboost 算法

發布時間:2024/3/26 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 xgboost算法_手把手机器学习实战系列:xgboost 算法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

算法簡介

xgboost算法是一種boosting的集成學習算法,是將多個弱學習模型進行組合,從而獲得更好的效果,使得組合后的模型有更強的泛化能力, 它通常是由基本的回歸樹(CART)樹模型組成

如圖所示:通過輸入用戶的年齡,性別來判斷用戶喜歡玩游戲的得分值

上面是一個CART的實例,它是將輸入的樣本根據輸入的屬性分配到不同的葉子節點中,每個葉子節點中都會得到一個預測分值

由于單個CART模型過于簡單,常常會出現過擬合的現象,所以可以用多棵樹進行預測

假設現在有K個樹,那么預測模型表示為

fk(xi)就是某個葉子節點的預測值,當建立了K-1棵樹后,第K顆樹的對應的葉子節點的預測值如何確定?

通常的方法是用葉子節點內的樣本的標簽值的均值,能不能通過目標函數進行優化得到呢?

目標函數

在XGboost算法中,目標函數由損失函數和正則項組成,如下式所示:

損失函數表示

(1)平方誤差函數

(2)如果不是平方誤差函數,可以通過泰勒公式進行展開

正則項表示

由公式發現: 如果要求目標函數預測誤差盡量小,需要葉子節點盡量少,葉子節點數值盡量不極端(要保持大致相同)

舉例說明: 如果樣本的標簽數值是4

如果第一個回歸樹預測為3,另外一顆預測為1 另外一組回歸樹,一顆預測為2,另一顆預測為2, 此時選擇的是后一種,因為第一種第一課樹預測為3,太接近真實值了,有些過擬合了

模型學習

在XGboost算法中,目標函數由損失函數和正則項組成,如下式所示:

現在需要通過數據進行學習出這個模型,那么首先需要確定我們優化的參數是什么呢?

優化每個葉子節點的得分值,即f(xi)

XGboost是以CART回歸樹作為基本分類器,當給定訓練數據后,單個樹的結構基本確定了(如葉子節點個數,樹深度)

但是Xgboost并不是將這幾顆回歸樹簡單的相組合,而是利用加法模型,它將模型上次的預測(t-1顆樹組成的模型)產生的誤差作為參數進行下一顆樹的參考,如下圖就為加法模型案例,它將模型預測值與實際值殘差作為下一顆樹的輸入數據

模型的加法策略

初始化,模型沒有樹,預測結果為0,往模型中加入第2顆樹,往模型中加入第N顆樹

目標函數的表示:

泰勒公式:

樹結構分數

在建立好樹結構后,每個樣本肯定會落到某個葉子節點中,

定義:

落在葉子序號為j的所有的樣本,i 代表的是樣本的序號

目標函數變為:

對目標函數求導,令導數為0, 可得:

Obj表示在某個確定的樹結構下的結構分數(structure score), 類似于基尼系數,信息增益等,分數越小,樹結構越好

樹結構學習

貪心算法:

每一次嘗試去對已有的葉子加入一個分割。對于一個具體的分割方案,增益計算如下

對于每次樹的擴展,需要枚舉所有可能的分割方案,如何高效地枚舉所有的分割呢?

首先根據需要劃分的那列特征值排序,然后從左到右的掃描就可以枚舉出所有分割的梯度和

算法如下:

過擬合問題

1.Shrinkage

在每次迭代中對樹的每個葉子節點中的分數乘上一個縮減權重w, 可以使得每一顆樹的影響力不會太大,防止已經預測的非常正確了,使得后面的優化沒有了必要,從而產生了過擬合

舉例: 假如第一顆樹的預測值是3.8,而實際的label是4, 那么它的參數是0.2, 意味著第二顆樹只是學習0.2,沒什么學習內容了,為了減少過擬合,對葉子節點預測值乘以一個權重0.3,那么誤差是4 - 3.8*0.3=2.86,類似梯度下降學習率

2.Column Subsampling:

類似于隨機森林中的選取部分特征進行建樹

(1)按層隨機采樣在,對同一層內每個結點分裂之前,先隨機選擇一部分特征,然后只需要遍歷這部分的特征,來確定最優的分割點, 對應參數 colsample_bylevel,選擇0.5-1

(2)隨機選擇特征,則建樹前隨機選擇一部分特征然后分裂就只遍歷這些特征。一般情況下前者效果更好

總結

以上是生活随笔為你收集整理的xgboost算法_手把手机器学习实战系列:xgboost 算法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。