天天看點

大資料競賽平台——Kaggle入門

 在學習了一些資料挖掘和機器學習的算法之後,需要積累實際開發經驗。在實踐的過程中不僅需要自己摸索,還需要向牛人學習和請教。Kaggle就提供這樣的資料平台,企業或者研究者可以将資料、問題描述、期望的名額釋出到Kaggle上,開發者其資料下載下傳到本地,分析,處理後将結果上傳,Kaggle将結果排名顯示,有的比賽設有資金。Kaggle還有活躍的讨論區,供大家交流。

如何使用Kaggle

 我們先來看看,Kaggle的具體使用方法。在競賽界面中​​https://www.kaggle.com/competitions​​,可看到比賽分類:Getting Start,Playground,Featured,Research等(用不同顔色區分).建議初學者從Getting Start級别開始,在這個級别上可以看到更多的教程和代碼分享,題目也比較簡單,适合入門.

大資料競賽平台——Kaggle入門

competitions

 以參賽隊最多的Tinanic沉船問題為例.​​https://www.kaggle.com/c/titanic​​.它的目标是預測乘客是否幸存.

大資料競賽平台——Kaggle入門

Titanic

 界面中提供了問題描述(Overview),資料下載下傳(Data),示例代碼(Kernels),讨論區(Discussion),排行榜(Leaderboard),和規則(Rules).

 資料一般是csv格式,它提供了含用條件和結果是訓練樣本(train.csv),隻有條件沒有結果的測試樣本(test.csv),開發者用訓練樣本訓練出模型,并對測試樣本進行預測,預測的結果根據格式要求(gender_submission.csv)儲存成檔案,上傳到Kaggle網站,網站給預測結果評分并排名。

 Kernels中有開發者共享的解題思路和代碼,大多數是用Python或R語言實作的。

大資料競賽平台——Kaggle入門

Kernels

 例如Omar El Gabry的A Journey through Titanic就是一個很好教程,它包含了讀取資料,處理資料,導出結果的整個過程。用seaborn庫圖形化分析各個屬性(見下圖),使用sklearn庫作為資料挖掘工具。其中有對數值類屬性均值和标準差的計算,對枚舉類屬性的拆分/組合,處理各種缺失值,以及用人類常識調整特征,比如将父母兄弟配偶統一歸入家庭關系,将16歲以下的男女統一歸類為兒童等等,還計算了每個屬性和結果的相關系數,是一個非常好的特征工程入門範例。在算法方面,它使用了sklearn提供的邏輯回歸,SVM,随機森林,最近鄰,樸素貝葉斯等方法訓練。

大資料競賽平台——Kaggle入門

seaborn

 訓練之後開發者可通過Submit Predictions上傳自己的預測結果(注意Submit Predictions按鈕登入後才顯示),就可以看到排名了。

這裡提供了大量的資料,我們可以借此嘗試求解各種類型的問題,同時參考他人的經驗分享,快速提高實踐能力。當再拿到一份新資料時,至少有一個思路。

為什麼用Kaggle

 在網上看過一篇文章,題目大概是《Kaggle對找工作有什麼好處》,其中的答案是“沒有”,因為初學者很難在Kaggle中拿到名次,參與程度可深可淺,無法通過它判斷你的水準。我覺得Kaggle不是一個貼标簽的東西,可以把它作為練習的場地,以及和高手學習機會。

 我們之前看到的書基本都是一個算法,一個算法的講,當學習了一些算法之後,它們是零散的點,需要在用的過程中把這些點串起來,具體應用中有很多坑,需要自己踩一遍,和照着書打代碼是完全不同的,而Kaggle正好給我們提供了這樣的資料和評價體系。

 有人說,那我也可以自己拿爬蟲抓資料啊,而且我可以找我更有興趣的資料來做.對于自己找的資料,當對預測結果滿意的時候,很難判斷到底是資料本身的資訊量不夠,還是算法不好.Kaggle上是很多人同時比賽,隻要拿自己的成績和Top1的比一比,就能判斷是什麼問題了,而且很多人會在Kernels中公布算法,在Discussion中讨論,我們也可以在其中提出自己的問題。最重要的是這個過程中,你和他們在思考同一個問題,這種學習即不是填壓式的,又可以給你引導。如果能夠做到排名靠前就更好了。

Kaggle遇到的問題

 使用Kaggle中遇到的最大問題連不上外網,比如:注冊後,在郵箱中點選激活時,出現"You did not enter the correct captcha response. Please try again",這是由于連接配接google失敗導緻的。不過隻有在注冊,下載下傳,上傳檔案時需要連接配接外網。

 現在通路外網越來越難了,建議買一些收費的流量(注冊激活用不了一兩兆),有的工具第一次注冊會送你幾百兆流量.比較麻煩的是Kaggle的資料都是存在google storage上的,是以下資料時也要連外網.不過像上例中的純文字資料,也用不了幾百K.

繼續閱讀