數(shù)據(jù)科學(xué)家的神器:為什么大家都用Kaggle?
學(xué)習(xí)數(shù)據(jù)科學(xué)絕非易事。能找到一個(gè)可以分享代碼、數(shù)據(jù)和想法的社區(qū)對(duì)我們的學(xué)習(xí)大有裨益,有一個(gè)地方匯聚了這些特質(zhì),那就是Kaggle。
我在大學(xué)時(shí)第一次接觸了這個(gè)平臺(tái),當(dāng)時(shí),筆者正在攻讀數(shù)據(jù)科學(xué)碩士學(xué)位,主攻機(jī)器學(xué)習(xí),想看看在專(zhuān)業(yè)的第一堂課上自己在機(jī)器學(xué)習(xí)模型比賽的準(zhǔn)確度挑戰(zhàn)中能位列何處,對(duì)比在最后一堂課上又能取得怎樣的名次。
筆者很快意識(shí)到,Kaggle上有成百上千的數(shù)據(jù)科學(xué)家,正在嘗試提升并提交他們的評(píng)分。這么多聰明的有志之士參與競(jìng)爭(zhēng),讓人嘆為觀止。除了評(píng)價(jià)技能,這一平臺(tái)還可以對(duì)比代碼,學(xué)習(xí)其他出色之人的新想法。在踏上成為數(shù)據(jù)科學(xué)家之旅的第一周就能得到這樣的體驗(yàn),筆者感到萬(wàn)分慶幸,不出意外,我成了這一網(wǎng)站的常客。
Kaggle

比賽結(jié)果
在Kaggle上,人們可以分享想法,獲得啟發(fā),同其他數(shù)據(jù)科學(xué)家展開(kāi)競(jìng)爭(zhēng),學(xué)習(xí)新事物和編程技巧,觀察諸多真實(shí)數(shù)據(jù)科學(xué)應(yīng)用的實(shí)例。這里有許多能應(yīng)用于多種場(chǎng)合的數(shù)據(jù)集,或簡(jiǎn)單如電子游戲銷(xiāo)售,或龐雜重要如空氣污染數(shù)據(jù)。
這些數(shù)據(jù)取自現(xiàn)實(shí)世界,幾經(jīng)引用參考,可用來(lái)訓(xùn)練并評(píng)測(cè)那些真正對(duì)人有幫助的項(xiàng)目模型。Kaggle另有許多實(shí)用的特色功能,比如數(shù)據(jù)、代碼、社區(qū)、靈感、競(jìng)賽和課程等。
優(yōu)勢(shì)
Kaggle有許多優(yōu)勢(shì),這些都是你應(yīng)當(dāng)使用Kaggle的原因。
1.數(shù)據(jù)
Kaggle上有一些可用的數(shù)據(jù)集。大多數(shù)數(shù)據(jù)集的文件格式是CSV,JSON、SQLite、archives和BigQuery格式的數(shù)據(jù)集不太普遍,但依舊用途頗廣。練習(xí)使用多種文件格式有所助益,你在工作中有可能遇到這些文件格式。下面是三個(gè)目前最熱門(mén)的數(shù)據(jù)集。
- COVID-19開(kāi)放研究數(shù)據(jù)集挑戰(zhàn)賽
- UNCOVER COVID-19挑戰(zhàn)賽
- ProZorro.烏克蘭公共采購(gòu)數(shù)據(jù)集
2.代碼
Kaggle上有大量代碼。如果你想查看其他Kaggle用戶(hù)的不計(jì)其數(shù)的代碼,在Notebooks上進(jìn)行檢索很方便,其中包括代碼以及大多數(shù)用戶(hù)對(duì)代碼的注釋。這能幫助我們學(xué)習(xí)和練習(xí),并借鑒他人處理類(lèi)似問(wèn)題的方式。大多數(shù)人使用Python進(jìn)行編程,但也不乏一些人采用包括R、SQLite和Julia在內(nèi)的其他編程語(yǔ)言。
代碼通常是記事本(又稱(chēng)為Jupyter Notebook)形式,保存在后綴為.ipynb的文件中。有一些展示了端到端機(jī)器學(xué)習(xí)模型的例子,其中一些包括數(shù)據(jù)提取與清洗、探索性數(shù)據(jù)分析、特征工程、基礎(chǔ)模型創(chuàng)建、最終機(jī)器學(xué)習(xí)模型實(shí)現(xiàn)、以及結(jié)果的輸出和解釋。
大多數(shù)數(shù)據(jù)科學(xué)家在工作中經(jīng)常用到這些步驟,因?yàn)檫@對(duì)于其他數(shù)據(jù)科學(xué)家和相關(guān)工作者來(lái)說(shuō),都是簡(jiǎn)便且易于遵循的流程。
- code languages supported on Kaggle: Python, R, SQLite, and Julia
3.社區(qū)
與Medium、GitHub、Stack Overflow和LinkedIn類(lèi)似,Kaggle作為一個(gè)社區(qū),數(shù)據(jù)分析師、數(shù)據(jù)科學(xué)家和機(jī)器學(xué)習(xí)工程師可以在其中學(xué)習(xí)、成長(zhǎng)和互動(dòng)。
你可將自己的工作(如數(shù)據(jù),代碼和記事本文件)發(fā)布在其上和他人分享,以發(fā)展自己的社區(qū)。作為社區(qū)的成員有其獨(dú)到的優(yōu)勢(shì),所以筆者強(qiáng)烈建議以Kaggle作為起點(diǎn),培養(yǎng)自己的社區(qū),并與其他社區(qū)建立聯(lián)系。
4.靈感
通過(guò)這里的數(shù)據(jù)、代碼、社區(qū)、課程和競(jìng)賽,你可以收獲絕妙的靈感。觀看別人參與到對(duì)他人和企業(yè)有助益的比賽之中,欣賞其精彩發(fā)揮,這著實(shí)激勵(lì)人心。
如果你正在思索下一步該學(xué)習(xí)什么,亦或是如何實(shí)現(xiàn)某一功能,也許應(yīng)該看一看別人如何實(shí)現(xiàn)某一模塊,例如以特定方式實(shí)現(xiàn)隨機(jī)森林。你可以在Kaggle上找到這些,最終激勵(lì)自己更上一層樓。
5.競(jìng)賽

