Kaggle初學者五步入門指南,七大訣竅助你享受競賽
Kaggle 是一個流行的資料科學競賽平臺,已被谷歌收購,參閱《業界 | 谷歌雲官方正式宣佈收購資料科學社群 Kaggle》。作為一個競賽平臺,Kaggle 對於初學者來說可能有些難度。畢竟其中的一些競賽有高達 100 萬美元的獎金池和數百位參賽者。頂級的團隊在處理機場安全提升或衛星資料分析等任務上擁有數十年積累的經驗。為了幫助初學者入門 Kaggle,EliteDataScience 近日發表了一篇入門介紹文章,解答了一些初學者最常遇到的問題。機器之心對這篇文章進行了編譯介紹,另外也增加了一些機器之心之前發過的文章作為補充資源。
一些初學者會猶豫要不要參加 Kaggle 競賽,這並不讓人奇怪,他們通常有以下顧慮:
- 我該如何開始?
- 我要和經驗豐富的博士研究者比賽嗎?
- 如果沒有獲勝的機會,還值得參與嗎?
- 這就是資料科學嗎?(如果我在 Kaggle 上表現不好,我在資料科學領域還有希望嗎?)
- 未來我該如何提升我的排名?
如果你有其中任何問題,你就看對了文章。在這篇指南中,我們會解讀上手 Kaggle、提升技能和享受 Kaggle 所需要了解的一切。
Kaggle vs.「經典的」資料科學
首先,我們要清楚瞭解:
Kaggle 競賽和「經典的」資料科學有一些重要的不同之處,但只要你以正確的心態接觸它,就也能收穫有價值的經驗。
讓我們解釋一下:
Kaggle 競賽
本質上,帶有獎金池的競賽必須滿足一些標準:
- 問題必須困難:競賽不應該是一個下午就能解決的任務。為了得到最好的投資回報,主辦公司會提交他們最大最難的問題。
- 解決方案必須新:要贏得最新的競賽,你通常需要進行擴充套件研究、定製演算法、訓練先進的模型等等。
- 表現必須能比較:競賽必須要決出優勝者,所以你和其他對手的解決方案必須要被評分。
「經典的」資料科學
相對而言,日常所用的資料科學並不需要滿足這些標準。
- 問題可能簡單。實際上,資料科學家應該盡力確認易於實現的成果:可以快速解決的富有成效的專案。
- 解決方案可以是成熟的。大多數常見任務(比如探索分析、資料清理、A/B 測試、經典演算法)都已經有了已得到證明的框架。沒必要重新發明輪子。
- 表現可以是絕對的。即使一個解決方案只是簡單地超越了之前的基準,那也非常有價值。
Kaggle 競賽鼓勵你竭盡所能,而經典資料科學則推崇效率和最大化的業務效果。
Kaggle 競賽值得參加嗎?
儘管 Kaggle 和經典資料科學之間存在差異,但 Kaggle 仍然是一種很好的入門工具。
每個競賽都是獨立的。無需設定專案範圍然後收集資料,這讓你有時間專注其它技能。
練習就是實踐。學習資料科學的最好方法是在做中學。只要沒有每場競賽都獲勝的壓力,你就可以練習各種有趣的問題。
討論和獲勝者採訪很有啟發性。每個競賽都有自己的討論板塊與獲勝者簡報。你可以窺見更有經驗的資料科學家的思考過程。
Kaggle 獲勝者採訪
怎樣入門 Kaggle?
接下來,我們將給出一個按步進行的行動規劃,然後慢慢上升到 Kaggle 競賽中。
第一步:選擇一種程式語言
首先,我們推薦你選擇一種程式語言,並堅持使用。Python 和 R 在 Kaggle 和更廣泛的資料科學社群上都很流行。
如果你是一個毫無經驗的新手,我們推薦 Python,因為這是一種通用程式語言,你可以在整個流程中都使用它。
參考:
- 資料科學領域 R vs Python:http://elitedatascience.com/r-vs-python-for-data-science
- 如何為資料科學學習 Python:http://elitedatascience.com/learn-python-for-data-science
第二步:學習探索資料的基礎
載入、瀏覽和繪製你的資料(即探索性分析)的能力是資料科學的第一步,因為它可以為你將在模型訓練過程中做的各種決策提供資訊。
如果你選擇了 Python 路線,那麼我們推薦你使用專門為這個目的設計的 Seaborn 庫。其中有高層面的繪圖函式,可以繪製許多最常見和有用的圖表。
參考:
- Seaborn 庫:https://seaborn.pydata.org/
- Python Seaborn 教程:http://elitedatascience.com/python-seaborn-tutorial
第三步:訓練你的第一個機器學習模型
在進入 Kaggle 之前,我們推薦你先在更簡單更容易管理的資料集上訓練一個模型。這能讓你熟悉機器學習庫,為以後的工作做鋪墊。
關鍵在於培養良好的習慣,比如將你的資料集分成獨立的訓練集和測試集,交叉驗證避免過擬合以及使用合適的表現評價指標。
對於 Python,最好的通用機器學習庫是 Scikit-Learn。
參考:
- Scikit-Learn 庫:http://scikit-learn.org/stable/
- Python Scikit-Learn 教程:http://elitedatascience.com/python-machine-learning-tutorial-scikit-learn
- 7 天應用機器學習速成課:http://elitedatascience.com/
第四步:解決入門級競賽
現在我們已經準備好嘗試 Kaggle 競賽了,這些競賽分成幾個類別。最常見的類別是:
- Featured:這些通常是由公司、組織甚至政府贊助的,獎金池最大。
- Research:這些是研究方向的競賽,只有很少或沒有獎金。它們也有非傳統的提交流程。
- Recruitment:這些是由想要招聘資料科學家的公司贊助的。目前仍然相對少見。
- Getting Started:這些競賽的結構和 Featured 競賽類似,但沒有獎金。它們有更簡單的資料集、大量教程和滾動的提交視窗讓你可以隨時輸入。
Getting Started 競賽非常適合初學者,因為它們給你提供了低風險的學習環境,並且還有很多社群創造的教程:https://www.kaggle.com/c/titanic#tutorials
第五步:比賽是為了更好地學習,而不是賺錢
有了上面的基礎,就可以參與到 Featured 競賽中了。一般來說,為了取得好排名,通常需要遠遠更多的時間和精力。
因此,我們建議你明智地選擇參與專案。參加競賽能幫你深入到你希望長期參與的技術領域中。
儘管獎金很誘人,但更有價值(也更可靠)的回報是為你的未來事業所獲得的技能。
享受 Kaggle 的小訣竅
最後,我們將介紹幾個參與 Kaggle 的最受歡迎的訣竅,希望能幫你享受你的 Kaggle 時光。
訣竅 1:設定循序漸進的目標
如果你曾經玩過什麼讓人上癮的遊戲,你就知道循序漸進的目標的重要性。那就是好遊戲讓人著迷的訣竅。每一個目標都要足夠大,以便帶來成就感;但也不能太大,不然無法實現。
大多數 Kaggle 參與者都沒贏過任何一場競賽,這完全正常。如果把獲勝作為第一個里程碑,你可能會失望,嘗試幾次之後可能就會失去動力。循序漸進的目標會讓你的旅程更加愉快。比如:
提交一個超越基準解決方案的方案
- 在一場競賽中進入排名前 50%
- 在一場競賽中進入排名前 25%
- 在三場競賽中進入排名前 25%
- 在一場競賽中進入排名前 10%
- 贏得一場競賽!
這種策略讓你可以一路衡量你的進展和進步。
訣竅 2:查閱得票最多的 kernel
Kaggle 有一個非常厲害的功能:參與者可以提交 kernel,即用於探索一個概念、展示一種技術或分享一種解決方案的短指令碼。
當你開始一場競賽或感覺進步停滯時,查閱受歡迎的 kernel 或許能給你帶來靈感。
訣竅 3:在論壇中提問
不要害怕問「愚蠢的」問題。
提問能遇到的最糟糕的事情是什麼?也許你會被忽視……僅此而已。
另一方面,你能得到很多回報,包括來自經驗更豐富的資料科學家的建議和指導。
訣竅 4:獨立發展核心技能
開始的時候,我們建議你獨自工作。這將迫使你解決應用性機器學習流程中的每一步,包括探索性分析、資料清理、特徵工程和模型訓練。
如果過早地和人組隊,你就可能會錯失發展這些基本技能的機會。
訣竅 5:組隊以拓展你的極限
雖然太早組隊不好,但在未來的比賽中組隊讓你能向其他人學習,進而拓展你的極限。過去的許多獲勝者都是團隊,這讓他們可以結合彼此的知識共同施展力量。
此外,一旦你掌握了機器學習的技術技能,你就可以與其他可能比你有更多領域知識的人合作,進一步擴充套件你的機遇。
訣竅 6:記住 Kaggle 可以成為你的墊腳石
記住,你不一定要成為一個長期的 Kaggle 人。如果發現你不喜歡這種形式,也沒什麼大不了的。
實際上,許多人在做自己的專案或成為全職資料科學家之前都會使用 Kaggle 作為自己的墊腳石。
所以你的關注重點應該是儘可能地學習。長遠來看,參與能給你帶來相關經驗的競賽比參加有最高獎金的競賽更好。
訣竅 7:不要擔心排名低
有些初學者擔心低排名出現在他們的個人資料中,結果一直沒有開始。當然,比賽焦慮是很正常的現象,並不只限於 Kaggle。
但是,排名低真的沒什麼關係。沒人會因此貶低你,因為他們曾經某個時候也是初學者。
即便如此,如果仍然擔心個人資料裡的低排名,你可以再單獨建立一個練習賬號。一旦覺得自己能力不錯了,就可以開始用你的「主帳號」來建立豐功偉績了。(再說一下,這麼做毫無必要!)
結論
在這篇指南中,我們分享了上手 Kaggle 的 5 大步驟:
- 選擇一種程式語言
- 學習探索資料的基礎
- 訓練第一個機器學習模型
- 解決入門級競賽
- 比賽是為了更好地學習,而不是賺錢
最後,我們分享了享受這個平臺的 7 個訣竅:
- 設定循序漸進的目標
- 查閱得票最多的 kernel
- 在論壇中提問
- 獨立發展核心技能
- 組隊以拓展你的極限
- 記住 Kaggle 可以成為你的墊腳石
- 不要擔心排名低
原文連結:https://elitedatascience.com/beginner-kaggle