绝地求生维护公告今天10月4号:回歸建模的時代已結束,算法XGBoost統治機器學習世界

绝地求生下载安装苹果 www.rjifq.icu 回歸建模的時代已結束,算法XGBoost統治機器學習世界

Vishal Morde講了這樣一個故事:十五年前我剛完成研究生課程,并以分析師的身份加入了一家全球投資銀行。在我工作的第一天,我試著回憶我學過的一切。與此同時,在內心深處,我想知道我是否能夠勝任這份工作。我的老板感覺到我的焦慮,他說:

“別擔心!你唯一需要知道的就是回歸建模!”

我了解回歸建、線性和邏輯回歸。我的老板是對的。在我任職期間,我專門建立了基于回歸的統計模型。事實上,在那個時候,回歸建模是無可爭議的預測分析女王。十五年后的今天,回歸建模的時代已經結束。新女王名字很長:XGBoost或Extreme Gradient Boosting!

什么是XGBoost

XGBoost 是一種基于決策樹的集成機器學習算法,梯度增強為框架。在涉及非結構化數據(圖像,文本等)的預測問題中,人工神經網絡往往優于所有其他算法或框架。然而,當涉及到中小型結構化或表格數據時,基于決策樹的算法被認為是同類中最佳的。參閱下面的圖表了解多年來基于樹的算法的發展:

回歸建模的時代已結束,算法XGBoost統治機器學習世界

決策樹的XGBoost算法演化

XGBoost算法是華盛頓大學的一個研究項目。Tianqi Chen and Carlos Guestrin在2016年的SIGKDD會議上發表了他們的論文,引起了機器學習領域的轟動。自推出以來,該算法不僅贏得了眾多Kaggle比賽的勝利,而且還成為幾個尖端行業應用的引擎驅動力。因此,有一個強大的數據科學家社區為XGBoost開源項目做出貢獻,在GitHub上有大約350個貢獻者,3600多條提交。該算法具有以下特性:

  1. 廣泛的應用:可用于解決回歸,分類,排名和用戶定義的預測問題。
  2. 可移植性:可在Windows,Linux和OS X上順暢運行。
  3. 語言:支持所有主要的編程語言,包括C ++,Python,R,Java,Scala和Julia。
  4. 云集成:支持AWS,Azure和Yarn集群,適用于Flink,Spark和其他生態系統。

如何為XGBoost建立直覺

決策樹最簡單的形式,是易于可視化和可解釋的算法,但為下一代基于樹的算法建立直覺可能有點棘手。請參閱下面的簡單類比,以更好地了解基于樹的算法的演變。

想象一下,你是一名招聘經理,面試幾位具有優秀資歷的候選人?;謔韉乃惴ㄑ荼淶拿懇徊蕉伎梢鑰醋魘且桓霾煞?。

  • 決策樹:每個招聘經理都有一套標準,如教育水平,經驗年數,面試表現。決策樹類似于招聘經理根據自己的標準面試候選人。
  • Bagging:現在想象一下,而不是一個面試官,現在有一個面試小組,每個面試官都會投票。Bagging涉及通過民主投票過程,將所有調查員的投票結合起來以做出最終決定。
  • 隨機森林:它是一種基于Bagging的算法,具有關鍵差異,其中僅隨機選擇特征的子集?;瘓浠八?,每個面試官只會根據某些隨機選擇的資格測試受訪者(例如,測試編程技能的技術面試和評估非技術技能的行為面試)。
  • 提升(Boosting):這是一種替代方法,每位面試官根據前一位訪調員的反饋改變評估標準。通過部署更加動態的評估流程,提升面試流程的效率。
  • 梯度提升:這是通過梯度下降算法提高誤差最小化的特殊情況,例如策略咨詢公司利用案例訪談來剔除不太合格的候選人。
  • XGBoost:將XGBoost視為加強版的梯度增強(因此有人稱之為極端梯度提升),它是軟件和硬件優化技術的完美結合,可在最短的時間內使用較少的計算資源產生出色的結果。

