内容简介:要准备 Data Mining 这门课的期中考,本来决定用之前的 Python 代码来准备作业,然后做一个 report 发表。后来在同学的提醒下,为什么不用 Rapid Miner 来呢。所以就尝试用 Rapid Miner 了。结果发现用 Rapid Miner 来做的话,十分便利,节省了写代码和数据探索分析的时间。而且从提交的结果上来看,也比 Python 代码的结果要好上一点。没有使用过 Rapid Miner 软件的话,可以参考这一篇文章:Rapid Miner 基本使用探索数据集,可以发现数据
要准备 Data Mining 这门课的期中考,本来决定用之前的 Python 代码来准备作业,然后做一个 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” 特征存在遗失数据的情况,如下图所示:
为了处理遗失的数据,在 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 的结果(一个星期前写的代码,处理数据的步骤完全一样)要好。
本篇文章首发于我的简书 (caoqi95)
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- Real Developer 应该参加的硬核竞赛来了!
- 邀您参加「Taro x 小程序·云开发」物料开发竞赛
- 干货 | 参加Python面试前需要做哪些准备?
- 第一次参加"技术峰会"的收获与思考
- 每个程序员都应该参加一次 GDD
- 参加有赞前端技术开放日所感所想
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。