Kaggle首戰:泰塔尼克號生存率預測

Kaggle首戰:泰塔尼克號生存率預測

來自專欄 數據分析入門到進階

這是小編第一次參加Kaggle比賽,有點興奮和激動。或許有些人還不知道Kaggle為何物,讓我們花費20分鐘閱讀以下內容,若有不對的地方,歡迎指正。


  • Kaggle簡介
  • Titanic比賽分析

Kaggle簡介

我們簡單介紹Kaggle,鏈接請戳Your Home for Data Science。

Kaggle是一個數據科學競賽的平台,創辦於2010年,目前已經被Google收購。Kaggle採用眾包的方式,很多公司將接近真實業務的問題發布在該平台上,吸引數據科學家貢獻解決方案和智慧,並設立獎金池。

在主頁中點擊competitions,會有很多比賽。初學者可以選擇練手的入門項目。我們這次選擇經典的泰塔尼克號生存率預測項目,項目鏈接如下:Titanic: Machine Learning from Disaster:

Titanic: Machine Learning from Disaster?

www.kaggle.com

Titanic比賽分析

1.項目背景

泰塔尼克號上女性,孩子和上層階級生還率高於其他群體,由此,預測不同身份乘客的生還率,以下是截取Kaggle中該項目的介紹:

2.分析思路

按照數據分析的6個步驟,具體看以下思維導圖:

3.步驟實施

3.1 數據採集

在Tatanic比賽頁面下載數據,格式為CSV

3.2 導入數據

為了方便數據的清洗,使用append()方法合併訓練數據和測試數據

3.3 查看數據集

使用full.info()函數查看每列數據的缺失情況:

可以看到age、cabin(船艙)、Embarked(上岸口)、Fare(船票)這4個列均有缺失數據,這就是下一步的工作重點了。

3.4 數據清洗

3.4.1 Age年齡和Fare船票價格用平均值填充,使用fillna()函數

3.4.2 Embarked(上岸口)用眾數填充

先查看岸口最多是哪一個,再使用最多的港口S填充

3.4.3 cabin(船艙)由於缺失值較多,固用Unknow填充

以上,缺失數據均補充完整,接下來看特徵工程。

3.5 特徵工程

在數據領域有這樣一句話:數據和特徵決定了機器學習的上限,模型和演算法逼近這個上限。所以,從原始數據中提取特徵的好壞直接影響模型的效果。特徵工程就是從原始數據中最大限度的提取特徵,以供機器學習和演算法使用。

一般有以下3種數值類型,——後是特徵提取方法

1、數值類型——直接使用

2、時間序列(經過長期重複測量而形成的時間序列)——轉換成單獨的年月日

3、分類數據(性別)——用啞變數(虛擬變數)代替。如男=1,女=0。若類別超過2個,用one-hot編碼。

接下來,我們逐一對5個變數進行特徵提取

3.5.1 Sex性別

使用map函數,對數據集重新定義

3.5.2 Embarked登錄港口

使用啞變數重新賦值

3.5.3 Pclass客艙登記

3.5.4 Cabin客艙類別

3.5.5 Parch和SibSp

SibSp:表示船上兄弟姐妹數和配偶數量,理解為同代直系親屬數量,

Parch:表示船上父母數和子女數,理解為不同代直系親屬數量。

據此,這兩個數據可用來衡量乘客的家庭大小,而家庭的大小規模肯定會影響乘客的生還幾率,因此可創建衡量家庭規模的變數familySize。

3.5.6 字元串(Name姓名)的特徵提取

仔細觀察可以發現,Name的欄位中包含有Mr、Miss 等身份信息,我們可以用spilt()函數將有效欄位分割出來

分割出後我們來定義頭銜

提取完以上特徵後,均使用concat()函數將新的特徵加入數據集中,並刪除原來的欄位,以Embarked為例

最終得到了一個33列的數據集合

3.6 特徵選擇

我們使用相關係數法,選取和survived相關的特徵值:

並查看各個特徵和survived關係大小排序

根據各個特徵與生成情況(Survived)的相關係數大小,選擇幾個欄位進行輸入:頭銜(前面所在的數據集titleDf)、客艙等級(pclassDf)、家庭大小(familyDf)、船票價格(Fare)、船艙號(cabinDf)、登船港口(embarkedDf)、性別(Sex)。並重新構建數據集:

4. 構建模型

4.1 截取出訓練數據和預測數據集

交叉檢驗

4.2 選擇機器學習演算法並檢驗準確性

此處我們用邏輯回歸演算法

看到測試數據的準確度為81%

5. 模型評估

對預測數據中的生存情況進行預測

最後一步,將結果上傳到Kaggle中,看排名情況:

哈哈,可以看得本次得到5404名,top49%,以後會繼續優化模型。爭取進10%。


以上就是本次的實驗哦,希望大家多多點贊支持~~~


推薦閱讀:

【醫療前沿】你會不會得心血管疾病?你不知道,我不知道,人工智慧知道
人工智慧的發展和影響
語音交互電影《Her》與Siri的困境
振奮,嗨翻 | AWS re:Invent 2017 第二天回顧
人臉識別時代來臨,你怎麼想的?

TAG:Kaggle | 人工智慧 |