為什么XGBoost表現如此之好

XGBoost和Gradient Boosting Machines(GBMs)都是集合樹方法,它們應用了使用梯度下降架構來提升弱學習者(通常是CART)的原理。但是,XGBoost通過系統優化和算法增強改進了基礎GBM框架。

回歸建模的時代已結束,算法XGBoost統治機器學習世界

XGBoost優化標準GBM算法

系統優化:

  • 并行化:XGBoost使用并行化實現來處理順序樹構建過程。由于用于構建基礎學習者的循環的可互換性,枚舉樹的葉節點的外部循環,以及計算特征的第二個內部循環,這是可能的。這種循環嵌套限制了并行化,因為沒有完成內部循環(對兩者的計算要求更高),外部循環無法啟動。因此,為了改善運行時間,使用初始化通過所有實例的全局掃描和使用并行線程排序來交換循環的順序。這樣就抵消計算中的任何并行化開銷,提高了算法性能。
  • 結構樹修剪:GBM框架內樹分裂的停止標準本質上是貪婪的,這取決于分裂點的負損失標準。XGBoost首先使用max_depth參數,然后開始向后修剪樹。這種深度優先方法顯著提高了計算性能。
  • 硬件優化:該算法旨在有效利用硬件資源。這是通過緩存感知實現,即在每個線程中分配內部緩沖區來存儲梯度統計信息。諸如“核外”計算等進一步增強功能可優化可用磁盤空間,同時處理不適合內存的大數據幀。

算法增強功能:

  • 正則化:它通過LASSO(L1)和Ridge(L2)正則化來懲罰更復雜的模型,以防止過度擬合。
  • 稀疏性感知:XGBoost通過根據訓練損失自動“學習”最佳缺失值,并更有效地處理數據中不同類型的稀疏模式,從而自然地承認輸入的稀疏特征。
  • 加權分位數草圖:XGBoost采用分布式加權分位數草圖算法有效地找到加權數據集中的最優分裂點。
  • 交叉驗證:該算法在每次迭代時都帶有內置的交叉驗證方法,無需顯式編程此搜索,以及指定單次運行所需的增強迭代的確切數量。

證據在哪?

我們使用Scikit-learn的’Make_Classification數據包創建了一個包含20個特征(2個信息的和2個冗余的)的100萬個數據點的隨機樣本。我們測試了幾種算法,如Logistic回歸,隨機森林,標準梯度提升和XGBoost。

回歸建模的時代已結束,算法XGBoost統治機器學習世界

?使用SKLearn的Make_Classification數據集的XGBoost與其他ML算法

如上圖所示,與其他算法相比,XGBoost模型是預測性能和處理時間的最佳組合。其他嚴格的基準研究也得到了類似的結果。所以XGBoost在最近的數據科學競賽中被廣泛使用。

機器學習如同生活,沒有免費的午餐。作為數據科學家,我們必須測試所有可能的數據算法,以確定冠軍算法。此外,選擇正確的算法是不夠的。我們還必須通過調整超參數為數據集選擇正確的算法配置。選擇算法還有其他幾個考慮因素,例如計算復雜性,可解釋性和易于實現性。如此,機器學習開始從科學走向藝術,但老實說,這就是奇跡的開端!

未來該何去何從

機器學習是一個非?;鈐鏡難芯苛煊?,已經有幾種可行的替代XGBoost的方案。微軟研究院最近發布了LightGBM框架,用于梯度提升,顯示出巨大的潛力。由Yandex Technology開發的CatBoost已經提供了令人印象深刻的基準測試結果。這是一個時間問題,但直到下一個更強大的挑戰者出現之前,XGBoost將繼續統治機器學習世界!

歡迎關注ATYUN官方公眾號,商務合作及內容投稿請聯系郵箱:[email protected]

發表評論