超詳細!如何準備機器學習競賽?

七月線上實驗室發表於2018-05-03
640?wx_fmt=gif&wxfrom=5&wx_lazy=1

點選上方藍色字型,關注我們


Kaggle 是一個流行的資料科學競賽平臺,作為一個競賽平臺,Kaggle 對於初學者來說可能有些難度。畢竟其中的一些競賽有高達 100 萬美元的獎金池和數百位參賽者。為了幫助初學者入門 Kaggle,EliteDataScience 近日發表了一篇入門介紹文章,解答了一些初學者最常遇到的問題。


一些初學者會猶豫要不要參加 Kaggle 競賽,這並不讓人奇怪,他們通常有以下顧慮:

  • 我該如何開始?

  • 我要和經驗豐富的博士研究者比賽嗎?

  • 如果沒有獲勝的機會,還值得參與嗎?

  • 這就是資料科學嗎?(如果我在 Kaggle 上表現不好,我在資料科學領域還有希望嗎?)

  • 未來我該如何提升我的排名?


如果你有其中任何問題,你就看對了文章。在這篇指南中,我們會解讀上手 Kaggle、提升技能和享受 Kaggle 所需要了解的一切。


Kaggle vs.「經典的」資料科學


首先,我們要清楚瞭解:


Kaggle 競賽和「經典的」資料科學有一些重要的不同之處,但只要你以正確的心態接觸它,就也能收穫有價值的經驗。


讓我們解釋一下:


Kaggle 競賽


本質上,帶有獎金池的競賽必須滿足一些標準:


  • 問題必須困難:競賽不應該是一個下午就能解決的任務。為了得到最好的投資回報,主辦公司會提交他們最大最難的問題。

  • 解決方案必須新:要贏得最新的競賽,你通常需要進行擴充套件研究、定製演算法、訓練先進的模型等等。

  • 表現必須能比較:競賽必須要決出優勝者,所以你和其他對手的解決方案必須要被評分。


「經典的」資料科學


相對而言,日常所用的資料科學並不需要滿足這些標準。


  • 問題可能簡單。實際上,資料科學家應該盡力確認易於實現的成果:可以快速解決的富有成效的專案。

  • 解決方案可以是成熟的。大多數常見任務(比如探索分析、資料清理、A/B 測試、經典演算法)都已經有了已得到證明的框架。沒必要重新發明輪子。

  • 表現可以是絕對的。即使一個解決方案只是簡單地超越了之前的基準,那也非常有價值。


Kaggle 競賽鼓勵你竭盡所能,而經典資料科學則推崇效率和最大化的業務效果。


Kaggle 競賽值得參加嗎?


儘管 Kaggle 和經典資料科學之間存在差異,但 Kaggle 仍然是一種很好的入門工具。


每個競賽都是獨立的。無需設定專案範圍然後收集資料,這讓你有時間專注其它技能。

練習就是實踐。學習資料科學的最好方法是在做中學。只要沒有每場競賽都獲勝的壓力,你就可以練習各種有趣的問題。

討論和獲勝者採訪很有啟發性。每個競賽都有自己的討論板塊與獲勝者簡報。你可以窺見更有經驗的資料科學家的思考過程。

640?wx_fmt=png

Kaggle 獲勝者採訪


怎樣入門 Kaggle?


接下來,我們將給出一個按步進行的行動規劃,然後慢慢上升到 Kaggle 競賽中。


第一步:選擇一種程式語言


首先,我們推薦你選擇一種程式語言,並堅持使用。Python 和 R 在 Kaggle 和更廣泛的資料科學社群上都很流行。


如果你是一個毫無經驗的新手,我們推薦 Python,因為這是一種通用程式語言,你可以在整個流程中都使用它。參考:AI 學習路線:從Python開始機器學習


第二步:學習探索資料的基礎


載入、瀏覽和繪製你的資料(即探索性分析)的能力是資料科學的第一步,因為它可以為你將在模型訓練過程中做的各種決策提供資訊。


如果你選擇了 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


第四步:解決入門級競賽


現在我們已經準備好嘗試 Kaggle 競賽了,這些競賽分成幾個類別。最常見的類別是:


  • Featured:這些通常是由公司、組織甚至政府贊助的,獎金池最大。

  • Research:這些是研究方向的競賽,只有很少或沒有獎金。它們也有非傳統的提交流程。

  • Recruitment:這些是由想要招聘資料科學家的公司贊助的。目前仍然相對少見。

  • Getting Started:這些競賽的結構和 Featured 競賽類似,但沒有獎金。它們有更簡單的資料集、大量教程和滾動的提交視窗讓你可以隨時輸入。


