Kaggle 入門 1.3——Titanic Solution Using speedml

介紹 Kaggle Titanic 比賽排名第三的 Kernel,原代碼地址如下:

我個人整理後的 Jupyter Notebook 地址如下:

kaggle.com/startupsci/t

對該 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%?

TAG:机器学习 | Kaggle |