python数据框添加一列无列名_利用Python进行泰坦尼克号生存情况预测

本文通过Python对泰坦尼克号数据进行预处理,包括填充缺失值、特征工程,如性别、登船港口、船舱等级的one-hot编码,从姓名和船舱号中提取特征,最终选择相关特征建立逻辑回归模型预测生存情况。
摘要由CSDN通过智能技术生成

本文利用Python对kaggle网站中的泰坦尼克号沉船事件中的乘客生存情况进行预测。

本文进行预测的步骤如下所示:

78dead3b3c3c9bf061b628024d8a780e.png

一、提出问题

在泰坦尼克号沉船事件中什么样的人更容易存活?

二、理解数据

1、数据采集

本项目地址如下:

Titanic: Machine Learning from Disaster​www.kaggle.com

从kaggle中下载数据集后可知,数据集包括两部分,分别为train.csv和test.csv

对数据集中字段含义整理如下:

e9633ceb9e7a9a293aa74af9dc9e08f8.png

2、数据导入

#导入数据处理包
import numpy as np
import pandas as pd

#导入训练数据集
train=pd.read_csv("./train.csv")
#导入测试数据集
test=pd.read_csv("./test.csv")

#查看数据集大小
print('训练数据集:',train.shape,'测试数据集:',test.shape)

结果为:训练数据集: (891, 12) 测试数据集: (418, 11)

由于有两个数据集,因此在进行数据清洗前,需要对两个数据集进行合并,不仅使得数据清洗更加方便,而且有利于提高机器学习正确率

#合并数据集,方便同时对两个数据集进行清洗
full=train.append(test,ignore_index=True)

#查看合并后的数据集大小
print('合并后的数据集:',full.shape)

结果为:合并后的数据集: (1309, 12)

3、数据查看

#查看数据整体情况
full.head()

结果为:

0a29713cef256851b3ec52b033aa04a2.png
#查看数值类型列的描述统计信息
full.describe()

结果为:

5f319937d76c8a00af3e5629459ae031.png
#查看每一列的数据类型和数据总量
full.info()

结果为:

f0a7adcf33b8a8380e9358306b03ba54.png

从结果可知,数据总共有1309行,其中

数值类型列:年龄(Age)、船票价格(Fare)中数据有缺失;

1)年龄(Age)里面数据总数是1046条,缺失了1309-1046=263条,缺失率263/1309=20%

2)船票价格(Fare)里数据总数是1308条,缺失了1条数据

字符串类型列:船舱号(Cabin)、登船港口(Embarked)中数据有缺失;

1)船舱号(Cabin)里面数据总数为295条,缺失了1309-295=1014条,缺失率1014/1309=77.5%

2)登船港口(Embarked)里面数据总数为1307条,缺失了2条数据

三、数据清洗

1、数据预处理

数据预处理的一般步骤为:

74ba8ed6d49ca1b774eb3afc7a7fdf8f.png

很多机器学习算法为了训练模型,要求所传入的特征中不能有空值。如果有缺失值,处理方法一般为:

  • 如果是数值类型有缺失值,用平均值取代
  • 如果是分类数据有缺失值,用最常见的类别取代
  • 使用模型预测缺失值,例如
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值