Kaggle機器學習入門實戰 -- Titanic乘客生還預測

weixin_33763244發表於2018-04-03

如果你打算研究機器學習或是今後想從事資料科學相關的工作,Kaggle應該是一個繞不過去的名字。

Kaggle是2010年在舊金山創立的一個資料建模和資料分析競賽平臺,在很短的時間內就聲名鵲起,去年被google收購,在業界具有很高的知名度和權威性,企業可以在上面釋出資料和想要解決的問題,並進行“懸賞”,資料科學家和機器學習的愛好者們可以基於這個平臺提交自己的模型和預測結果,平臺會根據測試集對參賽者進行評分排名,排名最高几位可以分享獎金,更重要的是,kaggle為全世界資料分析及機器學習愛好者們提供了一個交流學習的平臺,裡面不乏機器學習的頂尖高手,各大公司也常年在kaggle上招募比賽名次好的團隊和選手,良好的kaggle競賽履歷絕對是簡歷上的加分項,如果你參加過多次Featured(商業問題,有獎金)和Research(學術類)型別的比賽,並且多次進入TOP10%甚至TOP5%,那麼你只用蹲在家裡,獵頭自會找上門。

Kaggle分為5個大的板塊:

- Competitions(競賽)

分為商業競賽、學術類競賽、入門級競賽和一些由大公司如Google、Fackbook不定時舉辦的邀請賽。

- Datasets(資料集)

公司或個人貢獻的各型別的資料集,搞機器學習最怕找不到資料,kaggle給大家獲取資料練習提供了一些捷徑。

- Kernels(資料分析及建模)

有點類似GitHub的程式碼管理,說直白點就是給使用者提供了雲上的資料分析和建模的環境,不過涉及到程式碼上傳,我廠童鞋請慎用...

- Discussion(討論區)

裡面有全世界各地的資料科學、機器學習的專家和愛好者,針對題目、演算法、建模等熱烈的討論,冥思苦想幾天的問題看看大牛們的解題思路說不定就秒懂。

- Jobs(工作)

一些公司會直接在kaggle上放出資料探勘、機器學習類的崗位,基本都是歐美的中小型公司。


一、Kaggle競賽的一般步驟

下圖是kaggle競賽步驟的簡單示意圖,中間迭代的步驟也可以看做是一般機器學習建模及驗證的步驟,需要特別注意的是,比賽結束以前,kaggle提供用來驗證的測試資料集是Public資料集,提供給大家進行及時驗證和反饋模型效果的,所以在Publlic Leaderboard上的排名和得分並不是最終結果,待比賽結束後,會用Private資料集進行最終的計分和排名,目的是防止模型過擬合,能真正在未知資料上取得好成績的才是優秀的模型。


image.png

好了,說了這麼多,不在Kaggle上刷刷榜,怎麼好意思說自己在學習資料探勘和機器學習呢:-),我們以Kaggle上最為知名的入門題目 Titanic: Machine Learning from Disaster(利用機器學習預測泰坦尼克乘客是否生還)為例,看看怎麼玩Kaggle。

二、軟體環境

sklearn + numpy + pandas + seaborn

我使用的是sklearn,很成熟的機器學習框架,最新版本也支援深度神經網路,當然資料處理和視覺化還需要用到numpy,pandas,seaborn,當然你也可以使用tensorflow等其他框架,kaggle並不要求上傳模型本身,只需要預測結果就可以了,強烈推薦大家使用python3.6的科學發行版Anaconda,這些庫裡面都有。


三、理解題目&下載資料

題目地址:https://www.kaggle.com/c/titanic
這是Kaggle上熱度最高的題目,迄今為止參賽的隊伍已經超過10000支,基本上所有參與Kaggle的人都會拿這個題目練手。所以題目雖簡單,但取得好的名次也不容易。


相關文章