Titanic生存預測(五)
今天我們利用Kaggle上的Titanic生存預測項目來初步學習了解機器學習。
先導入我們要用到的庫和讀取文件:
查看一下整個數據集的情況:
我們看到在age,cabin,embarked,fare上存在缺失值。同時cabin,name,embarked,sex是字元串類型。所以在數據處理上我們要進行兩個操作,缺失值處理和把字元串類型進行編碼,這樣才能讓機器的處理。
缺失值處理:
處理後的數據集:
特徵提取及利用編碼進行數據轉換:
姓名與家庭大小的處理比較特殊。
姓名頭銜的轉換處理:
定義一個函數:
展示能表示身份的信息:
一個身份頭銜的字典:
進行應用及效果展示:
再進行編碼:
家庭大小的處理及編碼:
家庭大小合併計算處理:
人工自定義編碼處理:
到這一步,數據處理就全部處理完了。
看一下各特徵與Survived之間的線性關係,有利於特徵的提取:
要想得到猴子老師下面的輸出必須先將我們處理後的特徵dataframe合併到一起去:
查看線性關係:
從上面排名前三的數據中就可以簡單猜測,女性和頭等艙的的人存活率會比較高。
下一步進行選取我們構建模型所需要的特徵數據集,從從上圖選取線性關係較強的:
將我們得到的特徵數據集拆分成訓練和測試兩部分:
創建和訓練模型,以及測試模型預測的正確率:
最後一步方案實施及數據導出與提交:
提交得到排名:
簡單總結一下
泰坦尼克這個項目主要是為了將前兩課的簡單線性回歸和邏輯回歸融入到實例中去,讓我們更好的理解這種統計方法,能夠解決的現實問題的類型。關於sklearn這個庫我們還有很多沒有去觸及的方法,日後需要自己去學習掌握。
推薦閱讀:
※數據集列歸一化與聚類示例
※FMI飛馬網 | AI 人工智慧學習資料匯總(在線教程、書籍、讀物、機器學習等)
※DeepLearning.AI 學習筆記(一)
※機器學習導論——Day1
※Andrew Ng機器學習week 2(Linear Regression)編程作業詳解