就如同包包和增強功能,梯度增強是 也就是機器學習演算法一般而言,梯度增強包括 兩種模型:
- 「弱」機器學習模型,通常為決策樹
- 「強」機器學習模型 我們來看評估分類模型成效時 的喚回度和精確度指標
在梯度增強中,每個步驟都會訓練一個新的弱模型來預測 「錯誤」但這稱為虛擬回應。 我們會詳細說明「錯誤」目前我們先假設為「錯誤」是介於 預測出預測和迴歸標籤弱模型 (也就是「錯誤」) 是 然後加入至強大模型並加上負號,以減少 並採用可靠的模型
漸層增強功能是疊代性質。每個疊代都會叫用下列公式:
\[ 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
將這段程式碼套用至下列資料集:
圖 25.具有一個數值特徵的合成迴歸資料集。 ,瞭解如何調查及移除這項存取權。
以下是第一次疊代梯度之後的三個圖 演算法:
圖 26.初次疊代後的三個圖表。 ,瞭解如何調查及移除這項存取權。
圖 26 中圖的注意事項:
- 第一張圖顯示 強後模型的預測結果 一律為 0。
- 第二張圖顯示錯誤,即弱勢模型的標籤。
- 第三個圖則顯示出弱模型。
第一個弱化模型是學習標籤的粗略表示法,且主要是 著重在特徵空間的左側 (變化性最高的部分 進而造成常數錯誤模型的最大錯誤)。
以下為再次執行演算法疊代的圖表:
圖 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