LightGBM - 與其他Boosting演算法對比



LightGBM 在處理分類資料集方面也表現出色,因為它使用分裂或分組方法處理分類特徵。我們將所有分類特徵轉換為類別資料型別,以便與LightGBM中的分類特徵進行互動。完成後,分類資料將由LightGBM自動處理,無需手動管理。

LightGBM 使用GOSS方法在訓練決策樹時對資料進行取樣。此方法設定每個資料樣本的方差,並按降序排列。方差較低的資料樣本已經表現良好,因此在對資料集進行取樣時,它們的權重會較低。

因此,在本章中,我們將重點關注Boosting演算法之間的差異,並將它們與LightGBM進行比較。

您應該使用哪種Boosting演算法?

現在,問題很簡單:如果所有這些機器學習演算法都表現良好、速度快且精度更高,那麼您應該選擇哪一個?!!

這些問題的答案不能是單一的Boosting策略,因為每種策略最適合您將要處理的特定問題型別。

例如,如果您認為您的資料集需要正則化,那麼您可以肯定地使用XGBoost。CatBoost和LightGBM是處理分類資料的不錯選擇。如果您需要更多關於該方法的社群支援,可以探索諸如XGBoost或Gradient Boosting之類的演算法,這些演算法是在幾年前開發的。

Boosting演算法之間的比較

將資料擬合到模型後,所有策略都提供了相對相似的結果。與其他演算法相比,LightGBM的效能似乎較差,但在這種情況下,XGBoost的效能良好。

為了展示每個演算法在相同資料上的表現,我們可以顯示其y_test和y_pred值的圖形。

import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np

# Example data 
y_test = np.linspace(0, 100, 100)

# Predictions with some noise
y_pred1 = y_test + np.random.normal(0, 10, 100)  
y_pred2 = y_test + np.random.normal(0, 8, 100)
y_pred3 = y_test + np.random.normal(0, 6, 100)
y_pred4 = y_test + np.random.normal(0, 4, 100)
y_pred5 = y_test + np.random.normal(0, 2, 100)

fig, ax = plt.subplots(figsize=(11, 5))

# Plot each model's predictions
sns.lineplot(x=y_test, y=y_pred1, label='GradientBoosting', ax=ax)
sns.lineplot(x=y_test, y=y_pred2, label='XGBoost', ax=ax)
sns.lineplot(x=y_test, y=y_pred3, label='AdaBoost', ax=ax)
sns.lineplot(x=y_test, y=y_pred4, label='CatBoost', ax=ax)
sns.lineplot(x=y_test, y=y_pred5, label='LightGBM', ax=ax)

# Set labels
ax.set_xlabel('y_test', color='g')
ax.set_ylabel('y_pred', color='g')

# Display the plot
plt.show()

輸出

以下是上述程式碼的結果 -

Comparison of Boosting Algorithms

上圖顯示了每種方法預期的y_test和y_pred值。我們可以看到,與其他演算法相比,LightGBM和CatBoost的效能較差,因為它們預測的y_pred值遠高於或低於其他方法。從圖中可以看出,XGBoost和GradientBoosting在這組資料上優於所有其他演算法,其預測值似乎是所有演算法的平均值。

不同Boosting演算法之間的區別

以下是不同Boosting演算法之間的表格差異 -

特徵 梯度提升 LightGBM XGBoost CatBoost AdaBoost
引入年份 不確定 2017 2014 2017 1995
處理分類資料 需要額外步驟,例如獨熱編碼 需要額外步驟 無需特殊步驟 自動處理 無需特殊步驟
速度/可擴充套件性 中等 快速 快速 中等 快速
記憶體使用 中等 中等
正則化(防止過擬合)
並行處理(同時執行多個任務)
GPU支援(可以使用顯示卡)
特徵重要性(顯示哪些特徵重要)
廣告

© . All rights reserved.