在表格中基於樹的模型與深度學習優劣對比
導讀 | 在這篇文章中,我將詳細解釋這篇論文《Why do tree-based models still outperform deep learning on tabular data》這篇論文解釋了一個被世界各地的機器學習從業者在各種領域觀察到的現象——基於樹的模型在分析表格資料方面比深度學習/神經網路好得多。 |
在這篇文章中,我將詳細解釋這篇論文《Why do tree-based models still outperform deep learning on tabular data》這篇論文解釋了一個被世界各地的機器學習從業者在各種領域觀察到的現象——基於樹的模型在分析表格資料方面比深度學習/神經網路好得多。
這篇論文進行了大量的預處理。例如像刪除丟失的資料會阻礙樹的效能,但是隨機森林非常適合缺少資料的情況,如果你的資料非常雜亂:包含大量的特徵和維度。RF的魯棒性和優點使其優於更“先進”的解決方案,因為後者很容易出現問題。
其餘的大部分工作都很標準。我個人不太喜歡應用太多的預處理技術,因為這可能會導致失去資料集的許多細微差別,但論文中所採取的步驟基本上會產生相同的資料集。但是需要說明的是,在評估最終結果時要使用相同的處理方法。
論文還使用隨機搜尋來進行超引數調優。這也是行業標準,但根據我的經驗,貝葉斯搜尋更適合在更廣泛的搜尋空間中進行搜尋。
瞭解了這些就可以深入我們的主要問題了——為什麼基於樹的方法勝過深度學習?
這是作者分享深度學習神經網路無法與隨機森林競爭的第一個原因。 簡而言之,當涉及到非平滑函式/決策邊界時,神經網路很難建立最適合的函式。 隨機森林在怪異/鋸齒/不規則模式下做得更好。
如果我來猜測原因的話,可能是在神經網路中使用了梯度,而梯度依賴於可微的搜尋空間,根據定義這些空間是平滑的,所以無法區分尖銳點和一些隨機函式。 所以我推薦學習諸如進化演算法、傳統搜尋等更基本的概念等 AI 概念,因為這些概念可以在 NN 失敗時的各種情況下取得很好的結果。
有關基於樹的方法(RandomForests)和深度學習者之間決策邊界差異的更具體示例,請檢視下圖 -
在附錄中,作者對上述視覺化進行了下面說明:
在這一部分中,我們可以看到 RandomForest 能夠學習 MLP 無法學習的 x 軸(對應日期特徵)上的不規則模式。 我們展示了預設超引數的這種差異,這是神經網路的典型行為,但是實際上很難(儘管並非不可能)找到成功學習這些模式的超引數。
另一個重要因素,特別是對於那些同時編碼多個關係的大型資料集的情況。如果向神經網路輸入不相關的特徵結果會很糟糕(而且你會浪費更多的資源訓練你的模型)。這就是為什麼花大量時間在EDA/領域探索上是如此重要。這將有助於理解特性,並確保一切順利執行。
論文的作者測試了模型在新增隨機和刪除無用特性時的效能。基於他們的結果,發現了2個很有趣的結果
刪除大量特性減少了模型之間的效能差距。這清楚地表明,樹型模型的一大優勢是它們能夠判斷特徵是否有用並且能夠避免無用特徵的影響。
與基於樹的方法相比,向資料集新增隨機特徵表明神經網路的衰退要嚴重得多。ResNet尤其受到這些無用特性的影響。transformer的提升可能是因為其中的注意力機制在一定程度上會有一些幫助。
對這種現象的一種可能解釋是決策樹的設計方式。 任何學習過 AI 課程的人都會知道決策樹中的資訊增益和熵的概念。這使得決策樹能夠透過比較剩下的特性來選擇最佳的路徑。
回到正題,在表格資料方面,還有最後一件事使 RF 比 NN 表現更好。 那就是旋轉不變性。
神經網路是旋轉不變的。 這意味著如果對資料集進行旋轉操作,它不會改變它們的效能。 旋轉資料集後,不同模型的效能和排名發生了很大的變化,雖然ResNets一直是最差的, 但是旋轉後他保持原來的表現,而所有其他模型的變化卻很大。
這很現象非常有趣:旋轉資料集到底意味著什麼?整個論文中也沒有詳細的細節說明(我已經聯絡了作者,並將繼續跟進這個現象)。如果有任何想法,也請在評論中分享。
但是這個操作讓我們看到為什麼旋轉方差很重要。根據作者的說法,採用特徵的線性組合(這就是使ResNets不變的原因)實際上可能會錯誤地表示特徵及其關係。
透過對原始資料的編碼獲得最佳的資料偏差,這些最佳的偏差可能會混合具有非常不同的統計特性的特徵並且不能透過旋轉不變的模型來恢復,會為模型提供更好的效能。
這是一篇非常有趣的論文,雖然深度學習在文字和影像資料集上取得了巨大進步,但它在表格資料上的基本沒有優勢可言。論文使用了 45 個來自不同領域的資料集進行測試,結果表明即使不考慮其卓越的速度,基於樹的模型在中等資料(~10K 樣本)上仍然是最先進的。
原文來自:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69955379/viewspace-2914297/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- ClickHouse與ES的優劣對比
- XML 與 JSON 優劣對比XMLJSON
- 【機器學習】深度學習與經典機器學習的優劣勢一覽機器學習深度學習
- 基於深度學習模型Wide&Deep的推薦深度學習模型IDE
- 主流程式語言的優勢與劣勢對比
- 不吹不黑比對下React與Vue的差異與優劣ReactVue
- 深度學習中的Normalization模型深度學習ORM模型
- CORS跨域與Nginx反向代理跨域優劣對比CORS跨域Nginx
- 常見Hybrid App框架優劣對比APP框架
- 網頁前端黑科技PWA的優劣對比網頁前端
- 基於CPU的深度學習推理部署優化實踐深度學習優化
- 基於Keras和Gunicorn+Flask部署深度學習模型KerasFlask深度學習模型
- 《深度學習案例精粹:基於TensorFlow與Keras》案例集用於深度學習訓練深度學習Keras
- 深度學習中的Lipschitz約束:泛化與生成模型深度學習模型
- 如何理解雅克比矩陣在深度學習中的應用?矩陣深度學習
- 深度學習模型在序列標註任務中的應用深度學習模型
- 基於Theano的深度學習框架keras及配合SVM訓練模型深度學習框架Keras模型
- [譯]深度學習模型的簡單優化技巧深度學習模型優化
- epic和steam的區別介紹及優劣對比
- NLP與深度學習(六)BERT模型的使用深度學習模型
- 深度學習模型調優方法(Deep Learning學習記錄)深度學習模型
- 基於pytorch的深度學習實戰PyTorch深度學習
- 基於TensorFlow的深度學習實戰深度學習
- 實戰 | 基於深度學習模型VGG的影象識別(附程式碼)深度學習模型
- epic和steam的區別介紹及優劣對比 epic與steam互通嗎
- 深度學習中的優化方法(二)深度學習優化
- 深度學習中的優化方法(一)深度學習優化
- 基於深度對抗學習的智慧模糊資料生成方法
- 深度學習模型深度學習模型
- Linux與windows對比有什麼優勢?學習分析!LinuxWindows
- 【機器學習基礎】關於深度學習的Tips機器學習深度學習
- Python和C#對比,優劣勢是什麼?PythonC#
- Python對比其他語言有什麼優劣勢?Python
- 影像Resize方式對深度學習模型效果的影響深度學習模型
- 與MSSQL對比學習MYSQL的心得MySql
- 對抗深度學習: 魚 (模型準確性) 與熊掌 (模型魯棒性) 能否兼得?深度學習模型
- 深度學習在OC中的應用深度學習
- 基於深度學習的回聲消除系統與Pytorch實現深度學習PyTorch