Kaggle知識點:表格競賽中NN什麽(me) 時候優(you) 於(yu) 樹模型?
在表格數據建模中,特征工程和機器學習(xi) 模型是最重要的兩(liang) 個(ge) 要素。特征工程為(wei) 模型提供了高質量的輸入,而機器學習(xi) 模型則通過學習(xi) 特征之間的關(guan) 係來實現預測和分類。
- 特征工程是指從原始數據中提取、選擇和轉換特征的過程
- 機器學習模型是表格數據建模的核心,它通過學習數據中的模式和規律來做出預測或分類
盡管近年來神經網絡在表格數據上取得了進展,但關(guan) 於(yu) NNs是否普遍優(you) 於(yu) GBDTs的討論仍然存在。
在本文中,我們(men) 將討論兩(liang) 個(ge) 主要問題:
- 算法選擇的重要性:是否真的需要在NNs和GBDTs之間做出選擇?
- 數據集特性對算法性能的影響:哪些數據集特性使得NNs或GBDTs更適合?
機器學習(xi) 模型
在表格建模中,流行的模型有如下幾類:
GBDTs:CatBoost、LightGBM、XGBoost。
神經網絡:DANet、FT-Transformer、兩(liang) 種MLP、NODE、ResNet、SAINT、STG、TabNet、TabPFN、VIME。
基線方法:決(jue) 策樹、KNN、邏輯回歸、隨機森林、SVM。
GBDT
梯度提升決(jue) 策樹(GBDT) 是一種強大的集成學習(xi) 算法,通過構建一係列弱學習(xi) 器(通常是決(jue) 策樹)來逐步減少預測誤差。GBDT的核心思想是每次迭代都學習(xi) 一個(ge) 模型來擬合前一個(ge) 模型的殘差,從(cong) 而逐步提升模型的性能。
CatBoost 是由俄羅斯搜索引擎公司Yandex開發的一種梯度提升算法,特別擅長處理類別型特征。以下是其主要特點:
處理類別型特征:CatBoost能夠自然地處理分類數據,無需進行複雜的特征工程。它通過引入有序提升(ordered boosting)技術,有效減少了對類別型數據進行標簽編碼的需要。
防止過擬合:CatBoost在模型訓練過程中引入了多種正則化技術,如L2正則化和早停法,能夠有效防止模型過擬合。
訓練效率:盡管CatBoost在處理類別型特征方麵表現優(you) 異,但在大規模數據集上的訓練速度相對較慢。
LightGBM 是微軟開發的一種高效的梯度提升框架,主要針對大規模數據集的訓練進行了優(you) 化。其特點包括:
高效性:LightGBM使用直方圖算法來加速決(jue) 策樹的構建過程,顯著提高了訓練速度和內(nei) 存效率。
Leaf-wise樹生長策略:與(yu) 傳(chuan) 統的Level-wise策略不同,LightGBM采用Leaf-wise(按葉子生長)策略,能夠更有效地利用計算資源。
分布式支持:LightGBM支持分布式訓練,可以快速處理海量數據。
XGBoost 是一種廣泛應用於(yu) 工業(ye) 界的梯度提升算法,具有以下特點:
高效性:XGBoost通過引入二階導數和正則化項,使得模型訓練更加高效和準確。
並行計算:XGBoost支持並行計算,能夠充分利用多核處理器的計算能力。
靈活性:XGBoost提供了豐(feng) 富的參數配置,允許用戶根據具體(ti) 任務進行靈活的調整。
神經網絡
標準MLP由輸入層、一個(ge) 或多個(ge) 隱藏層以及輸出層組成,層與(yu) 層之間是全連接的。隱藏層的神經元通過與(yu) 輸入層的全連接以及激活函數(如sigmoid或tanh)來生成輸出,輸出層通常使用softmax函數進行多類別分類。
FT-Transformer是一種用於(yu) 分類任務的神經網絡模型,其結構類似於(yu) ResNet,但在某些方麵有所不同。它通過仿照BERT的設計增加了output token(CLS token)與(yu) features token一起進行進入Transformer參與(yu) 注意力計算。
ResNet通過引入殘差塊來解決(jue) 深層神經網絡中的梯度消失問題。殘差塊允許網絡學習(xi) 殘差變化,從(cong) 而能夠更好地捕捉和表示輸入和輸出之間的關(guan) 係。
TabNet是一個(ge) 循環架構,交替進行特征的動態重加權和傳(chuan) 統的前饋模塊。它通過動態特征選擇和重加權來捕捉特征之間的複雜交互。
TabPFN是一種基於(yu) 概率流的神經網絡模型,專(zhuan) 門用於(yu) 處理表格數據。它通過概率流來建模特征之間的複雜分布和關(guan) 係。
實驗設置
實驗數據集
實驗在176個(ge) 分類數據集上進行,這些數據集來自OpenML,包括OpenML-CC18套件、OpenML基準測試套件以及其他OpenML數據集。由於(yu) 實驗規模龐大(共訓練了538,650個(ge) 模型),每個(ge) 實驗的運行時間被限製在10小時內(nei) ,因此排除了大小超過1.1M的數據集。
使用Python庫PyMFE提取了965個(ge) 元特征,這些元特征包括:
通用特征:如數據點數量、類別數量、數值/分類特征數量。
統計特征:如所有特征分布的最小、平均、最大偏度和峰度。
信息論特征:如目標的香農(nong) 熵。
地標特征:如1-最近鄰在數據集子樣本上的表現。
基於(yu) 模型的特征:如決(jue) 策樹模型中葉節點的數量。
實驗設計
對於(yu) 每個(ge) 數據集,作者使用OpenML提供的10個(ge) 訓練/測試折,以便與(yu) 其他使用相同OpenML數據集的研究進行比較。為(wei) 了進行超參數調優(you) ,作者將每個(ge) 訓練折進一步分為(wei) 訓練集和驗證集。對於(yu) 每個(ge) 算法和每個(ge) 數據集折,作者在最多10小時內(nei) 運行算法,並使用最多30個(ge) 超參數集(一個(ge) 默認集和29個(ge) 隨機集,使用Optuna)。每個(ge) 參數化算法在32GiB V100上最多運行兩(liang) 小時來完成一次訓練/評估周期。
實驗結果
表1和表2分別展示了算法在98個(ge) 數據集和57個(ge) 小型數據集(大小≤1250)上的表現。結果顯示:
CatBoost和TabPFN∗表現最佳:在所有數據集中,CatBoost和TabPFN∗的平均排名最高。
ResNet和SAINT表現優(you) 異:在小型數據集中,ResNet和SAINT的表現也非常出色。
GBDTs整體(ti) 表現優(you) 於(yu) NNs:除了TabPFN∗,GBDTs在大多數數據集上的表現優(you) 於(yu) NNs。
基線方法表現穩定:隨機森林和SVM等基線方法在某些數據集上也表現出色。
通過分析元特征發現:
數據集的正則性:如特征分布的偏度和峰度,是NNs優(you) 於(yu) GBDTs的預測因素。
數據集大小:GBDTs在大型數據集上表現更好。
對於(yu) 許多表格數據集,選擇NNs或GBDTs並不是最關(guan) 鍵的因素。相反,輕量級的超參數調優(you) 可能更為(wei) 重要。此外,TabPFN在小數據集上表現出色,而GBDTs在處理不規則數據集時表現更好。
實驗分析
沒有單一算法占主導地位
首先比較了所有算法在所有數據集上的平均排名,排除了在實驗設置中因內(nei) 存或超時問題導致無法運行的算法。因此,作者考慮了98個(ge) 數據集(在下一部分和附錄D.2中包含了所有176個(ge) 數據集的結果)。
令人驚訝的是,幾乎每個(ge) 算法至少在一個(ge) 數據集上排名第一,同時在另一個(ge) 數據集上排名最後。正如預期的那樣,基線方法通常表現較差,而神經網絡和GBDTs在平均表現上更好。表現最好的算法CatBoost的平均排名僅(jin) 為(wei) 5.06,這表明沒有一種方法在大多數數據集上占主導地位。
TabPFN表現突出
在表1中,作者發現TabPFN的表現幾乎與(yu) CatBoost相當。這尤其令人驚訝,原因有二:
訓練時間短:TabPFN每1000個(ge) 實例的平均訓練時間為(wei) 0.25秒,是所有非基線算法中最快的,比CatBoost快兩(liang) 個(ge) 數量級。
隨機采樣:為(wei) 了在大型數據集上運行TabPFN,作者僅(jin) 從(cong) 完整訓練數據集中隨機抽取3000個(ge) 樣本進行訓練。盡管TabPFN隻看到了部分訓練數據,但其表現仍然接近頂級。
在表2中,作者對57個(ge) 最小數據集(大小≤1250)進行了同樣的分析,發現TabPFN在所有算法中表現最佳,同時訓練時間也最短。然而,TabPFN的推理時間較高,為(wei) 每1000個(ge) 實例2.36秒。
性能與(yu) 運行時間的關(guan) 係
在圖2中,作者繪製了所有算法在所有數據集上的準確率與(yu) 運行時間的關(guan) 係圖。總體(ti) 而言,神經網絡需要最長的運行時間,並且通常優(you) 於(yu) 基線方法。另一方麵,GBDTs在運行時間較短的同時也表現出色:它們(men) 始終優(you) 於(yu) 基線方法,並且運行時間比NNs少。TabPFN再次表現出色,其在訓練時間少於(yu) 任何GBDT或NN的情況下達到了頂級準確率。
GBDTs vs. NNs
令人驚訝的是,GBDTs、NNs和基線方法的三向維恩圖相對平衡,盡管GBDTs總體(ti) 上略占優(you) 勢。
實驗發現GBDTs在大多數數據集上是唯一的高性能算法家族。然而,這些勝利的差距小於(yu) 0.01%,對從(cong) 業(ye) 者來說可能並不顯著。
算法選擇 vs. 調優(you)
在實驗中對比了默認超參數的最佳GBDT和NN之間的性能差異,以及使用默認超參數的CatBoost與(yu) 通過30次隨機搜索在驗證集上調優(you) 的CatBoost之間的性能差異(見圖4右)。
令人驚訝的是,對於(yu) 大約三分之一的數據集,輕量級超參數調優(you) 比GBDT與(yu) NN選擇帶來了更大的性能提升。這表明,對於(yu) 大量數據集,確定GBDTs或NNs哪個(ge) 更好並不必要:對CatBoost或ResNet等算法進行輕量級調優(you) 可以獲得同樣的性能提升。
評論已經被關(guan) 閉。