標籤:

Kaggle入門手冊

Kaggle是數據科學競賽的熱門平台,它可能會讓初學者陷入困境。

畢竟,一些比賽有超過100萬美元獎池和數百個競爭對手。

頂尖的團隊擁有數十年的綜合經驗,處理有挑戰的問題,如改善機場安全或分析衛星數據。

一些初學者猶豫使用Kaggle,這並不奇怪。他們有理由擔憂,如:

  • 怎樣開始?
  • 我會跟經驗豐富的博士研究生團隊競爭嗎?
  • 如果我沒有真正的獲勝機會,那麼值得競爭嗎?
  • 數據科學是什麼?(如果我在Kaggle做得不好,我還能向數據科學發展嗎?)
  • 如何提高排名?

那麼,如果你有過這些問題,你的想法是正確的。

在本指南中,我們將分解你需要了解的有關入門知識,提高你的技能,並享受在Kaggle的一切。

Kaggle與「傳統」數據科學

首先,我們需要弄清楚一些事情:

Kaggle比賽與「傳統」數據科學有重要差異,但如果你以正確的心態接觸,它們仍然會提供寶貴的經驗。

我們來解釋一下:

Kaggle比賽

本質上,比賽(以及獎池)必須符合幾個標準。

  • 問題一定很難。 比賽不能只用一個下午解決。為了獲得最佳的投資回報,東道主公司將會提交最大、最麻煩的問題。
  • 解決方案必須是新的。 為了贏得最新的比賽,你通常需要進行擴展研究,自定義演算法,訓練高級模型等。
  • 表現必須相對。比賽必須產生獲勝者,所以你的解決方案將同其他方案評分。

「傳統」數據科學

相比之下,日常數據科學不需要符合相同的標準。

  • 問題可以很容易。事實上,數據科學家們應該嘗試識別可輕易實現的目標:可以快速解決的有影響力的項目。
  • 解決方案可以成熟。 最常見的任務(例如:探索性分析,數據清理,A/B測試,經典演算法)已經有成熟的框架。需要重新造輪子。
  • 表現可以是絕對的。 解決方案可以非常有價值,即使它只是擊敗以前的基準。

Kaggle比賽鼓勵你擠出最後一絲性能,而傳統的數據科學則會鼓勵效率並最大化業務影響。

Kaggle值得嗎?

儘管Kaggle和典型的數據科學存在差異,但是,對於初學者而言,Kaggle仍然是一個很好的學習工具。

  • 每場比賽都是獨立的。你不需要仔細研究項目範圍並收集數據,從而可以讓你專註於其他技能。
  • 練習是實踐。 學習數據科學的最好方法是通過動手來學習。只要你不要強調贏得每場比賽,你仍然可以練習有趣的問題。
  • 討論和獲勝者採訪是有啟發性的。每個比賽都有自己的板塊和並且獲勝者諮詢。你可以窺探更有經驗的數據科學家的思想過程。

如何入門Kaggle

接下來,我們將給出逐步的行動計劃,在Kaggle上升和競爭。

步驟1:選擇一門編程語言。

首先,我們建議選擇一種編程語言並堅持使用它。Python以及R在Kaggle和更廣泛的數據科學界都很受歡迎。

如果本身白紙一張,我們建議使用Python,因為它是一種通用的編程語言,可以從端到端使用。

  • R vs Python for Data Science
  • How to Learn Python for Data Science

步驟2:了解探索數據的基礎知識。

載入,導航和繪製數據(即:探索性分析)的能力是數據科學的第一步,因為它可以告知你通過模型訓練中做出的各種決策。

如果你走Python的路線,那麼我們建議使用專門為此而設計的Seaborn庫。它具有繪製許多最常見和有用的圖表的高級函數。

  • Python Seaborn教程

第3步:訓練你的第一個機器學習模型。

在進入Kaggle之前,我們建議你在一個更容易,更易於管理的數據集上訓練一個模型。這將使你熟悉機器學習的庫和形勢。

關鍵是要良好的開發習慣,例如,將數據集分成單獨的訓練集和測試集,交叉驗證以避免過度擬合,並使用適當的性能指標。

對於Python,最好的通用機器學習庫是Scikit-Learn。

  • Python Scikit-Learn Tutorial
  • 7-Day Applied Machine Learning Crash Course

步驟4:處理「入門級」的比賽。

現在我們準備嘗試Kaggle比賽,分為幾類。最常見的是:

特色 - 這些通常由公司,組織甚至政府贊助。他們有最大的獎池。 研究 - 這些都是以研究為導向,幾乎沒有獎金。他們也有非傳統的提交流程。 招聘 - 這些由希望聘請數據科學家的公司贊助。這些還是比較少見的。 入門 - 結構如特色比賽,但沒有獎池。它們以更簡單的數據集為特徵,大量教程和滾動提交窗口,因此你可以隨時輸入。

