Kaggle-泰坦尼克号生存概率预测(基础)

本项目数据来源于https://www.kaggle.com/c/titanic,是Kaggle上一个非常经典的比赛项目。

1. 提出问题

泰坦尼克号(RMS Titanic)是一艘奥林匹克级邮轮,从英国南安普敦(S)出发,途经法国瑟堡-奥克特维尔(C)以及爱尔兰昆士敦(Q),计划中的目的地为美国纽约,在途中于1912年4月遇上冰山沉没。由于缺少足够的救生艇,1500人葬生海底,造成了当时在和平时期最严重的一次航海事故,也是迄今为止最为人所知的一次海难。

众所周知,泰坦尼克号撞上冰山后的逃生政策是:妇女和小孩先走,但除此之外,还有那些因素影响船上人的生存呢?哪些人更容易存活呢?

2. 理解数据

(1)读取数据

导入相关模块,并读取数据,包括训练数据集和测试数据集,这里需要同时将测试数据同训练数据一起处理,使得二者具有相同的数据类型和数据分布。

(2)理解数据

①字段含义:

·Survived:生存情况:存活(1)或死亡(0)

·Pclass:客舱等级(1,2,3等舱)

·Name:乘客姓名

·Sex:乘客性别

·Age:乘客年龄

·SibSp:在船同代直系亲属数量(兄弟姐妹,配偶)

·Parch:在船不同代直系亲属数量(父母,子女)

·Ticket:船票编号

·Fare:船票价格

·Cabin:客舱号

·Embarked:登船港口(S/C/Q)

②数据分类

一般划分为数值类型和分类数据两类,其中分类数据也分为有类别和字符串两种。

·数值数据:Age,Fare,SibSp,Parch

·分类数据(有类别):Pclass,Sex,Embarked

·分类数据(字符串):Name,Cabin,Ticket

3. 数据清洗

(1)处理缺失值

① 数值型缺失值处理

年龄(Age)和船票价格(Fare)都存在缺失值,且数据类型都为浮点型,可以使用平均值填充填充:

② 字符串类型缺失值处理

客舱号(Cabin)的数据类型为字符串,这一列缺失数值较多,缺失率达到77.5%,且无规律可循,直接填充为U(未知):

③ 分类数据缺失值处理

登船港口(Embarked)属于有类别数据,共分为三类,有两个缺失值,可用众数填充:

(2)特征提取

什么是特征工程?特征工程指最大限度地从原始数据中提取特征,以供机器学习算法和模型使用。

特征工程处理方法:原始数据→数据预处理→特征提取→特征选取和降维→构建模型

特征提取方法:

·数值类型:可直接使用

·时间序列:转为单独年,月,日

·分类数据:用数值代替类别(one-hot编码)

提取性别(Sex)特征值:

提取登船港口(Embarked)特征值:

从姓名(Name)中提取头衔特征值:

提取客舱号(Cabin)的特征值:

提取家庭类别的特征值:

提取年龄(Age)的特征值:

提取客舱等级(Pclass)的特征值:

最后查看现在已有的特征:

(3)特征选择

先求出相关性矩阵:

对Survived相关因素降序排列:

选取相关性较强的字段:


4. 构建模型

使用机器学习算法用训练数据得到一个机器学习模型,再使用测试数据评估模型看准确率,然后依据已知信息预测生存情况。

(1)建立训练和测试数据集


(2)选择机器学习算法

典型的二分类,选择逻辑回归(Logistic Regression)算法训练模型:


5. 实施方案

依据已知信息pred_X预测生存情况:

注:one-hot编码,get_dummies的使用(分类数据:二类以上),参数prefix表示列名前缀。

你可能感兴趣的:(Kaggle-泰坦尼克号生存概率预测(基础))