Getting Started 競賽非常適合初學者,因為它們給你提供了低風險的學習環境,並且還有很多社群創造的教程:https://www.kaggle.com/c/titanic#tutorials


640?wx_fmt=png


第五步:比賽是為了更好地學習,而不是賺錢


有了上面的基礎,就可以參與到 Featured 競賽中了。一般來說,為了取得好排名,通常需要遠遠更多的時間和精力。


因此,我們建議你明智地選擇參與專案。參加競賽能幫你深入到你希望長期參與的技術領域中。


儘管獎金很誘人,但更有價值(也更可靠)的回報是為你的未來事業所獲得的技能。


享受 Kaggle 的小訣竅


最後,我們將介紹幾個參與 Kaggle 的最受歡迎的訣竅,希望能幫你享受你的 Kaggle 時光。


訣竅 1:設定循序漸進的目標


如果你曾經玩過什麼讓人上癮的遊戲,你就知道循序漸進的目標的重要性。那就是好遊戲讓人著迷的訣竅。每一個目標都要足夠大,以便帶來成就感;但也不能太大,不然無法實現。

640?wx_fmt=png


大多數 Kaggle 參與者都沒贏過任何一場競賽,這完全正常。如果把獲勝作為第一個里程碑,你可能會失望,嘗試幾次之後可能就會失去動力。循序漸進的目標會讓你的旅程更加愉快。比如:


提交一個超越基準解決方案的方案

  • 在一場競賽中進入排名前 50%

  • 在一場競賽中進入排名前 25%

  • 在三場競賽中進入排名前 25%

  • 在一場競賽中進入排名前 10%

  • 贏得一場競賽!


這種策略讓你可以一路衡量你的進展和進步。


訣竅 2:查閱得票最多的 kernel


Kaggle 有一個非常厲害的功能:參與者可以提交 kernel,即用於探索一個概念、展示一種技術或分享一種解決方案的短指令碼。


當你開始一場競賽或感覺進步停滯時,查閱受歡迎的 kernel 或許能給你帶來靈感。

640?wx_fmt=png


訣竅 3:在論壇中提問


不要害怕問「愚蠢的」問題。


提問能遇到的最糟糕的事情是什麼?也許你會被忽視……僅此而已。


另一方面,你能得到很多回報,包括來自經驗更豐富的資料科學家的建議和指導。


訣竅 4:獨立發展核心技能


開始的時候,我們建議你獨自工作。這將迫使你解決應用性機器學習流程中的每一步,包括探索性分析、資料清理、特徵工程和模型訓練。


如果過早地和人組隊,你就可能會錯失發展這些基本技能的機會。


訣竅 5:組隊以擴充你的極限


雖然太早組隊不好,但在未來的比賽中組隊讓你能向其他人學習,進而擴充你的極限。過去的許多獲勝者都是團隊,這讓他們可以結合彼此的知識共同施展力量。


此外,一旦你掌握了機器學習的技術技能,你就可以與其他可能比你有更多領域知識的人合作,進一步擴充套件你的機遇。


訣竅 6:記住 Kaggle 可以成為你的墊腳石


記住,你不一定要成為一個長期的 Kaggle 人。如果發現你不喜歡這種形式,也沒什麼大不了的。


實際上,許多人在做自己的專案或成為全職資料科學家之前都會使用 Kaggle 作為自己的墊腳石。


所以你的關注重點應該是儘可能地學習。長遠來看,參與能給你帶來相關經驗的競賽比參加有最高獎金的競賽更好。


訣竅 7:不要擔心排名低


有些初學者擔心低排名出現在他們的個人資料中,結果一直沒有開始。當然,比賽焦慮是很正常的現象,並不只限於 Kaggle。


但是,排名低真的沒什麼關係。沒人會因此貶低你,因為他們曾經某個時候也是初學者。

640?wx_fmt=png


即便如此,如果仍然擔心個人資料裡的低排名,你可以再單獨建立一個練習賬號。一旦覺得自己能力不錯了,就可以開始用你的「主帳號」來建立豐功偉績了。(再說一下,這麼做毫無必要!)


原文連結:https://elitedatascience.com/beginner-kaggle


《機器學習 第九期》真正工業人士授課的工業課程,BAT + Google的一線技術大咖親自授課,直播答疑、考試一對一批改、面試輔導、推薦就業;5月19日開課,真正幫你實現從零到機器學習工程師的轉化;


掃碼,給想改變的你一個嘗試的機會

640?wx_fmt=png

相關文章