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

本篇文章針對剛剛接觸Kaggle的同學,介紹參加Kaggle數據分析競賽的完整流程,最快速度完成一個比賽。

前言

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

進入Kaggle網站:
Kaggle網站首頁

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

Kaggle競賽項目的全過程:
- 瞭解問題背景:對競賽的背景進行了解
- 下載數據
- 分析數據:Explore Data Analysis
- 數據處理和特徵工程:Data Process and FeatureEngineering
- 模型選擇:Model Select
- 提交結果:Submission

第一步:瞭解問題背景

著名的泰坦尼克號
沒錯,Titanic就是那部著名的電影:“泰坦尼克號”。我們需要預測泰坦尼克號沉沒的時候哪些乘客成爲了倖存者。
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來代替。

Sex變換爲標量

(3)特徵選擇
爲了最快速度上手,我們只需要選擇Age和Sex兩個字段。

特徵選擇

第五步:模型選擇

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

Sciket-learn模型選擇

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

決策樹

第六步、預測結果並提交

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

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


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

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

我們第一次提交結果,不要太過於在意分數,接下來的系列文章我將會介紹很多提升分數的技巧。

結束語

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

歡迎關注微信公衆號:kaggle數據分析。後臺回覆“titanic”獲取代碼和數據。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章