Kaggle - Titanic - Machine Learning from Disaster

Avatar of 潘泰宇.
Avatar of 潘泰宇.

Kaggle - Titanic - Machine Learning from Disaster

Software QA Engineer
Taichung City, Taiwan

Titanic - Machine Learning from Disaster

這是由Kaggle所舉辦的機器學習練習賽,提供訓練資料,參賽者回傳預測結果,將顯示正確率及排名。


正確率78.229,總排名為2548/14990

在總參賽隊伍前17%。


GitHub

規則如下:

  1. 使用kaggle所提供的train.csv作為訓練資料
  2. 預測test.csv資料中乘客最後是否存活
  3. 將結果輸出為乘客ID、是否存活兩項資料並回傳

訓練方式:

  1. 資料預處理
  2. 姓名特徵中包含Ms, Mr, Dr 等稱謂,將其分割出來並捨去姓名作為特徵使用
  3. 房號特徵捨去後面數字,只保留第一碼英文,遺漏值皆設為新的值'X'
  4. 年齡特徵遺漏值放入平均年齡
  5. 登船港口遺漏值設最多人登船的港口
  6. 將影響較小特徵捨去,包含乘客ID,家人數量,姓名
  7. 性別、登船港口、傳票等級、稱謂、房號做Label Encoding
  8. 訓練模型
  9. 使用GridSearchCV找出最佳超參數
  10. 使用cross_val_score測試模型準確率 # 比較模型差異,此次4種皆上傳測試
  11. 找到最佳超參數後帶入模型,即可預測test資料
  12. 測試其他模型
  13. 此次使用SVC, RandomForest, XGBoost, KNN 四種模型
  14. 重複進行2.流程訓練模型並比較準確率
  15. 預測test結果
  16. 四種模型分別對test進行預測
  17. 使用CalibratedClassifierCV將兩個以上模型的結果合併,產生新的模型並預測結果

資料預處理

  1. 姓名特徵中包含Ms, Mr, Dr 等稱謂,將其作為新特徵使用並將姓名刪除
  2. 登船港口為S人數最多
  3. 比較每個特徵與目標的相關係數,將影響較少特徵刪除
 

原始資料及處理後的資料如下

 

訓練模型方法如下,先找出最佳超參數後再用來建模型

 
  1. 個別使用四個模型預測test
  2. 使用CalibratedClassifierCV混合使用兩個以上模型進行預測
 

各個模型預測結果如下,目前屬Random Forest準確率最高。

由Kaggle所舉辦的機器學習練習賽,提供訓練資料,參賽者需回傳預測結果,將顯示正確率及排名。 正確率78.229,總排名為2548/14990 在總參賽隊伍前17%。
Avatar of the user.
Please login to comment.

Published: Oct 20th 2023
66
9
0

Tools

python
Python

xgboost
random forest
knn
svc
machine learning
python
Kaggle

Share