超詳細!如何準備機器學習競賽?
點選上方藍色字型,關注我們
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,因為這是一種通用程式語言,你可以在整個流程中都使用它。參考: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
第五步:比賽是為了更好地學習,而不是賺錢
有了上面的基礎,就可以參與到 Featured 競賽中了。一般來說,為了取得好排名,通常需要遠遠更多的時間和精力。
因此,我們建議你明智地選擇參與專案。參加競賽能幫你深入到你希望長期參與的技術領域中。
儘管獎金很誘人,但更有價值(也更可靠)的回報是為你的未來事業所獲得的技能。
享受 Kaggle 的小訣竅
最後,我們將介紹幾個參與 Kaggle 的最受歡迎的訣竅,希望能幫你享受你的 Kaggle 時光。
訣竅 1:設定循序漸進的目標
如果你曾經玩過什麼讓人上癮的遊戲,你就知道循序漸進的目標的重要性。那就是好遊戲讓人著迷的訣竅。每一個目標都要足夠大,以便帶來成就感;但也不能太大,不然無法實現。
大多數 Kaggle 參與者都沒贏過任何一場競賽,這完全正常。如果把獲勝作為第一個里程碑,你可能會失望,嘗試幾次之後可能就會失去動力。循序漸進的目標會讓你的旅程更加愉快。比如:
提交一個超越基準解決方案的方案
在一場競賽中進入排名前 50%
在一場競賽中進入排名前 25%
在三場競賽中進入排名前 25%
在一場競賽中進入排名前 10%
贏得一場競賽!
這種策略讓你可以一路衡量你的進展和進步。
訣竅 2:查閱得票最多的 kernel
Kaggle 有一個非常厲害的功能:參與者可以提交 kernel,即用於探索一個概念、展示一種技術或分享一種解決方案的短指令碼。
當你開始一場競賽或感覺進步停滯時,查閱受歡迎的 kernel 或許能給你帶來靈感。
訣竅 3:在論壇中提問
不要害怕問「愚蠢的」問題。
提問能遇到的最糟糕的事情是什麼?也許你會被忽視……僅此而已。
另一方面,你能得到很多回報,包括來自經驗更豐富的資料科學家的建議和指導。
訣竅 4:獨立發展核心技能
開始的時候,我們建議你獨自工作。這將迫使你解決應用性機器學習流程中的每一步,包括探索性分析、資料清理、特徵工程和模型訓練。
如果過早地和人組隊,你就可能會錯失發展這些基本技能的機會。
訣竅 5:組隊以擴充你的極限
雖然太早組隊不好,但在未來的比賽中組隊讓你能向其他人學習,進而擴充你的極限。過去的許多獲勝者都是團隊,這讓他們可以結合彼此的知識共同施展力量。
此外,一旦你掌握了機器學習的技術技能,你就可以與其他可能比你有更多領域知識的人合作,進一步擴充套件你的機遇。
訣竅 6:記住 Kaggle 可以成為你的墊腳石
記住,你不一定要成為一個長期的 Kaggle 人。如果發現你不喜歡這種形式,也沒什麼大不了的。
實際上,許多人在做自己的專案或成為全職資料科學家之前都會使用 Kaggle 作為自己的墊腳石。
所以你的關注重點應該是儘可能地學習。長遠來看,參與能給你帶來相關經驗的競賽比參加有最高獎金的競賽更好。
訣竅 7:不要擔心排名低
有些初學者擔心低排名出現在他們的個人資料中,結果一直沒有開始。當然,比賽焦慮是很正常的現象,並不只限於 Kaggle。
但是,排名低真的沒什麼關係。沒人會因此貶低你,因為他們曾經某個時候也是初學者。
即便如此,如果仍然擔心個人資料裡的低排名,你可以再單獨建立一個練習賬號。一旦覺得自己能力不錯了,就可以開始用你的「主帳號」來建立豐功偉績了。(再說一下,這麼做毫無必要!)
原文連結:https://elitedatascience.com/beginner-kaggle
《機器學習 第九期》真正工業人士授課的工業課程,BAT + Google的一線技術大咖親自授課,直播答疑、考試一對一批改、面試輔導、推薦就業;5月19日開課,真正幫你實現從零到機器學習工程師的轉化;
▼掃碼,給想改變的你一個嘗試的機會
相關文章
- 【機器學習】超詳細!上線一個機器學習專案你需要哪些準備?機器學習
- 如何準備演算法競賽?演算法
- 機器學習入門準備機器學習
- 如何準備機器學習工程師的面試?機器學習工程師面試
- 【機器學習】資料準備--python爬蟲機器學習Python爬蟲
- 機器學習面試準備大全 – 技能要求、面試例題詳解機器學習面試
- 機器學習面試準備大全 - 技能要求、面試例題詳解機器學習面試
- 持續學習——程式猿的軍備競賽
- Scikit-Learn 與 TensorFlow 機器學習實用指南學習筆記 5 —— 如何為機器學習演算法準備資料?機器學習筆記演算法
- 機器學習(十四) 機器學習比賽網站機器學習網站
- 機器學習 - 競賽網站,演算法刷題網站機器學習網站演算法
- 從零開始學機器學習——準備和視覺化資料機器學習視覺化
- webpack從0到1超詳細超基礎學習教程Web
- 如何學習機器學習機器學習
- ios零基礎學習 準備什麼,如何去學習iOS
- 機器學習之超引數機器學習
- 機器學習之分類:準確率機器學習
- 【乾貨Tips】最全的AI/機器學習競賽平臺網址及賽事地址彙總~AI機器學習
- 超詳細Dkhadoop虛擬機器圖文安裝步驟Hadoop虛擬機
- 快速入門NativeScript,超詳細的NativeScript學習筆記筆記
- Kafka超詳細學習筆記【概念理解,安裝配置】Kafka筆記
- 超詳細:如何在windous系統下使用wsl虛擬機器安裝Ubuntu虛擬機Ubuntu
- Python 機器學習的必備技巧Python機器學習
- 機器學習實戰2.1. 超詳細的k-近鄰演算法KNN(附Python程式碼)機器學習演算法KNNPython
- 機器學習之Xgboost詳解機器學習
- 機器學習筆記——特徵標準化機器學習筆記特徵
- 機器學習:詳解遷移學習(Transfer learning)機器學習遷移學習
- 機器學習之支援向量機的超平面機器學習
- 【CSDN競賽第27期】贏圖書《阿里雲天池大賽賽題解析—機器學習篇》和定製周邊阿里機器學習
- 學習Linux要有哪些心理準備?Linux
- 機器學習之決策樹詳細講解及程式碼講解機器學習
- 超詳細!如何搭建國際版我的世界伺服器伺服器
- 超詳細講解如何搭建自己的檔案伺服器伺服器
- 超詳細的node垃圾回收機制
- Cobbler 自動部署裝機(超詳細)
- 機器學習之必備知識篇機器學習
- 大資料初學者必備的詳細版學習路線圖大資料
- 機器學習-牛頓法詳解機器學習