Kaggle入门系列:(三)Titanic竞赛初试身手

本篇文章针对刚刚接触Kaggle的同学,介绍参加Kaggle数据分析竞赛的完整流程,最快速度完成一个比赛。

前言

Kaggle是一个数据分析的竞赛平台。企业可以将数据、问题描述和期望指标发布到Kaggle平台,以竞赛的形式向广大的数据科学家征集解决方案。参赛者将数据下载下来,分析数据、建立模型、解决问题,最后提交解决问题的结果。

进入Kaggle网站:
Kaggle网站首页

Kaggle中的比赛主要分为三类:FeaturedResearchGetting Started。进入Kaggle网站的Competition栏目后,我们可以看到目前正在举行的竞赛。我们选择Titanic幸存者预测这个竞赛,教大家一步一步完成比赛。
Kaggle竞赛类型

Kaggle竞赛项目的全过程:
- 了解问题背景:对竞赛的背景进行了解
- 下载数据
- 分析数据:Explore Data Analysis
- 数据处理和特征工程:Data Process and FeatureEngineering
- 模型选择:Model Select
- 提交结果:Submission

第一步:了解问题背景

著名的泰坦尼克号
没错,Titanic就是那部著名的电影:“泰坦尼克号”。我们需要预测泰坦尼克号沉没的时候哪些乘客成为了幸存者。
Titanic竞赛问题描述

第二步:下载数据

下载数据
有三个数据csv文件需要我们下载。

gender_submission.csv:我们需要提交的示例文件

test.csv:测试数据集

train.csv:训练数据集

第三步:读取数据,分析数据

读取数据
Pandas是目前最强大的数据分析包,没有之一。可以用.info()函数查看当前dataframe的信息。

训练数据信息
训练数据集有891行12列。各列代表的信息:
· PassengerId:一个用以标记每个乘客的数字id
· Survived:标记乘客是否幸存——幸存(1)、死亡(0)。我们将预测这一列。
· Pclass:标记乘客所属船层——第一层(1),第二层(2),第三层(3)。
· Name:乘客名字。
· Sex:乘客性别——男male、女female
· Age:乘客年龄。部分。
· SibSp:船上兄弟姐妹和配偶的数量。
· Parch:船上父母和孩子的数量。
· Ticket:乘客的船票号码。
· Fare:乘客为船票付了多少钱。
· Cabin:乘客住在哪个船舱。
· Embarked:乘客从哪个地方登上泰坦尼克号。

第四步、数据处理和特征工程

数据分析过程中,了解业务背景是非常重要的。
大家记得在泰坦尼克号沉没的时候,船长说了一句话:小孩和妇女先走,男人留下。
知道这个背景以后,在做数据处理的时候我们就应该知道Sex和Age两个字段应该是关键。

(1)Age处理,填充缺失值

Age字段共有714,缺失值比较多,我们采用Age的中位数进行填充。

中位数填充年龄

注意:我们需要同时对训练集和测试集做相同的处理。

(2)Sex处理,属性变换
Sex有两个属性:male和female,代表男性和女性。为了方便分类器处理,我们用1和0来代替。

Sex变换为标量

(3)特征选择
为了最快速度上手,我们只需要选择Age和Sex两个字段。

特征选择

第五步:模型选择

我们的任务是预测乘客是否能幸存,很明显是一个基本的二分类问题(Binary Classification)。可以用来处理二分类问题的模型主要有:感知机、Logistic回归、决策树、SVM和随机森林等,可选的模型非常多。网上有一张图,建议我们选择哪种模型应用到我们的项目中。

Sciket-learn模型选择

这里我们选择sciket-learn提供的决策树(Decision Tree)模型。

决策树

第六步、预测结果并提交

最后,将我们训练好的模型在测试集上进行测试,将结果按照要求保存下来。将结果提交到kaggle网站,计算我们的得分。
(1)保存结果

保存结果
(2)提交到Kaggle
Kaggle提供了Submit Predictions页面,我们只需要将decision_tree.csv文件拖拽到uploadsubmission file中就可以自动上传。


我们将预测结果提交到Kaggle网站,Kaggle会对我们提交的结果与kaggle后台的数据进行对比,计算出我们的准确率和得分(score)。

此次提交的准确率只有60.7%。

我们第一次提交结果,不要太过于在意分数,接下来的系列文章我将会介绍很多提升分数的技巧。

结束语

本文介绍了参加kaggle数据分析竞赛的一个完整流程:加入比赛并了解比赛背景、获取数据、数据分析、特征工程、模型训练、提交结果。现在,我们对参加比赛的完整流程已经比较了解,下一步就是通过特征工程、调参、模型融合等手段来提高我们的分数。

欢迎关注微信公众号:kaggle数据分析。后台回复“titanic”获取代码和数据。

  • 3
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值