从sklearn开始机器学习 3泰坦尼克号多种算法
2023/1/4回来翻旧账了,突然发现这边挖了个坑 没有填,很难受,数据处理咱就是说也没有那么容易,奈何我三天打鱼两天晒网,进度奇慢无比。于是下面的东西也咕咕咕,重新改一个很简单的教学notebook。
说明
咱就是说这个坑该填了,参考文章为kaggle上一个点赞很高的教学方案,这里再次贴一下网址,要用一个比较新的url按钮,哈哈哈。
很详细English环境的话,可以使用自己搭的jupyter notebook,好像kaggle也提供了运行代码的环境,或者现在好多云平台也有jupyter notebook的环境可以使用。
搭建很简单的,直接pip install就行了,我之前写过怎么安装。
准备工作
下载数据文件
下载数据地址(我是从kaggle下载的)(有三个文件分别是train.csv训练数据
,test.csv测试数据
,gender_submission.csv提交数据案例可忽略
)
三个文件简单介绍一下:
- train.csv:训练用的数据文件,包含了待会下面显示的所有字段信息,用于训练模型。
- test.csv:预测集,通过使用训练出来的模型预测乘客是否存活,包含了除Survived的所有字段。
- gender_submission.csv:上传的预测结果的文件示例,为什么带gender因为里面的是否存活是按照乘客性别是否是女性来决定的(只是一个示例文件,男的死了,女的没死)。
字段 | 描述 |
---|---|
Passengerld | 乘客编号 |
Survived | 是否幸存 |
Pclass | 船票等级 |
Name | 乘客姓名 |
Sex | 乘客性别 |
SibSp | 亲戚数量(兄妹、配偶数) |
Parch | 亲戚数量(父母、子女数) |
Ticket | 船票号码 |
Fare | 船票价格 |
Cabin | 船舱 |
Embarked | 登陆港口 |
这边贴上了翻译过后的数据字段。
安装需要的库
本方法所需要的库仅有三个,但是正常数据处理需要的库我也写了下来。
1 |
|
这个有个坑就是,sklearn的库名字不叫sklearn,但是你直接pip install会装另一个东西而不会保错就很坑。
正式开始数据处理
这里就直接贴python代码了,因为实在notebook里面运行的,所以。。。有啥所以。
1 |
|
F:/Py/jupyter/ML/titanic\gender_submission.csv
F:/Py/jupyter/ML/titanic\solution.ipynb
F:/Py/jupyter/ML/titanic\test.csv
F:/Py/jupyter/ML/titanic\train.csv
F:/Py/jupyter/ML/titanic.ipynb_checkpoints\solution-checkpoint.ipynb
1 |
|
1 |
|
这里提出了一个猜想,因为给的提交文件实例的名称为gender_submission.csv,里面的有两个字段,一个是PassengerId,还有一个就是Survived。 里面的结果就是男的都死了,女的都没死,那么就仅根据男的都死了,女的都没死,猜测一下示例预测文件的准确度。
1 |
|
% of women who survived: 0.7420382165605095
1 |
|
% of men who survived: 0.18890814558058924
从上面的两个数据我们可以看出,其实实例文件的预测准确性还是蛮高的,因为在测试数据中大概有74%的女性存活了下来,而男性的存活率仅为将近19%。 从这里可以看出,性别是一个影响很大的因素,对于是否幸存来说。
下面有个小坑,就是如果没装sklearn的库会报错,但是包名居然不叫sklearn,坑死我了。 pip install scikit-learn 千万不要直接sklearn,装下来不知道什么沙雕玩意,就无语。
1 |
|
预测结果保存成功。
然后这个titanic的随机森林解决方案就出来了,没有经历过调参和数据清洗,但是作为新手代码运行起来才是最重要的。下次更新优化方案。