Kaggle-Titanic一個完整的例子

Kaggle-Titanic一個完整的例子


特徵工程

  • 數據和特徵決定了機器學習的上限,而模型和算法只是逼近這個上限而已
  • 挑選合適的特徵,並構建一些新特徵加入模型
  • 詳細解釋看參考文檔[1]

原有的特徵

  • PassengerId:一個用以標記每個乘客的數字id
  • Survived:標記乘客是否倖存——倖存(1)、死亡(0)。我們將預測這一列。
  • Pclass:標記乘客所屬船層——第一層(1),第二層(2),第三層(3)。
  • Name:乘客名字。
  • Sex:乘客性別——男male、女female
  • Age:乘客年齡
  • SibSp:船上兄弟姐妹和配偶的數量。
  • Parch:船上父母和孩子的數量。
  • Ticket:乘客的船票號碼。
  • Fare:乘客爲船票付了多少錢。
  • Cabin:乘客住在哪個船艙。
  • Embarked:乘客從哪個地方登上泰坦尼克號。

挑選出來加入模型的特徵

  • Pclass:標記乘客所屬船層——第一層(1),第二層(2),第三層(3)。
  • Sex:乘客性別——男male、女female
  • Age:乘客年齡
  • Fare:乘客爲船票付了多少錢。
  • Embarked:乘客從哪個地方登上泰坦尼克號。

構造的新特徵

  • Title,頭銜
    • 從Name中提取,類似於Mr. Miss.等
  • Family,在船上的家人人數
    • SibSp和Parch再加上他自己
  • IsAlone,是否一個人
    • Family
  • Age*Pclass
    • 沒理由,加進去啊效果好

缺失值處理

  • Age,使用同Pclass和Sex的中位數補全
  • Fare,使用中位數補全
  • Cabin,缺失值太多刪除該特徵

數據類型轉化

  • 把數據都轉化爲數值型

模型

  1. 使用Logistic Regression模型分析各特徵的貢獻率
  2. 訓練子模型,網格搜索合適的參數
  3. 5折交叉驗證獲得預測結果
  4. 用Stacking方法預測最後的結果

使用的子模型

  1. Random Forest
  2. Extra Trees
  3. AdaBoost
  4. Gradient Boosting
  5. Support Vector Classifier
  6. Decision Tree Classfifier
  7. K Nearest Neighbors Classifier

搜索參數

  • 限定參數,使用GridSearchCV方法搜索合適的參數

集成模型

  • 使用xgboost模型集成,得到最後的結果

參考文檔

[1] 數據清洗&特徵工程
[2] Stacking集成模型
[3] 完整代碼A complete practice和其他Kaggle教程

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