您的位置:首頁>科技>正文

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

日前, 穀歌在 Google Cloud Next 雲計算大會上宣佈收購知名大資料競賽平臺 Kaggle。 消息一出, 震動了資料科學、AI、機器學習三界(詳見雷鋒網文章:穀歌收購 Kaggle 為什麼會震動三界?)。

相信經過這條新聞的曝光, 未來會出現更多的開發者和從業人員加入 Kaggle 一展身手。 為此, 雷鋒網編譯了一篇國外大牛的博文, 其中總結了入門 Kaggle 競賽的四個簡單步驟, 希望對相關人員有所幫助。

原文作者 Jason Brownlee, 機器學習專家, 開發者,

作家, 企業家, 曾在美國國防部門、初創企業和極端天氣預報機構從事機器學習的相關開發工作多年。 目前為了幫助機器學習領域更多的開發者, 開設了一個名為 Machine Learning Mastery的網站, 提供各種入門和高級的機器學習教程。

為什麼選 Kaggle?

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

● 問題的定義明確, 直接提供了可用的資料庫;

● 由於行業裡充斥著各種五花八門的排行榜, 因此很難找到其他更客觀的機器學習測試平臺;

● 通常每場比賽都會有許多討論和分享, 參賽者可以從中學習, 並參與分享;

● 通過解決現實生活中的某個特定資料問題, 參賽者可以充分展示自己;

● 這是一個完全靠技術說話的平臺, 只要你能解決問題, 就能贏得尊重, 跟學歷和學位無關。

概述

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

1. 選定一個平臺

2. 基於標準的資料庫練習

3. 練習舊的 Kaggle 題目

4. 在 Kaggle 上比賽

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

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

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

1. 選定一個平臺

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

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

● 業界對基於 Python 的機器學習需求正在增長;

● 不像 R 語言, Python 是一個全功能的程式設計語言;

● Python 的生態系統已經基本成熟, 可選的工具包非常豐富, 例如 sklearn, pandas, statsmodels, xgboost 等;

● Python 具有一些非常好的深度學習框架:Theano, TensorFlow, Keras 等。

總之, 你必須先選定一個平臺, 並開始學習如何使用它。

深入閱讀:

● Python is the Growing Platform for Applied Machine Learning

地址:http://machinelearningmastery.com/python-growing-platform-applied-machine-learning/

● Python Machine Learning

地址:http://machinelearningmastery.com/start-here/#python

2. 基於標準的資料庫練習

選定了平臺之後, 下一步就是基於真實的資料庫展開實踐。

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

UCI 官網:http://archive.ics.uci.edu/ml/index.html

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

● 將資料集組織成一個佇列, 並且保留測試集, 將測試集分成一個公共和私人的排行榜;

● 概括每一個資料集的處理過程, 堅持下去, 並不斷修正這一過程, 直到通過它你可以很容易地得到針對每一個小型資料集的頂級結果;

● 對每一個資料集規定時間上線, 例如必須在幾個小時內完成;

● 充分利用相關資料集的文檔資料, 以更好地定義既定問題和解釋特徵。

● 學習如何充分利用好每一個工具、演算法和資料集。

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

深入閱讀:

● Practice Machine Learning with Small In-Memory Datasets

http://machinelearningmastery.com/practice-machine-learning-with-small-in-memory-datasets-from-the-uci-machine-learning-repository/

● Applied Machine Learning Process

http://machinelearningmastery.com/start-here/#process

3. 練習舊的 Kaggle 題目

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

你可以訪問那些舊的 Kaggle 比賽的資料集,並針對這些資料發佈自己的解決方案,然後在公共和私人的榜單上進行評估。

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

● 儘量選擇類型各不相同的問題,迫使自己學習和應用新的、與以往不同的技術;

● 研究論壇裡的帖子、頂級選手的博客、GitHub 倉庫和所有其他的相關資料,學習別人的解決方案;

● 以進入公共或私人排行榜的前 10% 為奮鬥目標;

● 針對同一個資料集,嘗試多個不同的獲獎者的解決方案。

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

深入閱讀:

● Machine Learning is Kaggle Competitions

http://machinelearningmastery.com/machine-learning-is-kaggle-competitions/

● Discover the Methodology and Mindset of a Kaggle Master: An Interview with Diogo Ferreira

http://machinelearningmastery.com/discover-the-methodology-and-mindset-of-a-kaggle-master-an-interview-with-diogo-ferreira/

4. 在 Kaggle 上比賽

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

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

● 一次只處理一個問題,直到被卡住;

● 以進入每個問題的私人排行榜的前 25% 或前 10% 為奮鬥目標;

● 嘗試在論壇上自由分享,這會引發良性的互動和協作;

● 最大限度地縮短思考/閱讀一個好主意和將之付諸實踐的時間(例如幾分鐘之內);

最後需要強調的是,Kaggle 雖然的確是一場比賽,但我們應該抱著學習和分享的態度去參賽。

深入閱讀:

● How to Kick Ass in Competitive Machine Learning

http://machinelearningmastery.com/how-to-kick-ass-in-competitive-machine-learning/

● Master Kaggle By Competing Consistently

http://machinelearningmastery.com/master-kaggle-by-competing-consistently/

並將這些經驗應用到處理新的資料集中。

深入閱讀:

● Practice Machine Learning with Small In-Memory Datasets

http://machinelearningmastery.com/practice-machine-learning-with-small-in-memory-datasets-from-the-uci-machine-learning-repository/

● Applied Machine Learning Process

http://machinelearningmastery.com/start-here/#process

3. 練習舊的 Kaggle 題目

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

你可以訪問那些舊的 Kaggle 比賽的資料集,並針對這些資料發佈自己的解決方案,然後在公共和私人的榜單上進行評估。

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

● 儘量選擇類型各不相同的問題,迫使自己學習和應用新的、與以往不同的技術;

● 研究論壇裡的帖子、頂級選手的博客、GitHub 倉庫和所有其他的相關資料,學習別人的解決方案;

● 以進入公共或私人排行榜的前 10% 為奮鬥目標;

● 針對同一個資料集,嘗試多個不同的獲獎者的解決方案。

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

深入閱讀:

● Machine Learning is Kaggle Competitions

http://machinelearningmastery.com/machine-learning-is-kaggle-competitions/

● Discover the Methodology and Mindset of a Kaggle Master: An Interview with Diogo Ferreira

http://machinelearningmastery.com/discover-the-methodology-and-mindset-of-a-kaggle-master-an-interview-with-diogo-ferreira/

4. 在 Kaggle 上比賽

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

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

● 一次只處理一個問題,直到被卡住;

● 以進入每個問題的私人排行榜的前 25% 或前 10% 為奮鬥目標;

● 嘗試在論壇上自由分享,這會引發良性的互動和協作;

● 最大限度地縮短思考/閱讀一個好主意和將之付諸實踐的時間(例如幾分鐘之內);

最後需要強調的是,Kaggle 雖然的確是一場比賽,但我們應該抱著學習和分享的態度去參賽。

深入閱讀:

● How to Kick Ass in Competitive Machine Learning

http://machinelearningmastery.com/how-to-kick-ass-in-competitive-machine-learning/

● Master Kaggle By Competing Consistently

http://machinelearningmastery.com/master-kaggle-by-competing-consistently/

Next Article
喜欢就按个赞吧!!!
点击关闭提示