5個步驟 & 7個提示|一份開啟Kaggle競賽征途的初學者指南
更多深度文章,請關註:https://yq.aliyun.com/cloud
對於機器學習入門而言,我們一般都是從手寫體MNIST、CIFAR-10等一些公開的數據集快速上手,復現別人的模型並得到一些好的結果。由於別人給出了相關的模型及步驟,做完這些復現總覺得太簡單而沒有收穫,這是因為這些數據集及給出的模型都非常的完美。針對自己特定任務和數據集而言,數據集處理起來相當困難或者搭建的模型效果不好,讓初學者不禁陷入沉思,是我們太菜了嗎?
答案是肯定而又殘酷的,但不要灰心,人生如棧,學習也一樣。在懵懂中入棧,接觸這個機器學習行業;每天忙於製作數據集與搭建模型,做著似乎總是重複的事情,出棧而又入棧,為的只是能搭建一個合適的模型,完成特定的任務;我們總說在哪裡跌倒就在哪裡爬起來,但是當一次次數據集製作與模型的模擬實驗結果不好時,我們就像彈棧找不到返回地址,對自己感到迷茫,對機器學習這份行業感到猶豫。很幸運,你看到這篇文章,將告訴你在一個個棧的外邊,隱藏著一個小平台,只要我們在製作數據集中多思考,在搭建模型中多嘗試,不斷進取,就能取得成功。這個平台對於機器學習行業者而言,並不陌生,那就是數據科學競賽的熱門平台——Kaggle。
Kaggle創辦於2010年,目前已經被Google收購,是全球頂尖的數據科學競賽平台,最近關於NIPS的生成對抗比賽可以見博主這篇文章《Kaggle首席技術官發布——(Kaggle)NIPS 2017對抗學習挑戰賽起步指南》,感興趣的同學可以立刻著手準備參加吧。Kaggle提供了一個介於「完美」與真實之間的過渡,問題的定義基本良好,卻夾著或多或少的難點,一般沒有完全成熟的解決方案。但我們也不要將kaggle上的比賽想得那麼簡單,畢竟,一些比賽有超過100萬美元的獎池和數百個競爭對手;另外有些頂尖的團隊擁有數十年的綜合經驗,處理棘手的問題,如改善機場安全或分析衛星數據。
一些初學者對參加Kaggle比賽感到一些擔憂,如:
如何開始
會跟經驗豐富的博士研究生隊伍對抗嗎?
如果沒有真正的獲勝機會,那麼值得競爭嗎?
數據科學是什麼?(如果在Kaggle做得不好,我未來會成為數據科學家嗎?)
如何提高排名?
在本指南中,我們將分解一些需要了解的入門知識、提高比賽的技能以及如何在Kaggle比賽中享受的建議。
Kaggle VS. 「典型」數據科學
首先,我們需要弄清楚:
Kaggle比賽與「典型」數據科學有重要的差異,但如果以正確的心態接近Kaggle,它仍然會提供寶貴的經驗。
Kaggle比賽
本質上,比賽必須符合以下幾個標準:
問題一定很難。 比賽不能在短時間解決,為了獲得最佳的投資回報,東道主公司一般會提交它們遇到的最大的問題。
解決方案必須是新的。 為了贏得最終的比賽,你通常需要進行擴展研究,自定義演算法、訓練高級模型等。
表現是相對的。比賽只產生一個冠軍,所以你的解決方案必須打敗對方。
「典型」數據科學
相比之下,典型數據科學不需要符合上述標準。
問題可以很容易。事實上,數據科學家們應該嘗試一些可以快速解決的有影響力的項目。
解決方案可以是非常成熟的。 最常見的任務(例如探索性分析、數據清洗、A / B測試及經典演算法)已經有成熟的框架,只需要應用就好。
表現可以是絕對的。 即使只擊敗以前的基準,這個解決方案也可以是有價值的。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學習教程
7天應用機器學習課程
步驟4:處理「入門」比賽。
現在準備嘗試Kaggle比賽,kaggle比賽分為幾類,最常見的是:
特色 --這些通常由公司、組織甚至政府贊助,有著最大的獎池。
研究 -這些都是以研究為導向,幾乎沒有獎金。
招聘 --這些由希望聘請數據科學家的公司贊助,比較少見。
入門 --這些和特色比賽類似,但沒有獎池。它們具有更簡單的數據集、大量的教程和滾動提交窗口,因此可以隨時參加這類比賽。
「入門」比賽對於初學者來說是非常適合的,因為它們提供了低風險的學習環境和許多社區創建的教程的支持
步驟5:爭取最大限度地學習,而不要在乎獎金收入。
在以上基礎上,現在是進入「特色」比賽的時候了。一般來說,這類比賽將花費更多的時間和精力。因此,建議合理地選擇相應的比賽,不要太在意獎金,而是著重發展自己的職業技能。
享受Kaggle的提示
最後,介紹最喜歡的7個提示以充分利用在Kaggle上的時間。
提示#1:設置增量目標。
如果你曾經玩過一個令人上癮的遊戲,你就會知道增量目標的力量。設置的每個目標都足夠大,完成後會獲得成就感。
大多數Kaggle參與者永遠不會贏得一場比賽,這完全是正常的。如果你將這個設定為你的第一個里程碑,你可能會感到灰心喪氣,經過幾次嘗試後就失去了動力。增量目標使得征途更加愉快。例如:
提交一個超越基準的解決方案
在一場比賽中排名前50%
在一場比賽中排名前25%
在三場比賽中排名前25%
在一場比賽中排名前10%
贏得一次比賽!
這個策略將讓你衡量自己的進步。
提示#2:查看大多數被投票的核心程序。
Kaggle有一個很酷的功能,參與者可以提交「核心程序」,雖然只是展示技術或共享解決方案的簡短腳本,但當你開始一場比賽或者遇到瓶頸時,回顧這些核心程序可以激發更多的想法。
提示#3:在論壇上提問。
不要害怕問「愚蠢」的問題。提問完發生的最糟糕事情就是可能會被忽視,沒有人會嘲笑你。而另一方面,你可能獲得來自更有經驗的數據科學家的建議和指導。
提示#4:獨立開發核心技能。
一開始建議單獨工作。這將迫使你在應用機器學習過程中親自處理每一個步驟,包括探索性分析、數據清洗及模型訓練等。
提示#5:團結起來打破你的界限。
在之後的比賽中組隊可以打破你的界限並向他人學習。許多過去的獲獎者都是團結一致的團隊。另外,掌握機器學習的技能後,你可以與擁有更多領域知識的其他人進行合作,進一步擴大自己的機遇。
提示#6:請記住,Kaggle可以成為墊腳石。
記住,你不一定要成為一個長期的Kaggler。如果發現你不喜歡這種形式,那沒有什麼大不了。事實上,許多人在專註自己項目或成為全職數據科學家之前,都使用Kaggle作為墊腳石。從長遠來看,最好是專註於比賽提供的相關經驗,而不是追逐那些獎金。
提示#7:不要擔心低排名。
一些初學者不願意開始是因為擔心自己的個人資料中出現低排名記錄。然而,低排名實際上對自己沒有很大影響,因為其他人不會評判你,大家都是初學者。如果仍然擔心個人資料中出現低排名,可以創建一個「練習帳戶」來學習,熟練之後再用「主賬戶」開始自己的獎盃之旅。(聲明,這是完全沒必要的!)
結論
在本指南中,分享了Kaggle起步的5個步驟:
1. 選擇一種編程語言
2. 了解探索數據的基礎知識
3. 訓練你的第一台機器學習模型
4. 處理「入門」比賽
5. 爭取最大限度地學習,而不要在乎獎金收入
最後,分享了在平台上享受時間的7個提示:
設置增量目標
回顧大多數投票的核心程序
在論壇上提問問題
獨立開發核心技能
組對打破自身界限
Kaggle可以成為踏腳石
不要擔心低排名
福利,如果你對這個教程感興趣,可以在社區註冊,你會收到更多的教程及一個免費的7天速成班課程。
來源
EliteDataScience:著名機器學習網站,分享數據科學及機器學習相關。
網址:https://elitedatascience.com/
Facebook:https://www.facebook.com/elitedatascience/
本文由阿里云云棲社區組織翻譯
文章原標題《The Beginner』s Guide to Kaggle》,來源:EliteDataScience,譯者:海棠
※程序日誌處理挑戰與方案
※從Facebook AI Research開源fastText談文本分類:詞向量模性、深度表徵等
※應用MaxCompute實現變壓器局部放電相位分析
※流程圖和細節都傳授給你:教你如何利用阿里雲產品搭建一個簡單數據分析平台
※如何將機器學慣用在基於規則的驗證上
TAG:雲棲社區 |
※17歲Kaggle Grandmaster:從14歲開始的學習之路、競賽經驗談
※Young Bird Plan 2018 Matrix天瑪行空模塊化辦公傢具系統設計競賽全球上線!
※SpaceXHyperloopPod2019競賽再創速度紀錄
※進入 kaggle 競賽前 2% 的秘訣
※Kaggle入門級競賽top5%排名經驗分享
※MVRDV在鹿特丹市中心再贏競賽:50,000m2塔樓綜合體Wennapoint
※js13kGames競賽挑戰在文件大小下開發WebXR遊戲
※Oculus啟動VR League電競賽第二季,獎金池超22萬美元
※競賽老兄的「奧迪RS3落地Detailing」
※Kaggle競賽「找鹽」冠軍:價值5萬美元的第一名方案出爐
※2019 Canyon Lux,重新塑造XC/XCM競賽自行車
※最火電競賽事VR League第三季於3月24日正式來襲
※誰是數據競賽王者?CatBoost vs.Light GBM vs.XGBoost
※俄多型戰機備戰「Aviadarts-2019」國際飛行競賽
※從零開始,教你征戰Kaggle競賽
※22分鐘直衝Kaggle競賽第二名!一文教你做到
※millionairemansion.co.uk舉辦首屆以豪宅為獎品的全球競賽,勝出者將獲得一座英國宅邸
※「年度最佳Instagram照片」競賽10大優秀作品
※AutoML在IEEE-ISI World Cup 2019競賽中的應用:冠軍團隊DeepBlueAI技術分享
※如何達到Kaggle競賽top 2%?這裡有一篇特徵探索經驗帖