XGBoost核心技術與實現

2021-10-08 07:33:21 字數 944 閱讀 8368

在學習本文之前,需要掌握cart樹、boosting演算法。

模型定義:

在傳統gtb模型中新增了正則項,為了控制模型整體的複雜度和葉子結點權值分數。

xgboost對gtb的優化:

目標函式近似

模型的目標函式用傳統的方法很難在歐式空間進行優化,xgboost使用近似的方法解決。

泰勒公式是乙個用函式某點的資訊描述其附近取值的公式,如果函式曲線足夠平滑,則可通過某點的各階導數值構建乙個多項式來近似表示函式在該點的鄰域的值。

xgboost目標函式與gtb對比:

最優目標函式葉子權重

xgboost在每輪訓練生成新的樹模型時,首先要計算所有特徵在所有切分點**前後的objsplit值,然後選取最大的特徵及切分點作為最優特徵和最優切分點,xgboost提供了多種切分點查詢演算法。

精確貪心演算法

基於直方圖的近似演算法

快速直方圖演算法

加權分位數概要演算法

稀疏感知切分點查詢演算法

xgboost處理稀疏資料的方法是給每棵樹指定乙個預設方向,即當特徵值缺失時,該樣本會被劃分到預設方向的節點上。xgboost通過稀疏感知切分點查詢演算法來選擇預設方向。

dropout技術+mart=dart

具體來說,dart在mart上做了兩處優化:

計算梯度時,從現有模型的所有樹中隨機選擇乙個子集

對新增加的樹進行標準化,防止模型超出擬合目標

是介於mart和rf之間的一種權衡實現。

除了利用weight、cover和gain等特徵重要性的評估方法,還有一些單個樣本的個性化評估,xgboost整合了saabas和shap方法。

基於列儲存資料塊的並行學習

csc格式平行計算。在訓練之前對所有特徵值進行一次排序,方便復用。

快取感知訪問

外存塊計算

Redis核心技術與實戰

作為同時具備高效能 高可靠和高可擴充套件性的典型鍵值資料庫,redis不僅功能強大,而且穩定,理所當然地成為了大型網際網路公司的首選。眾多大廠在招聘的時候,不僅會要求面試者能簡單地使用redis,還要能深入地理解底層實現原理,並且具備解決常見問題的能力。可以說,熟練掌握redis已經成為了技術人的乙...

Canvas 核心技術

最近專案需求中要寫較多h5小遊戲,遊戲本身體量不是很複雜,主要是承載較多業務邏輯,所以決定用canvas來完成遊戲部分。之前只是知道h5中有canvas這個東西,也知道它大概是畫圖的,但具體怎麼用,還是一無所知的。在mdn在看了一些相關資料,一口氣也看了html 5 canvas 核心技術和html...

Canvas 核心技術

最近專案需求中要寫較多h5小遊戲,遊戲本身體量不是很複雜,主要是承載較多業務邏輯,所以決定用canvas來完成遊戲部分。之前只是知道h5中有canvas這個東西,也知道它大概是畫圖的,但具體怎麼用,還是一無所知的。在mdn在看了一些相關資料,一口氣也看了html 5 canvas 核心技術和html...