機器學習的 XGBoost 算法簡介

2022-01-24 python風控模型

在公眾號「python風控模型」回復關鍵字:學習資料,免費領取學習資料。

XGBoost 是一種最近在應用機器學習和 Kaggle 結構化或表格數據競賽中佔據主導地位的算法。

XGBoost 是為速度和性能而設計的梯度提升決策樹的實現。

在這篇文章中,您將了解 XGBoost 並簡要介紹它是什麼、它來自哪裡以及如何了解更多信息。

看完這篇文章你會知道:


什麼是 XGBoost?

——陳天啟在 Quora,回答「 R gbm(梯度提升機)和xgboost(極限梯度提升)有什麼區別?」 時解釋道:「

XGBoost全稱是eXtreme Gradient Boosting

不過,xgboost 這個名字實際上是指推動提升樹算法計算資源極限的工程目標。這就是許多人使用 xgboost 的原因。」

XGBoost是由陳天奇創建的梯度提升機的實現,現在有許多開發人員的貢獻。它屬於分布式機器學習社區或DMLC保護下的更廣泛的工具集合,他們也是流行的mxnet 深度學習庫的創建者。

陳天啟在 XGBoost進化背後的故事和教訓一文中,提供了一個簡短而有趣的關於 XGBoost 創建的背景故事。

XGBoost 是一個軟體庫,您可以下載並安裝在您的機器上,然後從各種界面訪問。具體來說,XGBoost 支持以下主要接口:


XGBoost 功能

該庫專注於計算速度和模型性能,因此幾乎沒有多餘的裝飾。儘管如此,它確實提供了許多高級功能。

模型特點

該模型的實現支持 scikit-learn 和 R 實現的功能,並添加了正則化等新功能。支持三種主要形式的梯度提升:

系統特點

該庫提供了一個用於各種計算環境的系統,尤其是:

在訓練期間使用所有 CPU 內核並行化樹構建。

使用一組機器訓練非常大的模型的分布式計算。

不適合內存的超大數據集的核外計算。

緩存優化數據結構和算法以充分利用硬體。

算法特點

該算法的實現旨在提高計算時間和內存資源的效率。設計目標是充分利用可用資源來訓練模型。一些關鍵的算法實現特性包括:

XGBoost 是免費的開源軟體,可在 Apache-2 許可下使用。

為什麼要使用 XGBoost?

使用 XGBoost 的兩個理由也是項目的兩個目標:

執行速度。

模型性能。

1. XGBoost 執行速度

通常,XGBoost 速度很快。與梯度提升的其他實現相比,速度非常快。

Szilard Pafka執行了一些客觀的基準測試,將 XGBoost 的性能與梯度提升和袋裝決策樹的其他實現進行了比較。他於 2015 年 5 月在題為「基準隨機森林實現」的博客文章中寫下了他的結果。

他還提供了 GitHub 上的所有代碼以及更廣泛的帶有硬數字的結果報告。

他的結果表明,XGBoost 幾乎總是比來自 R、Python Spark 和 H2O 的其他基準實現更快。

從他的實驗中,他評論道:

我還嘗試了 xgboost,這是一個流行的 boosting 庫,它也能夠構建隨機森林。它速度快,內存效率高,準確度高

— Szilard Pafka,對隨機森林實現進行基準測試。

2. XGBoost 模型性能

XGBoost 在分類和回歸預測建模問題上主導結構化或表格數據集。

證據是它是 Kaggle 競賽數據科學平臺上競賽獲勝者的首選算法。

例如,有一個不完整的一、二、三等獎獲獎名單,標題為:  XGBoost: Machine Learning Challenge Winning Solutions。

為了使這一點更加具體,以下是 Kaggle 競賽獲勝者的一些有見地的引述:

作為越來越多的 Kaggle 比賽的獲勝者,XGBoost 再次向我們展示了它是一種出色的全能算法。

——拿督優勝者訪談:第一名,瘋狂教授

如有疑問,請使用 xgboost。

