從Kaggle歷史數據看機器學習競賽趨勢

從Kaggle歷史數據看機器學習競賽趨勢

來自專欄論智96 人贊了文章

作者:Shivam Bansal

編譯:Bot

編者按:Kaggle是全球最大數據建模和數據分析競賽平台,也是檢驗個人水平的最佳舞台。現如今,隨著社會對機器學習人才的需求提高,在Kaggle上刷到過前5%、10%也成了應聘的一個硬指標。考慮到Kaggle的權威性和受歡迎度,這個平台的數據應該能體現整個數據科學領域的發展軌跡。

多年來,數據科學領域的許多趨勢已經發生了改變。Kaggle,作為全球最大、最受歡迎的數據科學社區,記錄著這些變化的演進狀態。本文將使用Kaggle Meta Data逐一分析,看看這些年來,我們的數據科學究竟發生了什麼變化?

1. 線性回歸 vs logistic回歸

線性回歸與邏輯回歸是機器學習中比較基礎又很常用的內容,其中前者可以進行連續值預測,後者能被用於解決分類問題。所以我們先從它們開始,根據Kaggle論壇的帖子數對比這兩種演算法的熱度趨勢。

藍:線性回歸;橙:logistic回歸

如上圖所示,橙線大多數時間都在藍線之上,用戶這些年來似乎一直都更喜歡聊logistic回歸。而宏觀來看,兩種演算法的變化趨勢幾乎吻合,峰值重合度較高,雖然起伏明顯,但這8年來,它們總體是呈上升趨勢的。

那麼logistic回歸受歡迎的原因是什麼?一個跡象表明,Kaggle上的分類問題遠多於回歸問題,其中一個代表是這些年來最受歡迎的泰坦尼克號生存預測競賽。這是Kaggle上歷史最「悠久」的競賽之一,用戶的討論自然也很激烈。而最受歡迎的回歸問題則是房價預測,但人們通常會在完成泰坦尼克號之後再考慮這個問題。

在2017年10月和2018年3月,Kaggle論壇上關於logistic回歸的討論量大幅增加。對此,一個可能的解釋是平台上出現的新競賽——惡意評論分類。當時一些團隊分享了不少和分類模型相關的高質量經驗,其中就包括logistic回歸。

2. XgBoost的霸主地位

藍:決策樹;橙:隨機森林;綠:XgBoost;紅:LightGBM;紫:CatBoost

在2014年以前,線性模型、決策樹和隨機森林的討論量雖然不多,但它們佔據絕對話語權。2014年,時為華盛頓大學博士的陳天奇開源XgBoost演算法,受到大眾追捧,之後它也迅速成了Kaggle競賽中的常客。時至今日,XgBoost在競賽中的使用率還是很高,性能也很好,不少奪冠方案中都有它的身影。

但是,根據曲線我們可以注意到,自從2016年LightGBM被提出後,XgBoost的討論量出現了一定程度的下降,而LightGBM卻一路水漲船高。可以預見,在學界開源更好的模型前,這個演算法將在未來幾年佔據主導地位。現在LightGBM也已經出現在不少競賽中,比如Porto Seguro的安全駕駛預測,它的優點是比XgBoost實現速度更快、更簡單。

除了這些演算法,圖中「最年輕」的CatBoost也有走紅的趨勢。

3. 神經網路和深度學習的趨勢

藍:神經網路;橙:深度學習

幾十年來,神經網路在學界和工業界一直不溫不火,但如上圖所示,隨著大型數據集的出現和計算機算力的大幅提升,近幾年這種趨勢已經發生了變化。

從2014年起,我們相繼迎來了theano、tensorflow、keras,與此同時,一個名為深度學習的時代也漸漸出現在世人視野里。在Kaggle上,用戶發表的有關深度學習的帖子數不斷上升,並最終超過神經網路。此外,諸如亞馬遜、谷歌等的雲服務提供商也正擁抱新技術,以更加積極的姿態展示在雲上訓練深層神經網路的能力。

深度學習模型是Kaggle競賽中的新星,目前它已經在圖像分類、文本分類競賽中嶄露頭角,比如Data Science Bowl、Quora重複問題分類等。而伴隨RNN、CNN的不斷改進,深度學習的流行趨勢似乎已經勢不可擋。此外,一些嘗試已經證實,遷移學習和預訓練模型在競賽中能夠表現出色。

