【Python sklearn】kaggle Titanic生死預測--0.81準確率--python超詳細數據分析--附源代碼和報告的下載地址

前言

泰坦尼克號的沉沒是歷史上最臭名昭著的海難之一。
1912年4月15日,在她的處女航中,被普遍認爲“沉沒”的RMS泰坦尼克號與冰山相撞後沉沒。不幸的是,船上沒有足夠的救生艇供所有人使用,導致2224名乘客和機組人員中的1502人死亡。
儘管倖存有一些運氣,但似乎有些人比其他人更有可能生存。
在這一挑戰中,我們要求您建立一個預測模型來回答以下問題:“什麼樣的人更有可能生存?” 使用乘客數據(即姓名,年齡,性別,社會經濟階層等)

競賽地址:https://www.kaggle.com/c/titanic
文末有源代碼、實驗報告以及該代碼需要的數據(train.csv和test.csv)

作者:東北大學軟件工程1704張志浩

1 導入包

導入包

2 加載併合並數據

加載併合並數據

3 查看數據

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

我們知道了總的數據一共有1309行,也知道了每個特徵的數據類型,很多數據都出現了缺失,總結一下:

1、Age缺失 263個,不算多,處理數據
2、Survived缺失418個,不用處理,因爲test.csv中的數據本來就是沒有Survived的。
3、Cabin缺失1014個,缺失太多,丟棄這個特徵
4、Fare缺失1個
5、Embarked缺失2個

4 處理數據

在數據中出現缺失或者錯誤的Value是很正常的事,一些預測模型可以很好的處理缺失數據,如神經網絡(neural networks),有些則需要單獨處理他們。但是我們使用的隨機森林(Random Forest)來做預測模型,隨機森林(自身並不能對付缺失數據,所以我們需要對缺失值單獨進行處理。

4.1 刪除Cabin => 客艙、Ticket => 船票信息、PassengerId => 乘客ID

在這裏插入圖片描述

4.2 處理Age => 年齡的缺失值

4.2.1 平均值來填充

Age(年齡)有263個缺失項,就簡單地用平均值來填充,並看看填充前後的直方圖:

在這裏插入圖片描述
在這裏插入圖片描述

4.2.2 隨機選取平均值加減標準差範圍的數來填充

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

4.3 接着,我們需要從年齡中提取一個特徵出來,即:孩子。尊老愛幼

在這裏插入圖片描述

4.4 處理Embarked => 登船港口的缺失值

在這裏插入圖片描述
在這裏插入圖片描述

4.5 填補Fare => 票價 缺失值

Fare(票價)只有1個缺失項,直接用平均值填充:
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

可以看出票價集中在10左右,倖存的人的票價平均在48。

4.6 Pclass => 乘客等級(1/2/3等艙位)

可視化
在這裏插入圖片描述
在這裏插入圖片描述

得到Pclass與Survived的關係,可以看出Pclass爲3的生存率很低,我們試試把它的Dummy Variables去掉:
在這裏插入圖片描述

4.7 老規矩,首先看看Sex與Survived的關係:

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

4.8 Name(姓名),Parch(父母/孩子的數量),SibSp(配偶的數量):

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

4.9 對Embarked進行變量轉換

在這裏插入圖片描述

4.10 再觀察一下數據,看看還有那些特徵可以用到,整理出三個新特徵:稱謂、家庭大小、姓。

4.10.1 處理姓

在這裏插入圖片描述

4.10.2 處理稱謂

在這裏插入圖片描述

4.10.3 處理家庭大小

在這裏插入圖片描述

5 提取模型需要的數據

在這裏插入圖片描述

6 對數據進行標準化、降維等操作

我只使用了離差標準化,其他的沒有離差標準化準確率高,註釋掉的代碼是我沒有使用的方法

6.1 離差標準化

在這裏插入圖片描述

6.2 標準差標準化數據

在這裏插入圖片描述

6.3 對特徵進行二值化處理

在這裏插入圖片描述

6.4 對定性特徵進行獨熱編碼處理

在這裏插入圖片描述

6.5 PCA降維

在這裏插入圖片描述

7 可視化研究不同特徵的影響

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

從圖中可以看出Q影響較小,刪去

8 刪去影響較小的特徵–Q

在這裏插入圖片描述

9 網格搜索最優參數

在這裏插入圖片描述
我得到n_estimators=26,max_depth=6,最優

10 模型構建

我試了幾乎所以的模型,但是隻有隨機森林的準確率最高,可能我處理得到的數和這個模型比較匹配

10.1 隨機森林

在這裏插入圖片描述
在這裏插入圖片描述

10.2 GBDT

在這裏插入圖片描述

10.3 SVM模型

在這裏插入圖片描述

10.4 邏輯迴歸Logistic Regression

在這裏插入圖片描述

11 驗證結果

在這裏插入圖片描述

12 實驗報告和源代碼下載地址

泰坦尼克號0.81準確率python源代碼
泰坦尼克號0.81準確率實驗報告

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