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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

机器学习——XGboost模型

發布時間:2023/12/14 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 机器学习——XGboost模型 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

相關文章鏈接

?

????????機器學習——人工神經網絡(NN)

????????機器學習——卷積神經網絡(CNN)

????????機器學習——循環神經網絡(RNN)

????????機器學習——長短期記憶(LSTM)

????????機器學習——決策樹(decision tree)

????????機器學習——隨機森林(Random forest)

????????機器學習——梯度提升決策樹(GBDT)

一、XGBoost概述:

XGBoost:在訓練出一棵樹的基礎上再訓練下一棵樹預測它與真是分布間的差距。通過不斷訓練用來彌補差距的樹,最終用樹的組合實現對真是分布的模擬。XGBoost本質上還是一個GBDT,但是力爭把速度和效率發揮到極致,所以叫X (Extreme) GBoosted。

XGBoost與GBDT比較大的區別就是目標函數的定義。XGboost的目標函數包括損失函數正則項兩部分。

  • 損失函數:代表模型擬合數據的程度。通常用其一階導數指出梯度下降的方向,XGboost還計算了它的二階導數,進一步考慮了梯度的變化趨勢,擬合更快,精度更高。
  • 正則項:用來控制模型的復雜程度。葉子結點越多,模型越大,不僅運算時間長,超過一定限度后還會過擬合,導致分類效果的下降。XGboost的正則項是一個懲罰機制,葉子結點的數量越多,懲罰力度越大,從而限制他們的數量。
  • XGboost的目標函數:

    ?其中:

  • 紅色箭頭所指向的L 即為損失函數(比如平方損失函數:
  • 紅色方框所框起來的是正則項(包括L1正則、L2正則)
  • 紅色圓圈所圈起來的為常數項
  • 對于f(x),XGBoost利用泰勒展開三項,做一個近似。f(x)表示的是其中一顆回歸樹。
  • 二、XGBoost核心思想

    XGBoost的核心算法思想是:

  • 不斷的添加樹,不斷地進行特征分裂來生長一棵樹,每次添加一棵樹,其實是學習一個新函數f(x),去擬合上次預測的殘差。
  • 當我們訓練完成得到k棵樹,我們要預測一個樣本的分數,其實就是根據這個樣本的特征,在每棵樹中會落到對應的一個葉子節點,每個葉子節點就對應一個分數。
  • 最后只需要將每棵樹對應的分數加起來就是該樣本的預測值。
  • 目標是要使得樹群的預測值yi’盡量接近真實值yi,而且有盡量大的泛化能力。XGBoost也是需要將多棵樹的得分累加得到最終的預測得分(每一次迭代,都在現有樹的基礎上,增加一棵樹去擬合前面樹的預測結果與真實值之間的殘差)。

    其中選取一個f來使我們的目標函數盡量最大地降低。這里f可以使用泰勒展開公式近似。

    數學原理外XGBoost最大的改進是大幅提升了計算速度。數的構建中最耗時的部分是為確定最佳分裂點而進行的特征值排序。XGBoost在訓練前會將特征值進行排序,存儲為Block結構,此后重復使用這些結構,從而減少計算量。

    三、樹的生長與停止

    樹的生長:

    XGBoost作者在其原始論文中給出了一種分裂節點的方法:枚舉所有不同樹結構的貪心法。不斷的枚舉不同樹的結構,然后利用打分函數來尋找出一個最優結構的樹,接著加入到模型中,不斷重復這樣的操作。尋找的過程使用的就是貪心算法。選擇一個feature分裂,計算loss function最小值,然后再選一個feature分裂,又得到一個loss function最小值,枚舉完,找到一個效果最好的,把樹給分裂,就得到了小樹苗。

    XGBoost使用了和CART回歸樹一樣的想法,利用貪心算法,遍歷所有特征的所有特征劃分點,不同的是使用的目標函數不一樣。具體做法就是分裂后的目標函數值比單葉子節點的目標函數的增益,同時為了限制樹的生長過深,還加了個閥值,只有當增益大于該閥值才進行分裂。從而繼續分裂,形成一棵樹,再形成一棵樹,每次在上一次的預測基礎上取最優進一步分裂/建樹。

    停止樹的生長

    設置樹的最大深度,當樣本權重和小于設定閥值時會停止生長防止過擬合。

  • 當引入的分裂帶來的增益小于設定閥值的時候,我們可以忽略掉這個分裂,所以并不是每一次分裂loss function整體都會增加的;
  • 當樹達到最大深度時則停止建立決策樹,設置一個超參數max_depth,避免樹太深導致學習局部樣本,從而過擬合;
  • 樣本權重和小于設定閥值時則停止建樹。
  • 四、XGBoost的優缺點

    優點:

  • 善于捕捉復雜數據之間的依賴關系。
  • 能從大規模數據集中獲取有效模型。
  • 在實用性上支持多種系統和語言。
  • 缺點:

    在高緯稀疏特征數據集和小規模數據集上的表現不是很好。

    XGBoost和GBDT的不同:

  • GBDT是機器學習算法,XGBoost是該算法的工程實現。
  • 在使用CART作為基分類器時,XGBoost顯式地加入了正則項來控制模型的復雜度,有利于防止過擬合,從而提高模型的泛化能力。
  • GBDT在模型訓練時只使用了代價函數的一階導數信息,XGBoost對代價函數進行二階泰勒展開,可以同時使用一階和二階導數。
  • 傳統的GBDT采用CART作為基分類器,XGBoost支持多種類型的基分類器,比如線性分類器。
  • 傳統的GBDT在每輪迭代時使用全部的數據,XGBoost采用了與隨機森林相似的策略,支持對數據進行采樣。
  • 傳統的GBDT沒有設計對缺失值進行處理,XGBoost能夠自動學習出缺失值的處理策略。
  • 總結

    以上是生活随笔為你收集整理的机器学习——XGboost模型的全部內容,希望文章能夠幫你解決所遇到的問題。

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