Kaggle入門系列(三)Titanic初試身手
前兩天有讀者反饋剛接觸kaggle,之前發Titanic入門的文章涉及到XGBoost,對新手不太友好。因此,本篇文章主要針對剛剛接觸Kaggle、希望馬上完成一個比賽的同學,介紹參加Kaggle數據分析競賽的完整流程。
前言
Kaggle是一個數據分析的競賽平台。企業可以將數據、問題描述和期望指標發布到Kaggle平台,以競賽的形式向廣大的數據科學家徵集解決方案。參賽者將數據下載下來,分析數據、建立模型、解決問題,最後提交解決問題的結果。
進入Kaggle網站:Kaggle中的比賽主要分為三類:Featured、Research和GettingStarted。進入Kaggle網站的Competition欄目後,我們可以看到目前正在舉行的競賽。我們選擇Titanic倖存者預測這個競賽,教大家一步一步完成比賽。
Kaggle競賽項目的全過程:
- 了解問題背景:對競賽的背景進行了解
- 下載數據
- 分析數據:Explore Data Analysis
- 數據處理和特徵工程:Data Process and FeatureEngineering
- 模型選擇:Model Select
- 提交結果: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 是如何養成的?