Kaggle-Titanic一个完整的例子

来源:互联网 发布:mysql 按月份查询 编辑:程序博客网 时间:2024/06/05 18:20

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教程

原创粉丝点击