— Avito 優勝者訪談:第一名,Owen Zhang

我喜歡表現良好的單個模型,我最好的單個模型是 XGBoost,它可以單獨獲得第 10 名。

—卡特彼勒獲獎者訪談:第一名

我只用過 XGBoost。

— Liberty Mutual Property Inspection,優勝者訪談:第一名,王清臣

我使用的唯一監督學習方法是梯度提升,在優秀的 xgboost 中實現。

— Recruit Coupon Purchase 優勝者訪談:第二名,Halla Yang

XGBoost 使用什麼算法?

XGBoost 庫實現了梯度提升決策樹算法。

該算法有很多不同的名稱,例如梯度提升、多重加性回歸樹、隨機梯度提升或梯度提升機。

Boosting 是一種集成技術,其中添加新模型以糾正現有模型所造成的錯誤。模型按順序添加,直到無法進行進一步改進。一個流行的例子是AdaBoost 算法,它對難以預測的數據點進行加權。

梯度提升是一種創建新模型的方法,用於預測先前模型的殘差或誤差,然後將它們相加以進行最終預測。之所以稱為梯度提升,是因為它使用梯度下降算法來最小化添加新模型時的損失。

xgboost支持回歸和分類預測建模問題。

官方 XGBoost 資源

XGBoost 的最佳信息來源是該項目的官方 GitHub 庫。

https://github.com/dmlc/xgboost

還有一個官方文檔頁面,其中包括一系列不同語言的入門指南、教程、操作指南等。

有一些關於 XGBoost 的更正式的論文值得一讀,以了解有關該庫的更多背景信息:

使用 Boosted Trees 發現希格斯玻色子,2014 年。

http://proceedings.mlr.press/v42/chen14.pdf

XGBoost:可擴展的樹提升系統,2016 年。

https://arxiv.org/abs/1603.02754

xgboost就為大家介紹到這裡了,歡迎各位同學報名<python風控建模實戰lendingclub>,學習更多集成樹算法相關知識

(微信二維碼掃一掃報名)