如果你想檢測(cè)自己的水平,了解自己在同行中的排名,豐富簡(jiǎn)歷或者掙些外快,競(jìng)賽是個(gè)合適的選擇。Kaggle提供了不計(jì)其數(shù)的競(jìng)賽,上面的截圖顯示了排行前三的競(jìng)賽及其對(duì)應(yīng)的獎(jiǎng)金。這些比賽不但趣味盎然,而且意義深遠(yuǎn)(例如助力健康事業(yè))。
筆者借助Kaggle上的賽事來(lái)對(duì)比自己的前后表現(xiàn)。起初,筆者僅掌握了些許數(shù)據(jù)科學(xué)方面的知識(shí);后來(lái)有了將近兩年的數(shù)據(jù)科學(xué)從業(yè)經(jīng)驗(yàn)。兩相比較,意料之中的進(jìn)步顯著。
筆者在將近8000人中位列前50%,這對(duì)于初出茅廬的人來(lái)說(shuō)不算差。不難看出,當(dāng)有成千上萬(wàn)的數(shù)據(jù)科學(xué)家為同一個(gè)目標(biāo)而展開(kāi)競(jìng)爭(zhēng)時(shí),能為識(shí)別某些健康異常的項(xiàng)目做出何等巨大的貢獻(xiàn)。
6.課程
圖源:unsplash
我還發(fā)現(xiàn)Kaggle開(kāi)設(shè)有一些數(shù)據(jù)科學(xué)課。我個(gè)人最喜歡這里的一些SQL課程,因?yàn)樽鳛閿?shù)據(jù)科學(xué)家,最需要的就是SQL。與其他課程網(wǎng)站相比,這里的機(jī)器學(xué)習(xí)的可解釋性和游戲AI與強(qiáng)化學(xué)習(xí)導(dǎo)論也是比較獨(dú)特的課程。下面是能在Kaggle上找到的所有課程:
- Python
- Intro to Machine Learning
- Intermediate Machine Learning
- Data Visualization
- Pandas
- Feature Engineering
- Deep Learning
- Intro to SQL
- Advanced SQL
- Geospatial Analysis
- Microchallenges
- Machine Learning Explainability
- Natural Language Processing
- Intro to Game AI and Reinforcement Learning
Kaggle能為銳意進(jìn)取的優(yōu)秀數(shù)據(jù)科學(xué)家提供豐富的資源,千萬(wàn)不要錯(cuò)過(guò)它。