本篇文章针对刚刚接触Kaggle的同学,介绍参加Kaggle数据分析竞赛的完整流程,最快速度完成一个比赛。
前言
Kaggle是一个数据分析的竞赛平台。企业可以将数据、问题描述和期望指标发布到Kaggle平台,以竞赛的形式向广大的数据科学家征集解决方案。参赛者将数据下载下来,分析数据、建立模型、解决问题,最后提交解决问题的结果。
进入Kaggle网站:
Kaggle中的比赛主要分为三类:Featured、Research和Getting Started。进入Kaggle网站的Competition栏目后,我们可以看到目前正在举行的竞赛。我们选择Titanic幸存者预测这个竞赛,教大家一步一步完成比赛。
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来代替。
(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”获取代码和数据。
网友评论