這種技術讓人們看到了可能性。為了讓用戶從實踐中學到更多知識,Kaggle可以推出更多和圖像分類建模相關的比賽,但以當前的情況看,現在限制用戶大規模使用深度學習的是它的算力要求。但這種問題是可以被解決的。Kaggle已經添加GPU支持,未來,相信嘗試深度學習的用戶會越來越多。

4. Kaggle上流行的ML工具

藍:Scikit;橙:Tensorflow;綠:Keras;紅:Pytorch

在2015年以前,如果一個數據科學家想構建機器學習模型,Scikit Learn是他唯一可以選擇的庫;2015年後,這種局面發生了改變,作為ML生態的一部分,谷歌開源軟體庫Tensorflow,並讓它迅速在全球範圍內普及。

但是Tensorflow也存在缺點,就是它比較難學,因此雖然用戶非常多,但在Kaggle這個競賽平台上,大多數用戶還是傾向於選擇更靈活、更簡單的Keras。畢竟究其本質,Keras可以被看作是Tensorflow封裝後的一個API。

5. XgBoost vs Keras

藍:XgBoost;橙:Keras

既然Keras是深度學習框架,我們可以把它看做深層神經網路的間接代表。

XgBoost與深度學習孰優孰劣?這是去年Quora上吵翻天的一個問題。而從Kaggle的數據看,前者一直處於領先地位,而後者也在奮力追趕。相比複雜、層多的神經網路,XgBoost的優點是更快,對硬體要求更低,因此也更受普通用戶歡迎。

但這個結果並不代表優劣,拿陳天奇博士自己的話說,就是:

不同的機器學習模型適用於不同類型的任務。深層神經網路通過對時空位置建模,能夠很好地捕獲圖像、語音、文本等高維數據。而基於樹模型的XGBoost則能很好地處理表格數據,同時還擁有一些深層神經網路所沒有的特性(如:模型的可解釋性、輸入數據的不變性、更易於調參等)。

6. 可視化工具比拼

藍:Matplotlib;橙:Seaborn;綠:Plotly

從2017年起,Plotly就像開了掛一樣一路走紅,現在已經成為Kaggle用戶最常用的可視化工具。排名第二的是Seaborn,它實際上是在Matplotlib的基礎上進行了更高級的API封裝,生成的圖更好看,而作為補充,Matplotlib的圖更有特色。

7. 數據科學過程步驟比拼

藍:Exploration;橙:特徵工程;綠:調參;紅:集成

在上圖中,最受Kaggle用戶關注的是模型的集成。參加競賽時,雖然最後提交的是一個模型,但參賽者會先訓練若干個弱模型,最後再用集成方法進行整合堆疊。這種做法在回歸和分類任務中非常常見。

至於同樣倍受矚目Exploration,近期,無數數據科學家已經一遍遍強調了探索性數據分析(EDA)的重要性,而他們的呼籲起到了效果。如果我們沒法確保數據的可靠性,最後的模型很可能會出問題。

但對於這個結果,有些人可能會感到意外。因為如果想在競賽中取得好名次,調參和模型微調肯定必不可少,但這兩個時間、精力消耗的「大戶」的排名卻不高。所以我們應該牢記,雖然集成是建模過程的最後一步,但我們應該在特徵工程和模型調整上投入相當長的時間。

最為人津津樂道的子平台

藍:數據集;橙:Kernel;綠:競賽;紅:Learn

既然Kaggle是個數據科學競賽平台,用戶們討論的內容自然是參加什麼競賽,用了什麼數據集,並分享看到的實用代碼。而根據上圖的曲線,自從2016年推出後,代碼Kernel的受歡迎度一路飆升,畢竟用戶們可以在上面看到其他參賽者自願公開的模型代碼,這對於學習和交流來說是不可多得的優質資源。

此外,Kaggle還推出了課程子平台Kaggle Learn,雖然目前在討論度上不及數據集、Kernel和競賽,但這些課程主要面向初學者。未來,隨著課程內容的豐富和新手人數的增加,這個板塊的流行指日可待。


推薦閱讀:

《DEEP ACTIVE LEARNING FOR NAMED ENTITY RECOGNITION》閱讀筆記
GBDT演算法
從SVD到PCA
圖解線性代數:如何理解orthogonal matrix
相比於深度學習,傳統的機器學習演算法難道就此沒落了嗎,還有必要去學習嗎?

TAG:機器學習 | Kaggle | 數據挖掘 |