天天看點

加入 Kaggle 大資料競賽,總共分幾步?

加入 Kaggle 大資料競賽,總共分幾步?
加入 Kaggle 大資料競賽,總共分幾步?

目前,開發者可以通過各種各樣的方式來學習和實踐機器學習技能,但為什麼大家都選擇 kaggle 呢?或許是因為 kaggle 具有以下一些特定的優勢:

● 問題的定義明确,直接提供了可用的資料庫; ● 由于行業裡充斥着各種五花八門的排行榜,是以很難找到其他更客觀的機器學習測試平台; ● 通常每場比賽都會有許多讨論和分享,參賽者可以從中學習,并參與分享; ● 通過解決現實生活中的某個特定資料問題,參賽者可以充分展示自己; ● 這是一個完全靠技術說話的平台,隻要你能解決問題,就能赢得尊重,跟學曆和學位無關。

這裡,我總結了入門 kaggle 競賽的四個簡單步驟:

1. 標明一個平台 2. 基于标準的資料庫練習 3. 練習舊的 kaggle 題目 4. 在 kaggle 上比賽

就像這世上的許多事,簡單地寫出這四個步驟當然很容易,但實作起來很難。實作它們需要付出非凡的時間和精力,無疑會是一項艱苦的工作。當然,天道酬勤,隻要你付出了努力,并且有條不紊地堅持下去,那麼總有一天你将成為一名世界級的機器學習從業者。

另外,對于那些已經具備一些開發經驗的讀者,你可以直接跳到第四步開始比賽。但對于本文的主要讀者,那些入門級的使用者,我還是建議從第一步開始。

下面我們具體看看這四個步驟。

同樣,擺在開發者面前的可選平台也很多,可能最終你會發現初期的選擇糾結是沒有必要的,因為每個開發者實際上都同時使用許多平台,但剛開始你必須標明一個。

這裡,我推薦大家以 python 為起點。原因有以下幾條:

● 業界對基于 python 的機器學習需求正在增長; ● 不像 r 語言,python 是一個全功能的程式設計語言; ● python 的生态系統已經基本成熟,可選的工具包非常豐富,例如 sklearn,pandas,statsmodels,xgboost 等; ● python 具有一些非常好的深度學習架構:theano,tensorflow,keras 等。

總之,你必須先標明一個平台,并開始學習如何使用它。

深入閱讀:

● python is the growing platform for applied machine learning

● python machine learning

標明了平台之後,下一步就是基于真實的資料庫展開實踐。

這裡我推薦通過 uci machine learning repository (uci 機器學習資源庫)來解決一些标準的機器學習問題。

需要強調的是:将每個資料集都視為一次小型的比賽。相關注意事項包括:

● 将資料集組織成一個隊列,并且保留測試集,将測試集分成一個公共和私人的排行榜; ● 概括每一個資料集的處理過程,堅持下去,并不斷修正這一過程,直到通過它你可以很容易地得到針對每一個小型資料集的頂級結果; ● 對每一個資料集規定時間上線,例如必須在幾個小時内完成; ● 充分利用相關資料集的文檔資料,以更好地定義既定問題和解釋特征。 ● 學習如何充分利用好每一個工具、算法和資料集。

總之,你需要認真對待每一個資料集,通過處理各種不同的資料集積累經驗,并将這些經驗應用到處理新的資料集中。

● practice machine learning with small in-memory datasets

● applied machine learning process

加入 Kaggle 大資料競賽,總共分幾步?

經過以上兩步,現在你已經清楚地認識了自己的工具,并懂得如何去使用它們,是時候練習一些舊的 kaggle 題目了。

你可以通路那些舊的 kaggle 比賽的資料集,并針對這些資料釋出自己的解決方案,然後在公共和私人的榜單上進行評估。

第三步的核心目的是:學習以往比賽中的頂級選手是如何處理競賽性的機器學習問題的,然後将他們的方法融入自己的解題思路之中。相關注意事項包括:

● 盡量選擇類型各不相同的問題,迫使自己學習和應用新的、與以往不同的技術; ● 研究論壇裡的文章、頂級選手的部落格、github 倉庫和所有其他的相關資料,學習别人的解決方案; ● 以進入公共或私人排行榜的前 10% 為奮鬥目标; ● 針對同一個資料集,嘗試多個不同的獲獎者的解決方案。

總之,你需要認真學習以往的優秀參賽者的解決方案和工具,并吸收他們的優點,進一步積累經驗,将這些經驗應用到新資料集的進行中。

● machine learning is kaggle competitions

● discover the methodology and mindset of a kaggle master: an interview with diogo ferreira

現在,你已經可以正式參加 kaggle 比賽了。

下面是一些參賽的注意事項:

● 一次隻處理一個問題,直到被卡住; ● 以進入每個問題的私人排行榜的前 25% 或前 10% 為奮鬥目标; ● 嘗試在論壇上自由分享,這會引發良性的互動和協作; ● 最大限度地縮短思考/閱讀一個好主意和将之付諸實踐的時間(例如幾分鐘之内);

最後需要強調的是,kaggle 雖然的确是一場比賽,但我們應該抱着學習和分享的态度去參賽。

● how to kick ass in competitive machine learning

● master kaggle by competing consistently

本文作者:恒亮