這是一份為數據科學初學者準備的Kaggle競賽指南
我從哪裡開始?
我會面對經驗豐富的博士級研究人員團隊么?
如果我沒有獲勝的機會,那麼還值得競爭嗎?
這就是數據科學?(如果在Kaggle做得不好,那麼我在數據科學方面還有未來嗎?)
我的未來將如何發展?
當你第一次接觸Kaggle時,是否也有這些困惑?好,那你來對地方了!
這份入門指南詳細介紹了一些參加Kaggle競賽必知的知識,以及如何在Kaggle競賽中打怪升級,爭奪排位,「登上人生巔峰」!
對於數據科學初學者來說,Kaggle是一個很受歡迎的競賽平台。畢竟,這裡的一些競賽中有超過1000000美元的獎金池和數以百計的行業高手。而這裡的頂尖團隊也擁有數十年的綜合經驗,曾處理過很多高大上的問題,如改善機場安全或分析衛星數據等。
雖然Kaggle如此有吸引力,但是當你首次參與時也要hold住自己,一定要理清以下內容。
Kaggle 和日常數據科學的差異
首先,我們需要知道的是:Kaggle比賽與日常使用的數據科學是有重要差異的。但是,如果你以正確的心態去了解它們,還是能獲取很多寶貴經驗的。
Kaggle比賽
本質上,比賽(獲獎)必須符合以下3個標準:
1. 問題一定很難。比賽問題不可能一個下午就能解決。為了獲得最好的投資收益,主辦方會提交使他們的效益最大,同時也是最難解決的問題。
2. 解決方案必須是新的。為了贏得最新的比賽,你通常需要進行擴展研究、制定演算法、訓練高級模型等。
3. 必須與他人競爭。因為比賽的目標就是贏得冠軍,所以你的解決辦法必須與他人的競爭,而且爭取獲勝。
日常的數據科學
相比之下,日常數據科學不需要達到相同的標準。
1. 解決問題的方法越簡單越好。事實上,數據科學家應該嘗試事半功倍的方法:能夠快速有效地解決有影響力的項目。
2. 解決方案必須成熟。大多數常見的任務(如探索性分析、數據清理、A/B測試、經典演算法)已經有了證明框架。只需要重新設計架構即可。
3. 不需要與他們競爭成為第一。一個解決方案即使只是勝過之前的測試基準一點點,也可能是非常有價值的。
Kaggle競賽鼓勵你發揮出最優秀的表現,而日常中的數據科學提倡效率和最大化的商業影響。
那麼,Kaggle是值得學習的嗎?
儘管Kaggle和日常數據科學有很大的不同,但是對於初學者來說,Kaggle仍然是一個很好的學習工具。以下是Kaggle競賽的3大優勢:
1. 每場比賽都是各自獨立的。你不需要再擴展自己上一個項目,並收集數據,這可以讓你把心思放在其他技能上。
2. 實踐就是實踐。學習數據科學的最好方法是通過實踐學習。你沒有必須贏得每一場比賽的壓力,同時可以遇到許多有趣的問題。
3. 相互討論和優勝者訪談對你都有啟發性。每一場比賽都有討論區以及優勝者訪談。你可以深入了解更有經驗的數據科學家的思維過程。
如何開始Kaggle的工作
接下來是一個循序漸進的行動計劃,讓你在Kaggle上可以輕鬆提升自己,參與競爭。
步驟1:選擇一種編程語言
首先,你需要選擇一種編程語言並堅持使用它。在Kaggle和更廣泛的數據科學社區論壇中,Python和R都很受歡迎。
如果這倆你都沒有接觸過,推薦Python,因為它是一種通用的編程語言,你可以端到端使用它。
步驟2:學習數據的基礎知識
載入、導航和繪製數據(即探索性分析)的能力是數據科學的第一步,因為它告訴了你在整個模型訓練過程中所做的各種決策。
如果你選擇了Python語言,那麼建議你使用專門為此而設計的Seaborn資料庫。 它有許多繪製最常見和有用的圖表的高級功能。
步驟3:訓練你的第一個機器學習模型
在進入Kaggle之前,建議你在更容易、更易於管理的數據集上對模型進行訓練。這可以讓你熟悉機器學習庫和空間布局。
關鍵是要養成良好的習慣,比如,將數據集分解為單獨的訓練集和測試集,交叉驗證以避免過度使用,並使用合適的性能指標。
對於Python來說,最好的通用機器學習庫是「scikit-Learn」。
步驟4:著手準備入門賽
現在我們已經作好技術準備,該來了解一下Kaggle了!
Kaggle最常見的比賽類型包括以下4種:
特色賽:通常是由公司、組織,甚至是政府贊助的。他們有最大的獎金池。
研究賽:面向研究,幾乎沒有獎金。他們也有非傳統的提交過程。
招聘賽:是由想招聘數據科學家的公司贊助的,比較少見。
入門賽:有很多比較有特色的比賽,但是沒有獎金池。它們提供了易於處理的數據集、大量的教程和循環的提交窗口,這樣你可以隨時參加比賽。
入門賽比較適合初學者,因為它給了你一個低風險的學習環境。同時,你還能得到許多社區、論壇創建的教程。
步驟5: 學習經驗教訓,而不是關注收益
有了上述基礎,大顯身手的時候到了!
一般來說,參加Kaggle比賽需要很多時間和精力,還要合理安排。因此,建議你明智地選擇對手。盡量參加能使你實現長期目標的競賽,獲取其中的技術和技巧。
雖然獎金很誘人,但更有價值(更可靠)的獎勵是你可以獲得為自己的職業發展所需要的技能。
在Kaggle比賽中節約時間的7個小技巧
技巧1:設定遞增目標
如果你玩過「Addicting Games」遊戲,就會知道遞增目標的魅力。這就是能讓你著迷的,很牛的遊戲的手段。每一個目標都足夠大,足以讓人有成就感,但卻足夠現實,讓你觸手可及。
大多數的參賽者都不可能一上來就贏得一場比賽,如果你把贏一場作為你的第一個目標,那麼很容易感到氣餒,在嘗試了幾次之後就失去動力了。循序漸進的目標會使你的kaggle之旅更加愉快。
例如:
1.在一場比賽中得分居於前50%。
2.在一場比賽中得分居於前25%。
3.在一場比賽中得分居於前10%。
4.贏得比賽!
這個策略可以讓你在參賽過程中衡量自己的進步和改變。
技巧2:查看最流行的參賽者內核
Kaggle有一個很棒的特點,參賽者可以提交內核——一種簡短的腳本,可以探索一個概念,展示一種技術,甚至可以共享一個解決方案。
當你開始一場比賽,或者當你達到一個頂峰時,回顧流行的內核可以激發出更多的想像。
技巧3:在論壇上提問
不要害怕問「愚蠢」 的問題。你會有很多收穫,包括來自經驗豐富的數據科學家的建議和指導。
技巧4:獨立開發核心技能
一開始,建議你單獨工作。這將迫使你獨立處理應用機器學習過程的每一個步驟,包括探索性分析、數據清理、特性工程和模型培訓。
如果你過早地開始合作,你可能會錯過發展這些基礎性技能的機會。
技巧5:利用團隊合作突破瓶頸
也就是說,在未來的比賽中進行合作可能是一個很好的方式,向其他人學習,突破個人局限。過去,許多贏家都是團隊,他們聯合起來就意味著把更多優秀的知識結合起來。
此外,一旦你掌握了機器學習的技術,你就可以與比你有更多領域知識的人合作,進一步拓展自己的能力。
技巧6:記住,Kaggle也可能只是一個墊腳石
記住,你並不一定要成為一個長期的「競技高手」。如果你發現你不喜歡這種模式,那也沒什麼大不了的。
事實上,許多人在開始自己的項目或成為全職數據科學家之前,只是把Kaggle當作墊腳石。
這也是你應該儘可能多地專註於學習的另一個原因。從長遠來看,參加Kaggle最好的目標是獲得相關經驗,而不是追逐最多的獎金。
技巧7:不要擔心等級低
一些初學者不敢參加比賽,因為他們擔心別人看到自己的低級別而感到難為情。當然,競技焦慮是一種真實的現象,並不只局限於Kaggle。
然而,低級別並不是什麼大問題。沒有人可以評判你,因為他們都是初學者。
即便如此,如果你仍然對個人資料中的低排名感到擔憂,那麼也可以創建一個單獨的練習賬號來學習技巧。一旦你感覺時機成熟,就可以使用自己的 「主賬號」進擊排行榜了。
來源:Elitedatascience
智能觀 編譯整理 想知道AI加教育領域有哪些最新研究成果?請在智能觀(zhinengguanym)對話界面回復「論文」;想要AI領域更多的乾貨?請在對話界面回復「乾貨」;想了解更多專家的「智能觀」,請在對話界面回復「觀點」,去獲取你想要的內容吧。
推薦閱讀:
※Kaggle 入門 1.3——Titanic Solution Using speedml
※Kaggle求生:亞馬遜熱帶雨林篇
※Python員工離職預測
※kaggle比賽初體驗
※數據挖掘系列篇(27):Kaggle 數據挖掘比賽經驗分享