相關焦點

  • XGBoost使用
    XGBoost原理簡介2. XGBoost參數說明3.XGBoost原理簡介 XGBoost本質上還是GBDT,但它把算法的速度和效率做到了極致,所以叫X(Extreme)GBoost。XGBoost主要從以下方面做了優化:弱學習器的選擇上,除了 樹模型,還支持線性模型等。
  • Python 中解釋 XGBoost 模型的學習曲線
    在機器學習模型的訓練過程中,可以評估訓練算法每個步驟的模型當前狀態。可以在訓練數據集上對其進行評估,以了解模型的「學習程度」。也可以在不屬於訓練數據集的保留驗證數據集上對其進行評估。通過對驗證數據集進行評估,可以了解模型的「一般化」程度。在訓練數據集和驗證數據集上進行訓練時,通常會為機器學習模型創建雙重學習曲線。
  • 機器學習:XGBoost 安裝及實戰應用
    先應用xgboost對以上模型做一個基本的訓練,訓練的思路,代碼如下:#1 導入庫from numpy import loadtxtfrom xgboost import XGBClassifierfrom sklearn.model_selection import train_test_splitfrom
  • 30 分鐘學會 XGBoost
    它是一個加法模型,基模型一般選擇樹模型,但也可以選擇其它類型的模型如邏輯回歸等。xgboost屬於梯度提升樹(GBDT)模型這個範疇,GBDT的基本想法是讓新的基模型(GBDT以CART分類回歸樹為基模型)去擬合前面模型的偏差,從而不斷將加法模型的偏差降低。
  • 用Python 開發您的第一個 XGBoost 模型
    XGBoost是梯度提升決策樹的一種實現,專為速度和性能而設計,是流行的機器學習競賽的算法。之前介紹了機器學習的 XGBoost 算法簡介XGBoost feature importance特徵重要性-實戰印第安人糖尿病數據集在這篇文章中,您將了解如何在 Python 中安裝和創建您的第一個 XGBoost 模型。
  • XGBoost(二):R語言實現
    之前在XGBoost(一):與同類算法的差異對比一文中介紹了Bagging與Boost、AdaBoost與Gradient Boost、GBDT與XGBoost對比,本文我們接著來介紹如何在R中實現XGBoost。
  • PYTHON中XGBOOST的使用
    1.數據讀取 import xgboost as xgb data = xgb.DMatrix(libsvm文件)
  • LightGBM大戰XGBoost,誰將奪得桂冠?
    注意:本文假設讀者已經對 GBMs 和 XGBoost 算法有一定的了解。如果你不了解他們,請先了解一下他們的原理再來學習本文。LightGBM是個快速的、分布式的、高性能的基於決策樹算法的梯度提升框架。可用於排序、分類、回歸以及很多其他的機器學習任務中。
  • XGBoost模型簡介
    機器學習本質是空間搜索和函數的泛化。現在企業主要是基於樣本的有監督學習。
  • XGBoost原理介紹
    華盛頓大學的陳天奇博士開發的XGBoost(eXtreme Gradient Boosting)基於C++通過多線程實現了回歸樹的並行構建,並在原有Gradient Boosting算法基礎上加以改進,從而極大地提升了模型訓練速度和預測精度。
  • 最簡單的XGBoost調參技巧(一)參數介紹
    1.XGBoost簡介XGBoost是陳天奇博士開發的大規模並行Boosted Tree的工具,也是目前最好的boosted tree工具包之一。XGBoost的特點就是又好又快,相比較其他Boosted Tree實現,XGBoost的表現最好,同時速度最快。
  • 獨家 | XGBoost介紹:用監督學習來預測期望壽命
    XGBoost的官方文檔:https://xgboost.readthedocs.io/en/latest/tutorials/model.html如果你想要深層次地挖掘這個模型,我強烈推薦《統計學習導論》,這是一本讓我對這方面概念茅塞頓開的好書。
  • 機器學習建模神器PyCaret已開源!提升效率,幾行代碼輕鬆搞定模型
    機器學習庫,支持在「低代碼」環境中訓練和部署有監督以及無監督的機器學習模型,提升機器學習實驗的效率。💡特別提醒:ret具有60多個開源即用型(ready-to-use)算法。# create a modelxgboost = create_model('xgboost')# summary plotinterpret_model(xgboost)# correlation plotinterpret_model(
  • LightGBM算法總結
    AI算法工程  公眾號: datayx目錄1 LightGBM原理    1.1 GBDT和 LightGBM對比    1.2 LightGBM 的動機    1.3 Xgboost 原理    1.4 LightGBM 優化        1.4.1 Histogram
  • XGboost(二)——常用參數
    更多要參考:https://xgboost.readthedocs.io/en/latest/parameter.html4. verbosity [default=1]Verbosity of printing messages.
  • Python 中用 XGBoost 和 scikit-learn 進行隨機梯度增強
    # XGBoost on Otto dataset, tune subsamplefrom pandas import read_csvfrom xgboost import XGBClassifierfrom sklearn.model_selection import GridSearchCVfrom sklearn.model_selection
  • 基於隨機森林、svm、CNN機器學習的風控欺詐識別模型
    ▍ 挖掘潛在的團夥欺詐——社區發現算法 一方面,基於機構的存量數據,運營商等數據構建複雜的網絡。同時,採用社區挖掘算法實現風險分組。在此基礎上,我們訓練機器學習模型。▍ 建模的原材料 —— 特徵工程建模的第一步是特徵工程,眾所周知,特徵是機器學習建模的原材料,對最終模型的影響至關重要
  • 技術分享 | 機器學習-淺談XGBoost算法
    XGBoost算法全稱Extreme Gradient Boosting(極值梯度提升算法),由陳天奇等人在2016年提出來的,它是一種提升樹模型,使用加法模型和前向優化算法集成多種樹模型(弱分類器),形成強分類器,來進行數據分類或預測。