梯度提升決策樹

就如同包包和增強功能,梯度增強是 也就是機器學習演算法一般而言,梯度增強包括 兩種模型:

  • 「弱」機器學習模型,通常為決策樹
  • 「強」機器學習模型 我們來看評估分類模型成效時 的喚回度和精確度指標

在梯度增強中,每個步驟都會訓練一個新的弱模型來預測 「錯誤」但這稱為虛擬回應。 我們會詳細說明「錯誤」目前我們先假設為「錯誤」是介於 預測出預測和迴歸標籤弱模型 (也就是「錯誤」) 是 然後加入至強大模型並加上負號,以減少 並採用可靠的模型

漸層增強功能是疊代性質。每個疊代都會叫用下列公式:

\[ F_{i+1} = F_i - f_i \]

其中:

  • $F_i$ 是步驟 $i$ 的強項。
  • $f_i$ 是步驟 $i$ 中的弱模式。

系統會重複這項作業,直到符合停止條件 (例如最大值) 為止 重複次數,或者 (強) 模型開始過度適配 個別的驗證資料集

我們來看看簡易迴歸資料集的梯度增強,其中:

  • 目標是從「$x$」預測 $y$。
  • 高強度模型會初始化為零常數:$F_0(x) = 0$。
,瞭解如何調查及移除這項存取權。
# Simplified example of regressive gradient boosting.

y = ... # the labels
x = ... # the features

strong_model = []
strong_predictions = np.zeros_like(y) # Initially, the strong model is empty.

for i in range(num_iters):

    # Error of the strong model
    error = strong_predictions - y

    # The weak model is a decision tree (see CART chapter)
    # without pruning and a maximum depth of 3.
    weak_model = tfdf.keras.CartModel(
        task=tfdf.keras.Task.REGRESSION,
        validation_ratio=0.0,
        max_depth=3)
    weak_model.fit(x=x, y=error)

    strong_model.append(weak_model)

    weak_predictions = weak_model.predict(x)[:,0]

    strong_predictions -= weak_predictions

將這段程式碼套用至下列資料集:

一個特徵 x 及其標籤 y 的基準真相圖。主題是
一連串模糊的正弦
波紋。

圖 25.具有一個數值特徵的合成迴歸資料集。 ,瞭解如何調查及移除這項存取權。

 

以下是第一次疊代梯度之後的三個圖 演算法:

3 圖。第一張圖顯示預測結果的
是斜率 0 和 y 截距的直線第二張圖顯示
也就是一連串正弦波第三個圖表顯示
也就是模型預測結果的平方
波紋。

圖 26.初次疊代後的三個圖表。 ,瞭解如何調查及移除這項存取權。

 

圖 26 中圖的注意事項:

  • 第一張圖顯示 強後模型的預測結果 一律為 0。
  • 第二張圖顯示錯誤,即弱勢模型的標籤。
  • 第三個圖則顯示出弱模型。

第一個弱化模型是學習標籤的粗略表示法,且主要是 著重在特徵空間的左側 (變化性最高的部分 進而造成常數錯誤模型的最大錯誤)。

以下為再次執行演算法疊代的圖表:

3 圖。第一張圖顯示預測結果的
與上個資料集
圖.第二張圖呈現了強烈模型的失誤 (雜訊過多)
有一組正弦波第三個圖則顯示出弱模型的預測結果
是兩個正方形
波紋。

圖 27.第二次疊代後,有三個圖譜。 ,瞭解如何調查及移除這項存取權。

 

圖 27 中圖的注意事項:

  • 經過強化的模型現在包含 先前的疊代作業
  • 高強度模型的新誤差變小了。
  • 現在,弱式模型的新預測結果會聚焦於 特徵空間

我們將演算法重複執行 8 次:

這些情節顯示出強大的模型越來越接近實際真相
微弱模型的預測結果會逐漸演變
更弱。

圖 28.第三次疊代和第十次疊代後的三個圖表。 ,瞭解如何調查及移除這項存取權。

 

在圖 28 中,請注意,強大模型的預測結果開始類似 資料集的走向

這些圖形展示了使用決策樹的梯度增強演算法 弱勢學生這種組合稱為「梯度增強 (決策) 樹」

上圖顯示梯度增強的本質。不過, 範例缺少以下兩項實際作業:

  • 收縮
  • 透過牛頓方法的一個步驟將分葉值最佳化
,瞭解如何調查及移除這項存取權。

收縮

弱模型 $f_i$ 乘以小值 $\nu$ (例如 $\nu =) 0.1$)。稱為這個小數值的 縮減。也就是不要每次都使用以下程式碼 公式:

\[ F_{i+1} = F_i - f_i \]

每個疊代作業都會使用下列公式:

\[ F_{i+1} = F_i - \nu f_i \]

梯度提升的縮減與類神經網路的學習率類似。 縮減可控制強大模型的學習速度,這有助於 過度配適。也就是說,將值縮減到接近 0.0 可減少過度配適的情況 值更為接近 1.0

在上述程式碼中,縮減內容會如下所示:

shrinkage = 0.1   # 0.1 is a common shrinkage value.
strong_predictions -= shrinkage * weak_predictions