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 DisasterTitanic比賽分析
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 第二天回顧
※人臉識別時代來臨,你怎麼想的?