泰坦尼克号的沉没是世界上最严重的海滩事故之一,通过模型来预测哪些人可能成为幸存者。
1、导入基本所需的库
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
%matplotlib inline
import seaborn as sns
plt.style.use('fivethirtyeight')
import warnings
warnings.filterwarnings('ignore')
2、导入数据集,探索数据
data = pd.read_csv('train.csv')
data.head()
离散型的变量有:Survived,Sex 和 Embarked。基于序列的有:Pclass
连续型的数值特征有:Age,Fare。离散型数值有:SibSp,Parch
混合型变量:Ticket和Cabin
Name的特征可能包含错误或者打字错误
data.isnull().sum()
这些特征包含null值的数量大小为:Cabin > Age > Embarked
data.info()
有7个特征是int型或float 型
有5个特征是object类型
#数值型特征的数值分布
data.describe()
#离散型数据的分布
data.describe(include=['object'])
# 标签比例 获救比例情况
f,ax = plt.subplots(1,2,figsize=(10,6))
data['Survived'].value_counts().plot.pie(explode=[0,0.1],
autopct='%1.1f%%',
ax=ax[0],shadow=True)
ax[0].set_title('Survived')
sns.countplot('Survived',data=data,ax=ax[1])
3、特征分析
# 标签比例 获救比例情况
f,ax = plt.subplots(1,2,figsize=(10,6))
data['Survived'].value_counts().plot.pie(explode=[0,0.1],
autopct='%1.1f%%',
ax=ax[0],shadow=True)
ax[0].set_title('Survived')
sns.countplot('Survived',data=data,ax=ax[1])
# 不同性别下存活人数
data.groupby(['Sex','Survived'])['Survived'].count()
sns.countplot('Sex',hue='Survived',data=data)
男人的人数多,但是女人存活率更高
# Pclass和获救之间的关系
pd.crosstab(data.Pclass,data.Survived,margins=True).style.background_gradient(cmap='GnBu_r')
sns.countplot('Pclass',hue='Survived',data=data)
观察到Pclass=1生存率高
#数值型特征age与Survived之间的联系
g = sns.FacetGrid(data, col='Survived')
g.map