1. 程式人生 > >泰坦尼克號生存概率分析

泰坦尼克號生存概率分析

本專案在Kaggle中是資料分析入門專案,如果你想了解資料分析,我們就從這裡開始吧!
資料集可以到Kaggle入門專案中直接找到,下載即可!

1.提出問題

什麼樣的人在泰坦尼克號中更容易存活?

2.採集資料、理解資料

匯入資料分析工具庫Numpy、Pandas
在這裡插入圖片描述

用pandas中的read_csv()方法讀取格式為CSV的資料集

在這裡插入圖片描述

ps:本專案涉及到機器學習,所以我們有2個數據集,一個訓練資料集,一個測試資料集,如果你還沒有接觸機器學習,我們先將這兩個資料集進行合併,一起做一下資料分析,關於機器學習部分作為了解就可以,沒有影響。
在這裡插入圖片描述
上圖中,我們使用numpy的shape()的方法可以檢視資料集的形狀,這裡我們可以瞭解到這個資料集有1309行,12列。
檢視資料集資訊,瞭解資料,我們用head()方法,預設檢視前5行
在這裡插入圖片描述


使用統計資料資訊描述方法describe()檢視資料資訊,檢視是否存在異常值
在這裡插入圖片描述
檢視資料是否有缺失以及資料型別
在這裡插入圖片描述
資料總共有1309行,Survived是標籤,用作機器學習預測,無需處理。 資料型別列:年齡(Age)、船艙號(Cabin)裡面有缺失資料:

年齡(Age)裡面資料總數是1046條,缺失了263,缺失率20%;

船票價格(Fare)裡面資料總數是1308條,缺失了1條資料字串列;

登船港口(Embarked)裡面資料總數是1307,只缺失了2條資料,缺失較少;

船艙號(Cabin)裡面資料總數是295,缺失了1014,缺失率77.5%,缺失較大。

登船港口缺失2個值,將其填充為出現次數最多的值。船艙號(Cabin)缺失指較多,將其填充為’U‘。

3.資料清洗

3.1資料預處理:缺失資料處理
在這裡插入圖片描述
在這裡插入圖片描述
3.2.特徵提取:

3.2.1.資料分類

對於不同資料型別的特徵提取方法不同,對於數值型別的資料可直接使用,對於日期資料需轉換為單獨的年、月、日,對於分類資料使用One-hot編碼方法用數字代替類別。

1.數值型別:

乘客編號(PassengerId),年齡(Age),船票價格(Fare),同代直系親屬人數(SibSp),不同代直系親屬人數(Parch)

2.時間序列:無

3.分類資料:

1)有直接類別的

乘客性別(Sex):男性male,女性female。將性別的值對映為數值,男(male)對應數值1,女(female)對應數值0
在這裡插入圖片描述


登船港口(Embarked):

出發地點S=英國南安普頓Southampton,

途徑地點1:C=法國 瑟堡市Cherbourg,

出發地點2:Q=愛爾蘭 昆士敦Queenstown

one-hot編碼,將這一列資料按類別分開,屬於這一列則標為1,否則0,使得分類資料量化,這便於我們之後的分析。
在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述
我們同通過乘客的名字也可以獲取到一定資訊,比如乘客的頭銜,我們寫一個函式將它提取出來,並分析它與生存率之間的關係。
在這裡插入圖片描述

我們呼叫函式,並且使用counter()函式檢視頭銜一共有多少種,然後計算它們的數量。
在這裡插入圖片描述
定義以下幾種頭銜類別:

Office 政府官員,Royalty 王室(皇室)

Mr 已婚男士,Mrs 已婚女士

Miss 年輕未婚女子,Master 有技能的人/教師
在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述
船艙的位置也是我們要分析的物件,所以我們對船艙位置也進行one-hot編碼,並將它新增到資料集full的後邊。
在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述
在船上的家庭人數我們也進行分類
在這裡插入圖片描述
家庭人數分類:
小家庭Family_Single: 家庭人數 = 1
中型家庭Family_Small:家庭人數 2-4
大型家庭Family_Large:家庭人數 >5
在這裡插入圖片描述
在這裡插入圖片描述
我們使用corr()方法進行變數之間的相關性分析,相關性較高的兩個變數進行分析。
在這裡插入圖片描述
在這裡插入圖片描述
選擇相關性較高的特徵出來重新組成一個數據集進行分析。
在這裡插入圖片描述
4.資料視覺化
匯入資料視覺化工具包matplotlib
在這裡插入圖片描述
4.1分析存活率與性別之間的關係:
將男性與女性存活與非存活計數並重新建表SexDF
在這裡插入圖片描述
資料視覺化為柱狀圖
在這裡插入圖片描述
計算男女存活率,並資料視覺化
在這裡插入圖片描述
視覺化圖表
在這裡插入圖片描述
4.2分析存活率與頭銜之間的關係
計算每個頭銜人數,並生成新表TitDF進行資料視覺化
在這裡插入圖片描述
計算各頭銜存活率,並用餅圖進行資料視覺化
在這裡插入圖片描述
在這裡插入圖片描述
4.3分析存活率與在船家庭人數的關係
對每種家庭型別進行計數,生成新表FamDF,進行資料視覺化
在這裡插入圖片描述
計算家庭人數存活率,並進行資料視覺化
在這裡插入圖片描述
在這裡插入圖片描述
4.4分析存活率與客艙等級間的關係
對客艙等級進行計數,生成新表PclDF,進行資料視覺化
在這裡插入圖片描述
計算客艙等級存活率,並進行資料視覺化
在這裡插入圖片描述
在這裡插入圖片描述
得出結論:
在泰坦尼克號災難生存率分析中,
1.女性生存率高達0.74,而男性生存率只用0.17,說明基於紳士風度男性把生存機會留給了女性;
2.從頭銜的角度來看,貴族、已婚女士、未婚女子的生存率較高,這也符合性別生存率分析,貴族在這場災難中有一些‘特權’;
3.家庭人數在船上最多和最少的生存率都沒有小家庭人數高,說明在災難中,只有一個人沒有人幫助他,他的生存率就很低,而家庭人數太多,牽扯因素也多,生存率也較低;
4.從船艙等級1-3來看,生存率也由高到低,說明船艙等級對人們的安危也很重要。

以下內容為機器學習部分,作為了解,你將預測更多的人在船上,他們是否能存活。
5.資料建模
在這裡插入圖片描述
匯入資料分析工具包
在這裡插入圖片描述
在這裡插入圖片描述
建立模型
在這裡插入圖片描述
在這裡插入圖片描述
將你預測的資料存為CSV格式
在這裡插入圖片描述