泰坦尼克生存概率預測

(https://github.com/hpchihuo/titanic)


項目背景:本項目從數據分析的角度,尋找與生存率項目相關的生存因素,建立邏輯迴歸模型預測tantic人員生存情況。

1.提出問題:找出最優模型來預測titanic乘客生存結果

項目概況:Titanic號的沉沒是歷史上最慘痛的沉船事故之一。在1912年4月15號,Titanic首次航行便因撞擊冰山而沉沒。在2224名乘客和船員中,有1502人因事而死亡。這場事故令世界爲之震驚,隨之便引起了人們對船舶安全的重視。

沒有足夠多的救生艇是該事故吞噬如此多生命的原因之一。雖然有一些幸運的因素使人們能夠倖存,但是似乎某一類人擁有更多的生存率,如婦女,孩子和頭等艙室的人。

在該項目中,我將分析哪類人羣更容易倖存,更主要的是,我將通過機器學習工具來預測哪些人在事故中倖存下來。

2.收集數據:數據來源於Kaggle's Titanic: MachineLearning from Disaster

3.數據處理

3.1初探數據

首先我們必須對數據有一個大致的瞭解,該數據有哪些屬性,是什麼類型的數據,和我們要預測的目標有什麼關係

1)Survived是我們要的預測的變量,它是二分類變量,0代表死亡,1代表倖存。其它都是潛在的自變量。必須說明:只有對的變量才能對建立更好的模型,有時候變量越多並不意味着模型越好

2)PassengerId和Ticket變量爲隨機的唯一的標記值,這對結果並沒有影響,應排除在模型之外

3)Pclass是一個代表船票等級的有序變量,1代表頭等艙,2代表2等艙,3代表3等艙

4)Name是一個分類變量,可以從變量Name中看出性別,家庭規模,職位頭銜。如果這些信息存在的話,我們可以用於模型中

5)Sex和Embarked是分類變量,他們可以通過數學方法轉化爲虛擬變量

6)Age和Fare是連續型變量

7)SibSp代表船上同輩人數的數量,Parch代表父輩和孩子的數量,都是離散型變量,將他們組合後可以重新變成家庭規模的變量

8)Cabin爲分類變量,他們用來顯示其在船舶的位置或甲板位置,因爲他們有太多缺失值,我們可以將其從數據模型中排除。

總結:訓練集共有891行,其中Age有177空缺值, Cabin共有681個空缺值,Embarked共有2個空值。存活率在25%左右。

3.2數據清洗

處理噪聲數據,處理缺失值,創造新的特徵值,轉化特徵值

用Age的中位數填充空缺值,用Embarked的衆數填充空缺值,用Fare的中位數填充空缺值,其中Cabin的空缺值太多,填充難度太大。

創建新的屬性值,IsAlone,FareBin,AgeBin.

將分類型數據轉化爲多個二分類數據,有利於模型的的建立。

4.探索數據,尋找特徵與目標之間的初步關係,爲建立模型做準備

         完成數據清洗的工作後,下面將對數據進行分析和彙總,尋找特徵與目標之間的相關關係。

從上圖可以看出Embarked(登船港口)C開頭的生存率較高 ;從艙室等級來看,艙室登記越高,生存率越大,因爲根據船艙佈置來說,高等艙室佈置在船舶較好的位置,並且救助設施也比較完善,事故發生時,可以快速逃生。結合FamilySize與IsAlone與Survived關係圖來看,當家庭規模在2-4之間時,生存率較高,2-4人一起行動時,較爲靈活,同時相互幫助,而當規模超過數量時,團隊活動受限,不利於逃生。從FareBin來看,工資越高,逃生概率越大,因爲FareBin越高,所住的艙室越好,逃生概率越大。從AgeBIn來看,在逃生過程中,嬰幼兒受到了較好的照顧,而老人則由於行動不便,逃生概率小。

無論是在哪種情況下,女性的逃生概率都高於男性;在事故發生時,女性受到了較好的保護,這是人性的閃光點。

相關關係的熱圖展示了特徵與特徵之間以及特徵與預測目標之間的相關關係。

5.建立模型

         數據科學是一個由數學,計算機科學,以及商業管理結合而成的學科,大多數的數據科學家來源於三者之一。他們總是偏向於他們之前的學科。但是,數據科學好比一個三條腿走路的工具,三者缺一不可。但是不要太過於擔心,我們只需要瞭解核心即可。

         正如其名字表達的那樣,機器學習是告訴機器怎們做,而不是做什麼,大數據這個話題已經發展了十幾年,而且越來越受歡迎,因爲進入門檻正在變低。這種變化利弊均有,優點是,更多的人可以利用算法來解決更多的現實問題(因爲門檻變低),而缺點則是:人們並不知道有時候他們利用這些工具得出的結果是不準確的。

         機器學習的目的在於解決人們所遇到的問題,機器學習可以分爲監督學習,無監督學習,強化學習。監督學習是人們訓練模型的數據包括正確的結果,而無監督學習則不包括。強化學習強調如何基於環境而行動,以取得最大化的預期利益。

         當人們進行數據建模時,總喜歡問,最好的機器學習算法是什麼,事實上,並沒有最好的,只有最適合的。

         在這裏,我們使用sklearn包裏的LogisticRegression模型,模型的正確率爲

0.81165919282511212

6.總結

         在該項目中,我通過-提出問題—收集數據—數據清洗—數據初步探索—數據模型等步驟完成了對Titanic逃生率的預測。正確率達到了0.8。總的來說,達到了最初的預期。








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