Kaggle入門系列(三)Titanic初試身手

前兩天有讀者反饋剛接觸kaggle,之前發Titanic入門的文章涉及到XGBoost,對新手不太友好。因此,本篇文章主要針對剛剛接觸Kaggle、希望馬上完成一個比賽的同學,介紹參加Kaggle數據分析競賽的完整流程

前言

Kaggle是一個數據分析的競賽平台。企業可以將數據、問題描述和期望指標發布到Kaggle平台,以競賽的形式向廣大的數據科學家徵集解決方案。參賽者將數據下載下來,分析數據、建立模型、解決問題,最後提交解決問題的結果。

進入Kaggle網站:

Kaggle中的比賽主要分為三類:FeaturedResearchGettingStarted。進入Kaggle網站的Competition欄目後,我們可以看到目前正在舉行的競賽。我們選擇Titanic倖存者預測這個競賽,教大家一步一步完成比賽。

Kaggle競賽項目的全過程:

  1. 了解問題背景:對競賽的背景進行了解
  2. 下載數據
  3. 分析數據:Explore Data Analysis
  4. 數據處理和特徵工程:Data Process and FeatureEngineering
  5. 模型選擇:Model Select
  6. 提交結果:Submission

第一步:了解問題背景

沒錯,Titanic就是那部著名的電影:「泰坦尼克號」。我們需要預測泰坦尼克號沉沒的時候哪些乘客成為了倖存者。

第二步:下載數據

有三個數據csv文件需要我們下載。

  • gender_submission.csv:我們需要提交的示例文件
  • test.csv:測試數據集
  • train.csv:訓練數據集

第三步:讀取數據,分析數據

Pandas是目前最強大的數據分析包,沒有之一。可以用.info()函數查看當前dataframe的信息。

訓練數據集有891行12列。各列代表的信息:

· PassengerId:一個用以標記每個乘客的數字id

· Survived:標記乘客是否倖存——倖存(1)、死亡(0)。我們將預測這一列。

· Pclass:標記乘客所屬船層——第一層(1),第二層(2),第三層(3)。

· Name:乘客名字。

· Sex:乘客性別——男male、女female

· Age:乘客年齡。部分。

· SibSp:船上兄弟姐妹和配偶的數量。

· Parch:船上父母和孩子的數量。

· Ticket:乘客的船票號碼。

· Fare:乘客為船票付了多少錢。

· Cabin:乘客住在哪個船艙。

· Embarked:乘客從哪個地方登上泰坦尼克號。

第四步、數據處理和特徵工程

數據分析過程中,了解業務背景是非常重要的。

大家記得在泰坦尼克號沉沒的時候,船長說了一句話:小孩和婦女先走,男人留下。

知道這個背景以後,在做數據處理的時候我們就應該知道Sex和Age兩個欄位應該是關鍵。

(1)Age處理,填充缺失值

Age欄位共有714,缺失值比較多,我們採用Age的平均值進行填充。

注意:我們需要同時對訓練集和測試集做相同的處理。

(2)Sex處理,屬性變換

Sex有兩個屬性:male和female,代表男性和女性。為了方便分類器處理,我們用1和0來代替。

(3)特徵選擇

為了最快速度上手,我們只需要選擇Age和Sex兩個欄位。

第五步:模型選擇

我們的任務是預測乘客是否能倖存,很明顯是一個基本的二分類問題(Binary Classification)。可以用來處理二分類問題的模型主要有:感知機、Logistic回歸、決策樹、SVM和隨機森林等,可選的模型非常多。網上有一張圖,建議我們選擇哪種模型應用到我們的項目中。

這裡我們選擇sciket-learn提供的決策樹(Decision Tree)模型。

第六步、預測結果並提交

最後,將我們訓練好的模型在測試集上進行測試,將結果按照要求保存下來。將結果提交到kaggle網站,計算我們的得分。

(1)保存結果

(2)提交到Kaggle

Kaggle提供了Submit Predictions頁面,我們只需要將decision_tree.csv文件拖拽到uploadsubmission file中就可以自動上傳。

我們將預測結果提交到Kaggle網站,Kaggle會對我們提交的結果與kaggle後台的數據進行對比,計算出我們的準確率和得分(score)。

此次提交的準確率只有60.7%。

結束語

本文介紹了參加kaggle數據分析競賽的一個完整流程:加入比賽並了解比賽背景、獲取數據、數據分析、特徵工程、模型訓練、提交結果。現在,我們對參加比賽的完整流程已經比較了解,下一步就是通過特徵工程、調參、模型融合等手段來提高我們的分數。

系列文章:

Kaggle入門系列:(一)機器學習環境搭建

Kaggle入門系列:(二)kaggle簡介

Kaggle入門系列:(三)Titanic初試身手

歡迎關注微信公眾號:kaggle數據分析。後台回復「titanic」獲取代碼和數據。

推薦閱讀:

營銷轉數據,兩年半到P7,我都做了哪些事兒?
權力的遊戲:網紅CEO之崛起
從用戶梳理到構建體系再到數據分析
這跟特朗普沒關係!中國製造業開始衰退?
民生銀行十五年的數據體系建設,深入解讀阿拉丁大數據生態圈、人人BI 是如何養成的?

TAG:Kaggle | 数据分析 | 机器学习 |