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

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

前言

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

进入Kaggle网站:

Kaggle数据挖掘竞赛入门系列:(三)Titanic竞赛初试身手_第1张图片
Kaggle网站首页

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

Kaggle数据挖掘竞赛入门系列:(三)Titanic竞赛初试身手_第2张图片
Kaggle竞赛类型

Kaggle竞赛项目的全过程:

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

第一步:了解问题背景

Kaggle数据挖掘竞赛入门系列:(三)Titanic竞赛初试身手_第3张图片
著名的泰坦尼克号

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


Kaggle数据挖掘竞赛入门系列:(三)Titanic竞赛初试身手_第4张图片
Titanic竞赛问题描述

第二步:下载数据

Kaggle数据挖掘竞赛入门系列:(三)Titanic竞赛初试身手_第5张图片
下载数据

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

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

test.csv:测试数据集

train.csv:训练数据集

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

Kaggle数据挖掘竞赛入门系列:(三)Titanic竞赛初试身手_第6张图片
读取数据

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

Kaggle数据挖掘竞赛入门系列:(三)Titanic竞赛初试身手_第7张图片
训练数据信息

训练数据集有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的中位数进行填充。

Kaggle数据挖掘竞赛入门系列:(三)Titanic竞赛初试身手_第8张图片
中位数填充年龄

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

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

Kaggle数据挖掘竞赛入门系列:(三)Titanic竞赛初试身手_第9张图片
Sex变换为标量

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

特征选择

第五步:模型选择

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

Kaggle数据挖掘竞赛入门系列:(三)Titanic竞赛初试身手_第10张图片
Sciket-learn模型选择

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

Kaggle数据挖掘竞赛入门系列:(三)Titanic竞赛初试身手_第11张图片
决策树

第六步、预测结果并提交

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

Kaggle数据挖掘竞赛入门系列:(三)Titanic竞赛初试身手_第12张图片
保存结果

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

Kaggle数据挖掘竞赛入门系列:(三)Titanic竞赛初试身手_第13张图片

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

Kaggle数据挖掘竞赛入门系列:(三)Titanic竞赛初试身手_第14张图片

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

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

结束语

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

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

你可能感兴趣的:(Kaggle数据挖掘竞赛入门系列:(三)Titanic竞赛初试身手)