【机器学习】为什么GBDT可以超越深度学习
今天的討論比較玄學,至于為什么用曹雪芹的詩當封面,看完文章明白啦。
目錄
背景
玄學立論
娓娓道來
后話
背景
之前在知乎上回答了一個類似的問題,他們問為什么很多領域的比賽數據集上的GBDT效果那么好(比神經網絡)。
回答這個問題前,先引入一個概念,目標的非線性。
非線性,應該是從原始輸入到目標決策之間gap的刻畫,用博大精深的中文語言為例:
比如垃圾話,就很直白,無非是問候幾個人物,幾個器官,幾個行為。可以望文生義。
但是陰陽話,這個就非常難了。
感恩兩字,你要看他真的感恩,還是在那里只能咸因。威武支持有希望了,你看他是不是在叼飛盤,這就很難。
這些都要看具體的場景,人物和環境,這就叫非線性。
人的解決問題,大概就是把一個復雜目標化簡解決的能力,目的是降低問題的非線性,把一個問題去解決的過程。具體到數據挖掘上,應該是把特征表達出來的能力。
具體到問題,非線性比較高的場景有,序列建模,大規模離散ID建模,陰陽話識別,語音的特征表達。這些都是非線性非常高的場景,基本都超出了手動解決輸入到目標之間gap的能力。
玄學立論
先用一個玄學的圖來立論。
簡而言之當你的認知超越問題的難度時候,可以通過一些方法把問題去復雜化,一般GBDT的效果會比NN好。
可這話真的太晦澀了。
我們回到之前的知乎上回答看看吧。
娓娓道來
先來幾個問題作為引子吧,在回答為什么在實際的kaggle比賽中,GBDT效果非常好?
Q1.kaggle上的數據和賽題有什么特點?
Q2.GBDT和NN有什么特點?
Q3.為什么你很少看見Kaggle上用SVM LR立大功?
Q4.怎么根據數據特點進行模型選型?
Q5.近三年,有哪些非CV和NLP,Speech的比賽上印證了NN和GBDT的江湖地位之爭
一句話來回答,本質上還是由數據和模型決定的。
再來說一下為什么kaggle里給你一種GBDT滿天飛的感覺。
來到Q1kaggle上的數據和賽題有什么特點?
跟現在研究生入學,大部分用深度學習懟圖片文本不一樣,以前kaggle賽題,尤其是2019年前,有很大比例是工業界的表格數據。比如各種實際的預測預估任務,CTR,信用評分,銷量預測等。他們有如下幾個特點。
1.工業界的數據臟。異常點,缺失值,歷史遺留問題造成的數據痕跡等等。
2.工業界的數據可解釋性很強,每一列有真實的業務含義。
在以上背景下,再來到Q2.GBDT和NN有什么特點?
我們理一下樹模型天然的優點
1.天然的魯棒性,能自動從異常點,缺失值學到信息。不需要歸一化。直接上手一把梭哈。
2.樹可以半自動化地完成一些特征非線性表達的工作,而且基于貪心切分+采樣等抗過擬合手段,能比較好的挖掘數據的非線性。
3.樹的可解釋性很好,能生產特征重要性,幫助你理解數據,改善特征工程。一個經典的套路是思考topN特征背后的邏輯,并圍繞他們進行特征工程。
我們理一下NN模型的優點:
1.全自動化的特征工程和登峰造極的非線性表達能力,在數據表征范式統一,語義含義統一的稠密數據上(典型文本圖像)上,NN一個打十個。另外,典型的像ID序列這種,人很難做出花來。也就是Bag of words或者借用embedding表達一下,還有一半是NN的功勞。
2.NN模型容量極大,在數據量的加持上,放大了1的優勢。
給你們整個表吧
| GBDT | 1.魯棒,異常點,缺失值都是可以學習的信息 2.適中的非線性能力,在一定范圍內是優勢3.可解釋性很好,可以幫你優化特征工程 | 1.非線性表達能力有限,很難在文本圖像上有用。 2.數據量帶來的邊際增益不大,容易觸及天花板。 |
| NN | 1.全自動化的特征工程 2.模型容量大,可以利用數據量的優勢 | 1.異常值敏感,依賴手動處理 2.不可解釋,改進迭代的過程有點像蒙特卡洛,措施和結果的路徑太遠。3.過強的非線性中隱含過擬合和噪音。 |
但是看起來LGB的優點在其他模型也有,那么Q3為什么不是SVM和LR?
1.這兩種模型獲取非線性的方式太粗暴了,有種大炮打蚊子的感覺。依靠kernel強行把VC維提高,帶來的噪聲特別多,有用信息很少,并且kernal是有先驗的,很容易被人設的參數帶跑偏。這在實際業務數據中是非常致命的。
2.理論上LR+完美的特征工程可以很強,但是太難了,又不是人人都是特征工程大師。早期鳳巢億級特征跑LR效果特別好逐漸成為傳說。
說了那么多,那么我們到Q4.怎么根據數據特點進行模型選型?
前面講了很多了,大概可以從這4方面來的。A.數據量大小 B.數據到預測目標的非線性C.單列數據可解釋性D.特征工程天花板高低
XGB/LGB/CTB在最后兩個上很有優勢。NN在前兩個方面很有優勢。
Q5.近三年,有哪些非CV和NLP,Speech的比賽上印證了NN和GBDT的江湖地位之爭
NN勝出的比賽
第一個
Google Brain - Ventilator Pressure Prediction
這個比賽是醫學數據,表結構。干的事情是根據呼吸機的呼吸閥百分比來預測壓力。
Transfoermer+特征工程在排行榜上單模型可以殺到金牌。
示例代碼:
TensorFlow Transformer - [0.112]
第二個
Riiid Answer Correctness Prediction
這個題目是根據學生歷史學習情況,預測做題表現。
Transfoermer+特征工程勝出。
示例代碼:
Riiid LGBM bagging2 + SAKT =0.781
GBDT完勝的比賽。
這部分就比較多了,不詳細介紹了。
IEEE-CIS Fraud Detection | Kaggle
Elo Merchant Category Recommendation
Home Credit Default Risk
后話
好風憑借力,送我上青云。
力,就是人的主觀能動性。
風,是模型本身的潛力。
風好不好,要看具體的問題。主觀能動性的力量很強,但也是有天花板的。
在合適的問題上,選擇合適的模型,發揮你的主觀能動性。
這大概也是大部分問題的解決方式吧。
往期精彩回顧適合初學者入門人工智能的路線及資料下載機器學習及深度學習筆記等資料打印機器學習在線手冊深度學習筆記專輯《統計學習方法》的代碼復現專輯 AI基礎下載黃海廣老師《機器學習課程》視頻課黃海廣老師《機器學習課程》711頁完整版課件本站qq群955171419,加入微信群請掃碼:
總結
以上是生活随笔為你收集整理的【机器学习】为什么GBDT可以超越深度学习的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【深度学习】在PyTorch中使用 LS
- 下一篇: jeecg <t:choose 功能标签