「入門」比賽對於初學者來說非常棒,因為它們為你提供低風險的環境來學習,並且還得到許多社區創建的教程的支持。

步驟5:爭取最大限度地發掘學習,而不是賺錢。

在這個基礎上,現在是進行「特色」比賽的時候了。一般來說,這些將需要更多的時間和精力來排好。

因此,我們建議明智地挑選你的戰鬥。參加比賽,了解與你的長期目標相一致的技術和科技。

雖然獎金是好的,更有價值(可靠)的獎勵將是你為你的職業發展的技能。

享受Kaggle的技巧

最後,我們將介紹我們的7個最喜歡的技巧,以充分利用你在Kaggle的時間。

提示#1:設置增量目標。

如果你曾經玩過一個令人上癮的遊戲,你會知道增量目標的力量。這是多麼偉大的遊戲讓你上鉤。每個目標都足夠大,以獲得成就感,然而現實感足以達到目標。

大多數Kaggle參與者絕對不會贏得一場比賽,這完全是正常的。如果你把它當成你的第一個里程碑,你可能會感到灰心喪氣,幾次嘗試後就失去了動力。

增量目標使旅程更加愉快。例如:

  • 提交一個打敗基準解決方案的提交。
  • 在一場比賽中,排名前50%。
  • 在一場比賽中,排名前25%。
  • 在三場比賽中,排名前25%。
  • 在一場比賽中,排名前10%。
  • 贏得一次比賽!

這個策略將讓你衡量你的進步並不斷改善。

提示#2:查看投票最多的內核。

Kaggle有一個很酷的功能,參與者可以提交「內核」,它是探索概念、展示技術或甚至共享解決方案的簡短腳本。

當你開始一場比賽或者處於停滯狀態時,回顧流行的內核可以激發更多的想法。

提示#3:在論壇上提問。

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

畢竟,可能發生的最糟糕的事情是什麼?也許你是被忽視...這就是所有。

另一方面,你可以獲得豐富的成果,包括來自更有經驗的數據科學家的建議和指導。

提示4:獨立開發代碼的技能。

一開始,我們建議單獨工作。這將迫使你解決應用機器學習過程的每一步,包括探索性分析,數據清洗,特徵工程和模型訓練。

如果你太早開始合作,你可能會錯過開發這些基礎技能的機會。

提示#5:團隊協作推動你的上限。

就這樣說,在未來的比賽中組隊可以是推動你的上限和向他人學習的好方法。許多過去的獲獎者都是將他們的知識結合起來的團隊。

另外,掌握機器學習的技術技能之後,你可以與可能擁有更多領域知識的其他人進行協作,進一步拓展機會。

提示#6:請記住,Kaggle可以成為墊腳石。

記住,你不一定要成為一個長期的Kaggler。如果你發現你不喜歡格式,那沒有什麼大不了的。

事實上,許多人在進入到自己的項目或成為全職數據科學家之前使用Kaggle作為墊腳石。

這是你儘可能多專註於學習的另一個原因。從長遠來看,比起追求最大的獎池,提供相關經驗的針對性比賽更好。

提示#7:不要擔心低排名。

一些初學者從來沒有開始,因為他們擔心他們的個人簡介中的低排名。當然,競爭焦慮是一個現實的現象,並不局限於Kaggle。

然而,低排名實際上並不是大問題。沒有人會評判你,因為他們都是初學者。

即使如此,如果你仍然非常擔心你的個人資料中的低排名,你還可以創建一個單獨的練習帳戶來學習訣竅。一旦你感到合適,你可以開始使用你的「主帳戶」來建立你的獎盃。

(再一次,這是完全不必要的!)

結論

在本指南中,我們分享五個入門Kaggle的步驟:

  1. 選擇一種編程語言。
  2. 了解探索數據的基礎知識。
  3. 訓練你的第一個機器學習模型。
  4. 處理「入門級」的比賽。
  5. 爭取最大限度地發掘學習,而不是賺錢。

最後,在這個平台上,我們分享7個的最喜歡的提示:

  • 設置增量目標。
  • 查看投票最多的內核。
  • 在論壇上提問。
  • 獨立開發代碼技能。
  • 團隊協作推動你的上限。
  • 記住,Kaggle可以成為踏腳石。
  • 不要擔心低排名。

推薦閱讀:

Pandas之數據分箱/分組/聚合/透視表
數據科學,機器學習和人工智慧有什麼區別?
對數據科學感興趣?先看看這些

TAG:数据科学 |