美文网首页kaggle数据分析
Kaggle数据挖掘竞赛入门系列:(三)Titanic竞赛初试身

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

作者: 王十二的 | 来源:发表于2017-09-17 19:13 被阅读301次

    本篇文章针对刚刚接触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”获取代码和数据。

    相关文章

      网友评论

        本文标题:Kaggle数据挖掘竞赛入门系列:(三)Titanic竞赛初试身

        本文链接:https://www.haomeiwen.com/subject/tdsmsxtx.html