Kaggle Titanic数据分析和预测

    本文对Kaggle中的Titanic事故中乘客遇难情况进行了相应的分析和可视化,采用逻辑回归对他们的遇难情况进行了预测。最后得到的预测结果不算很好,但是本文大致是一个较为完整的数据分析和预测流程。

1. 数据集和测试集

本文的数据集和测试集来自:https://www.kaggle.com/c/titanic/data

# 导入相关库
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
%matplotlib inline

导入数据集和测试集:

train = pd.read_csv('train.csv')
test = pd.read_csv('test.csv')


2. 数据探索和可视化

2.1 数据的类型

接下来进行数据的探索,首先可以先了解数据的类型:

train.dtypes

训练集总共12列,Survived字段表示乘客是否获救;测试集总共11列,而Survived是我们需要预测的目标。

2.2 数据的可视化探索

首先通过pandas中的describe()得到数值型数据的分布特点:

train.describe()


接着可以分析各个特征对应的人数分布

# 中文字体设置
plt.rcParams['font.sans-serif'] = ['SimHei']    
plt.rcParams['axes.unicode_minus'] = False 

# 各属性对应的人数分布
plt.subplot(2,2,1)
sns.countplot(x='Survived', data=train)
plt.title('存活情况')
plt.subplot(2,2,2)
sns.countplot(x='Pclass', data=train)
plt.title('各等级舱人数')
plt.subplot(2,2,3)
sns.countplot(x='Sex', data=train)
plt.title('男女人数')
plt.subplot(2,2,4)
sns.countplot(x='Embarked', data=train)
plt.title('登船港口')
plt.tight_layout()

可以看出,3等舱的人数最多,男性乘客显著多余女性乘客,而登船港口则明显集中于'S',典型的偏态分布。


接着可以分析各个特征与乘客是否获救之间的关系

船舱等级

# 舱等级与存活情况之间的关系
Survived_0 = train.Pclass[train.Survived == 0].value_counts()
Survived_1 = train.Pclass[train.Survived == 1].value_counts()
Pclass_df = pd.DataFrame({'未获救': Survived_0, '获救': Survived_1})
Pclass_df.plot(kind='bar', stacked=True)
plt.title('各乘客舱等级的获救情况')
plt.xlabel('乘客舱等级') 
plt.ylabel('人数') 
plt.show()

可以看出,头等舱获救率明显较高,3等舱获救率则较低。


上船港口

# 上船港口与存活情况之间的关系
Survived_0 = train.Embarked[train.Survived == 0].value_counts()
Survived_1 = train.Embarked[train.Survived =
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值