Kaggle 入門 1.3——Titanic Solution Using speedml
介紹 Kaggle Titanic 比賽排名第三的 Kernel,原代碼地址如下:
我個人整理後的 Jupyter Notebook 地址如下:
https://www.kaggle.com/startupsci/titanic-data-science-solutions
對該 Notebook 簡要梳理如下。
tommyjiang/data-new-energy
# 準備工作
基本的 package 見之前的文章,本 Kernel 還需要作者寫的 speedml package。
# 數據探索分析
1. Survived 和其他數字變數相關性分析:
和 PClass/Fare 的相關性都較高。
2. 異常點處理
Fare 變數,最後的點明顯偏高,利用99分位點的值替換。
3. SibSp 與 Survived 關係
直觀感覺 SibSp 為1時 Survived 為1的較多,SibSp 在3以上對 Survived 反而不利。下面的表也證明了這一點。
將 SibSp 和 ParCh 相加後處理為 FamilySize。
# 數據預處理
1. PassengerId
直接去掉。
2. PClass
保留。
3. Name
統計 Name 中的頭銜並分類,包括:Mr,Miss,Mrs,Master 和 Rare。
4. Sex
Male 是1,Female 是0。
5. Age
加入 Age_density 列,統計 Age 列中該數值出現的次數。缺失值用中位數填充。
6. SibSp
與 Parch 統一處理,二者之和存為 FamilySize 列。
7. Parch
已和 SibSp 一起處理。
8. Ticket
類似 Age,加入 Ticket_density 列,去掉 Ticket 列。
9. Fare
用中位數填充缺失值。
10. Cabin
將 Cabin 中的缺失值填充為 Z。
11. Embarked
缺失值用 S 填充。
統一將 category 變數轉為數值變數。
# XGBoost 調參
選擇典型參數,例如 max_depty,min_child_weight,learning_rate 等進行遍歷,選擇表現最好的模型。
# 模型評估和預測
利用訓練集對 XGBoost 及相關模型進行訓練,各模型表現如下:
利用調好的參數進行預測,最終結果得分為:0.78469。
推薦閱讀:
※Kaggle求生:亞馬遜熱帶雨林篇
※【持續更新】機器學習特徵工程實用技巧大全
※如何在 Kaggle 首戰中進入前 10%?