没有合适的资源?快使用搜索试试~ 我知道了~
首页Kaggle Titanic项目报告;数据挖掘期末作业;
Kaggle Titanic项目报告;数据挖掘期末作业;
需积分: 35 222 浏览量
更新于2023-05-29
评论 2
收藏 1.84MB DOC 举报
关于Kaggle Titanic项目的完整报告,包括数据介绍,各字段关联关系,特征处理,模型选择,实验过程以及实验结果。超级详细!
资源详情
资源评论
资源推荐

教师评语:
项目名
称:
Titanic:Machine Learning from Disaster
摘 要:Titanic 项目主要的任务是根据乘客的信息预测是否生存。首先大致了解数据的整体情况和分布
情况,缺失数据严不严重。分析各个属性与 survived 标签的关联性,依次进行特征处理,如对缺失数据
填充、特征值的转换以及数据分组等处理。比较 Logistic Regression、Support Vector
Machines、KNN、Naive Bayes、Linear SVC、Stochastic Gradient Decent、Decision Tree 和
Random Forest 模型得分情况,选定 Random Forest 模型。最后,模型调参得到预测结果。
该项目最终的比赛成绩是准确率达到 0.8,还有一定的改进空间。

1 项目介绍
1.1 比赛任务
泰坦尼克的比赛任务是根据项目给出的数据集去预测一位乘客在泰坦尼克沉船事故中是否能够生还,
对于每个在测试集的乘客 ID,你需要预测生还变量 0 或 1。
1.2 数据
图 1 和图 2 分别是该项目训练集和测试集中的数据。测试数据比训练数据少了 survived 字段,这个字段
的的值也正是需要我们来预测的。各个字段的含义:
PassengerId => 乘客 ID
Survived => 是否存活(测试数据里面需要我们预测的)
Pclass => 乘客等级(1/2/3 等舱位)
Name => 乘客姓名
Sex => 性别
Age => 年龄
SibSp => 堂兄弟/妹个数
Parch => 父母与小孩个数
Ticket => 船票信息
Fare => 票价
Cabin => 客舱
Embarked => 登船港口
图 1 训练集中的数据
图 2 测试集中的数据

1.3 问题归类
泰坦尼克项目的目标特征是是否存活,特征标签预测之前知道范围且是离散值,所以是一个分类问题。
我们的目标就是准确地预测出测试集中的乘客是生还是死。
2 项目知识点
2.1 数据分析
2.1.1 数据整体情况
data_train.info()
图 3 数据整体情况
训练数据总共是 891 条数据。Age 只有 714 条,缺失 177 条;Cabin 只有 204 条,缺失 687 条,
缺失比较严重;Embarked 缺失 2 条数据。
2.1.2 数值类型数据分布
data_train.describe()

图 4 数值类型数据分布
根据图 4 的结果可知,在训练数据中,大概 38%的人最后获救。Pclass 中 2、3 船舱的人要比 1 多。
大部分人的年龄在 38 岁以内,最大的年龄是 80。大多数乘客没有携带家属。票价差异比较大,只有 1%
不到的乘客购买了 512$的船票。
2.1.3 离散类型数据分布
data_train.describe(include=[np.object])
图 5 离散类型数据分布
根据图 5 的结果可知,Name 属性是唯一,没有重名;性别就男和女;Ticket 不是唯一的,891 名
乘客只有 681 张船票,说明可能有的是和亲人共用一张船票的;登录港口是 3 个。
2.2 各字段与 survived 之间的关联性
2.2.1 离散型特征与 survived 之间的关联性
(1)Pclass 与 Survived
data_train[['Pclass', 'Survived']].groupby(['Pclass'],
as_index=False).mean().sort_values(by='Survived', ascending=False)
图 6 Pclass 与 Survived 关联性
Pclass 的数值越小最后获救的概率越大,并且很明显,后期可做为一个建模特征。
(2) Sex 与 Survived
data_train[['Sex', 'Survived']].groupby(['Sex'],
as_index=False).mean().sort_values(by='Survived', ascending=False)
剩余15页未读,继续阅读



















安全验证
文档复制为VIP权益,开通VIP直接复制

评论0