前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用 RapidMiner 参加 Kaggle Titanic 竞赛

使用 RapidMiner 参加 Kaggle Titanic 竞赛

作者头像
caoqi95
发布2019-03-28 11:13:59
1.9K0
发布2019-03-28 11:13:59
举报

要准备 Data Mining 这门课的期中考发表,本来决定用 Python 代码来解决 Titanic 的预测,然后做一个 report 发表。后来在同学的提醒下,为什么不用 Rapid Miner 来解决这个问题呢。所以就尝试用 Rapid Miner 了。结果发现用 Rapid Miner 来做的话,十分便利,节省了写代码和数据分析的时间。而且从提交的结果上来看,也比 Python 代码的结果要好上一点。

不会使用 Rapid Miner 软件的话,可以参考这一篇文章:Rapid Miner 基本使用

数据处理

1. 选择有用的数据

探索数据集,可以发现数据集中的有些特征是对预测来说是没有作用的。比如:

  • PassengerId:乘客的 Id 信息,对于预测模型来说没有任何作用
  • Name:乘客的姓名,其也是无用的信息,模型不可能根据一个人的姓名特征来进行预测
  • Ticket:船票信息,上面是一些编号,也是没用的信息。
  • Cabin:船舱,这一特征没准会有点用处,但是它的遗失数据实在太多,且是非数字型的特征,因此也滤除掉。
  • Embarked:乘客登船的港口。 C - 瑟堡,S - 南安普敦,Q - 皇后镇。其也是没用的信息。

在 Rapid Miner 中选择 “Select Attributes” 操作器,双击该操作器,并选择除上面以外的特征。如下图所示:

选择有用的特征

2. 处理遗失的数据

选择完有用的数据后,统计可以发现,“Age” 特征存在遗失数据的情况,如下图所示:

Age 存在遗失数据

为了处理遗失的数据,在 Rapid Miner 中选择 “Replace Missing Value” 操作器,双击该操作器,选择需要执行该操作的特征 “Age”。

然后,在右侧一栏中,选择 “average”,即使用计算平均值的方法来填补遗失的数据。

3. 处理非数字数据

在统计数据集的时候,可以发现,“Sex” 这项特征是非数字的。

这时候可以选用 “Norminal to Numerical” 操作器,选择 “Sex” 特征,将其转换成类似 one-hot 向量的数据。结果如下所示:

4. 转换数据类型

“Survived” 这一特征是数字型的特征,在这里我们需要将其处理成多类别的数据,0 表示死,1 表示生还。如果不这么处理的话 ,Rapid Miner 运行的结果就是生还的概率,而不是 0 或者 1 这样的结果。这样就不符合 Kaggle 提交的要求。此时,选择 “Numerical to polynominal” 这一操作器,然后选择 “Survived” ,将其处理成多类别的数据。

5. 设置标签数据

在 Titanic 的训练数据集中,“Survived” 这一特征是标签(目标,label/target)数据,因此需要将其设置为 label 。这时可以使用 “Set role” 这一操作器。然后将 “Survived” 设置为 “label”。

6. 标准化数据

处理完上面的步骤后,接下来就要进行特征缩减,这时候可以将数据进行标准化。选择 “Normalize” 操作器,然后选择特征进行处理。

所以,整个训练集数据的处理过程如下所示:

训练集处理过程

对测试集数据也进行类似的上述步骤,具体过程如下图所示:

测试集处理过程

不过需要注意的是,在选择特征的时候,需要把 “PassengerId” 也选择进去,因为导出结果的时候会用到。

搭建模型

选择 “Decision Tree” 操作,然后将训练数据集处理后的输出连接到该操作器的输入口,如下图所示:

训练完模型后,要将其应用在测试集上,这时候选择 “Apply Model” ,将模型训练后的输出和测试集处理完后的输出分别与 “Apply Model” 的两个输入口连接,如下图所示:

导出结果

按照 Kaggle 的要求,只需要导出 “PassenerId” 和 “Prediction(Survived)” 这两列数据。所以先用“Select Attributes” 操作器选择这两个特征,然后用 “Write Excel” 操作器来完成导出任务,如下图所示:

完整的搭建过程如下所示:

上传结果

导出的结果如下图所示:

由于还是不符合提交要求,所以还需要进行处理。手工量不是特别大,所以可以直接在 Excel 中直接手动处理,然后导出为 csv 文件格式,如下图所示:

然后将文件在 Kaggle 上提交,结果能达到 0.77511 的成绩,如下图所示:

比用 Python 的结果 0.72727 的结果(一个星期前写的代码,处理数据的步骤完全一样)要好。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018.10.09 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 数据处理
    • 1. 选择有用的数据
      • 2. 处理遗失的数据
        • 3. 处理非数字数据
          • 4. 转换数据类型
            • 5. 设置标签数据
              • 6. 标准化数据
              • 搭建模型
              • 导出结果
              • 上传结果
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档