从python和机器学习小白,大概是用了几天学了简单python,然后写了一个最简单的决策树算法,大部分都是调用,简单总结一些解决的泰坦尼克号问题。


首先是流程分析:1、获取数据。2、数据处理(特征值处理,特征值->字典类型)。3、划分数据集。4、特征工程(字典特征提取)。5、决策树预估器流程。6、模型评估。7、决策树可视化。

1、获取数据:

官网下载一直出现错误,所以我从CSDN论坛上面下载了一个,不过数据集有些问题,有一万多条数据,和事件情况不符,而且里面不少缺失数据,但是我看到很多人都是用这个数据集进行的分析。

代码:决策树解决泰坦尼克号人员生存预测问题报告

2、数据处理:

我打开数据集发现影响生存率的条件很多,包括年龄、舱位等等。其中我在特征值中选出了年龄、性别、是不是贵族,年龄对缺失值进行了补充,原则是补上平均值。最后一步转换成字典。

代码:决策树解决泰坦尼克号人员生存预测问题报告

3、划分数据集:

将训练集和测试集按照3:7分开,随机样本数设成50。

代码:决策树解决泰坦尼克号人员生存预测问题报告

4、特征工程:

主要做字典特征抽取。首先,实例化转换器。其次调用fit_transfrom(),训练集和测试集要进行同样的处理。

代码:决策树解决泰坦尼克号人员生存预测问题报告

5、决策树预估器流程:

选用了ID3算法,网上搜索到深度20比较合适泰坦尼克案例。

代码:决策树解决泰坦尼克号人员生存预测问题报告

6、模型评估:

选择了两种方法,法一是直接对比,能看出测试集是否正确,法二直接输出正确率。

代码:决策树解决泰坦尼克号人员生存预测问题报告
结果:决策树解决泰坦尼克号人员生存预测问题报告

7、决策树可视化:

生成.dot文件,不过我电脑打开生成图像的网站一直显示加载中,最后只生成了dot文件,没有转化成树的图像。

代码:决策树解决泰坦尼克号人员生存预测问题报告

#最后我尝试了模型选择和调优,加入了网格搜索和交叉验证,最终显示准确率变化不大,我查询资料说是这个数据集不适合决策树。后来问了其他人,他说是数据处理的不够细致。而且加入这些以后,进行决策树可视化的时候一直报错,简单讨论之后并没有找到解决办法。这次完成的并不是很好,但是这几天的学习中,我确定了自己对机器学习有浓厚兴趣,我会继续学习提高自己。

决策树解决泰坦尼克号人员生存预测问题报告
决策树解决泰坦尼克号人员生存预测问题报告
源代码截图:决策树解决泰坦尼克号人员生存预测问题报告

相关文章: