python泰坦尼克号生存预测论文_泰坦尼克号生存率预测(基于Python)

本文详细介绍了使用Python进行泰坦尼克号生存率预测的完整过程,包括数据理解、数据清洗、特征工程和模型构建。通过对乘客性别、登船港口、客舱等级、家庭大小等因素进行编码和预处理,最终使用逻辑回归模型进行训练,并评估模型的准确率。
摘要由CSDN通过智能技术生成

背景:泰坦尼克号(RMS Titanic)是英国白星航运公司下辖的一艘奥林匹克级邮轮,于1909年3月31日在爱尔兰贝尔法斯特港的哈兰德与沃尔夫造船厂动工建造。她是当时世界上体积最庞大、内部设施最豪华的客运轮船,有“永不沉没”的美誉 。1912年4月10日开始了她的第一次航行——从英国南安普敦出发,途经法国瑟堡-奥克特维尔以及爱尔兰昆士敦,驶向美国纽约。然而4天后,她撞上冰山沉入大西洋。2224名船员和旅客中,仅705人生还。泰坦尼克号沉没事故为和平时期死伤人数最为惨重的一次海难。

一、提出问题

在泰坦尼克号的海难中,仅有32%的人员存活下来,是什么因素影响船上的人在泰坦尼克号中生还率呢?生还率更高的人有什么共同特征?

二、理解数据

以下是数据变量的内容和含义

其中在船兄妹姐妹数/配偶数是指同辈分的关系条数,在船父母数/子女数是指跨一辈分的关系条数

三、数据清洗

数据源是两份分别为训练数据和测试数据的CSV格式的表格,其中测试数据比训练数据少1列生存情况

1、先把数据导入并查看数据

#准备工具包

#忽略警告提示

import warnings

warnings.filterwarnings('ignore')

#导入处理数据包

import numpy as np

import pandas as pd

#导入数据

#训练数据集

train=pd.read_csv(r'******\train.csv',engine = 'python')

#测试数据集

test=pd.read_csv(r'******\test.csv',engine = 'python')

print('训练数据集:',train.shape,'测试数据集:',test.shape)

#上面打印输出结果:训练数据集: (891, 12) 测试数据集: (418, 11)

#合并数据集,方便同时对两个数据集进行清洗

full = train.append( test , ignore_index = True )

print ('合并后的数据集:',full.shape)

#上面打印输出结果:合并后的数据集: (1309, 12)

#查看数据前五行

full.head()

#获取数据类型列的描述统计信息

full.describe()

#查看每一列的数据类型和数据总数

full.info()数据前5行统计描述数据类型和数据总数

从数据查看的结果了解到:

训练数据有891行,测试数据有418行;总数据一共1309行

Age列有1046个数据,缺失率为:(1309-1046)/1309=20%

Cabin列有295个数据,缺失率为77.5%,缺失率较大

Embarked列缺失2条数据

Fare列缺失1条数据

通过查看数据后,了解到的信息为下一步数据清洗提供了一些方向

2、数据预处理(此处不需要选择列和更列名)

1)缺失值处理

很多机器学习算法为了训练模型,要求所传入的特征中不能有空值。常用的数据缺失值处理方法如下:如果是数值类型,用平均值取代

如果是分类数据,用最常见的类别取代

使用模型预测缺失值,例如:K-NN

#数值型缺失值处理

#年龄(Age)

full['Age']=full['Age'].fillna(full['Age'].mean())

#船票价格(Fare)

full['Fare']=full['Fare'].fillna(full['Fare'].mean())

print('处理后:')

full.info()

#检查数据处理是否正常

full.head()

#分类数据的缺失值处理

#登船港口(Embarked):查看里面数据</

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值