简介
Titanic是Kaggle竞赛的一道入门题,参赛者需要根据旅客的阶级、性别、年龄、船舱种类等信息预测其是否能在海难中生还,详细信息可以参看https://www.kaggle.com/,本文的分析代码也取自 kaggle 中该竞赛的 kernal。
数据介绍
给出的数据格式如下:
PassengerId,Survived,Pclass,Name,Sex,Age,SibSp,Parch,Ticket,Fare,Cabin,Embarked
1,0,3,"Braund, Mr. Owen Harris",male,22,1,0,A/5 21171,7.25,,S
2,1,1,"Cumings, Mrs. John Bradley (Florence Briggs Thayer)",female,38,1,0,PC 17599,71.2833,C85,C
数据项的含义如下:
PassengerId:乘客ID
Survived:是否生还,0表示遇难,1表示生还
Pclass:阶级,1表示最高阶级,3最低
Name:姓名
Sex:性别
Age:年龄
SibSp:同乘船的兄弟姐妹的数量
Parch:是否有配偶同乘,1表示是
Ticket:船票编号
Fare:恐惧指数
Cabin:船舱号
Embarked:登船港口
问题分析
这是一个比较典型的基于特征的分类问题,根据一般的数据处理流程可以将问题的求解分解成为以下步骤:
数据预处理
读取数据,在本文代码中使用了 python 的 pandas 包管理数据结构
特征向量化,在本文代码中将性别和登船港口特征转成向量化表示
处理残缺数据,在本文代码中将残缺年龄用平均年龄表示,残缺的登船港口用频繁项表示
扔掉多余项,姓名、ID、舱号、票号在本问题中被认为是对分类没有帮助的信息,扔掉了这些特征项
数据训练
在本文代码中使用了