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的步驟:
- 選擇一種編程語言。
- 了解探索數據的基礎知識。
- 訓練你的第一個機器學習模型。
- 處理「入門級」的比賽。
- 爭取最大限度地發掘學習,而不是賺錢。
最後,在這個平台上,我們分享7個的最喜歡的提示:
- 設置增量目標。
- 查看投票最多的內核。
- 在論壇上提問。
- 獨立開發代碼技能。
- 團隊協作推動你的上限。
- 記住,Kaggle可以成為踏腳石。
- 不要擔心低排名。
推薦閱讀:
※Pandas之數據分箱/分組/聚合/透視表
※數據科學,機器學習和人工智慧有什麼區別?
※對數據科學感興趣?先看看這些
TAG:数据科学 |