看电影学机器学习—泰坦尼克生与死(1)

看电影学机器学习—泰坦尼克生与死(1)_第1张图片
泰坦尼克号

在开始之前,让我们先哀悼一下那些在这次海难中遇难的人们。

观察数据集

我们会用到数据集,这里数据集中记录泰坦尼克号乘客一些信息,在机器学习中特别是监督学习中数据占有重要地位。所以我们需要查看数据都包含那些信息,然后我们对这些信息进行筛选和处理作为训练模型的数据,说到数据我们少不了 numpy 和 pandas ,为了更直观地观察数据也引入数据可视化 python 库 matplotlib

import pandas as pd
import matplotlib.pyplot as plt

读取数据集

train = pd.read_csv('./data/train.csv')
print train.head()

检查数据丢失情况

读取训练数据集,输出每一个列包括数据量,可以查看出某些列数据并不完整,例如 carbin 只有在 204 条记录中有值。我们需要对这些数据进行处理。

print train.count()
survived    891
pclass      891
name        891
sex         891
age         714
sibsp       891
parch       891
ticket      891
fare        891
cabin       204
embarked    889
# 查看数据丢失情况
sns.heatmap(train.isnull(),yticklabels=False,cbar=False,cmap='viridis')
看电影学机器学习—泰坦尼克生与死(1)_第2张图片
titanic_missing_data.png

这样可以更加直观观察数据丢失的情况,可以清楚看出 age 和 carbin 字段丢失比较严重,特别是 cabin。

df.survived.value_counts(normalize=True).plot(kind="bar",alpha=0.5)
plt.title("Survived")
看电影学机器学习—泰坦尼克生与死(1)_第3张图片
遇难者和幸存者比例

在上面直方图中,0 表示遇难者 1 表示幸运者,遇难者大约 60%

fig = plt.figure(figsize=(18,6))
plt.subplot2grid((2,3),(0,0))

df.survived.value_counts(normalize=True).plot(kind="bar",alpha=0.5)
plt.title("Survived")

plt.subplot2grid((2,3),(0,1))
plt.scatter(df.survived,df.age,alpha=0.1)
plt.title("Age wrt Survived")
plt.show()
# 查看乘客的年龄分布
# sns.distplot(train['age'].dropna(),kde=False,bins=30,color='Green')
看电影学机器学习—泰坦尼克生与死(1)_第4张图片
幸存者和遇难者年龄分布图

在图Age wrt Survived 中横坐标 0 代表遇难者 1 代表幸存者,可以发现幸存者年龄要小于遇难者的年龄。

看电影学机器学习—泰坦尼克生与死(1)_第5张图片
乘客年龄分布
plt.subplot2grid((2,3),(0,2))
df.pclass.value_counts(normalize=True).plot(kind="bar",alpha=0.5)
plt.title("class")
看电影学机器学习—泰坦尼克生与死(1)_第6张图片
客舱等级
看电影学机器学习—泰坦尼克生与死(1)_第7张图片
plt.subplot2grid((2,3),(1,0),colspan=2)
for x in [1,2,3]:
    df.age[df.pclass == x].plot(kind="kde")
plt.title("class wrt age")
看电影学机器学习—泰坦尼克生与死(1)_第8张图片
乘客按不同上船地点分布
看电影学机器学习—泰坦尼克生与死(1)_第9张图片
根据性别幸存者和遇难者直方图
看电影学机器学习—泰坦尼克生与死(1)_第10张图片
屏幕快照 2019-11-06 上午6.15.25.png
看电影学机器学习—泰坦尼克生与死(1)_第11张图片
屏幕快照 2019-11-06 上午6.17.52.png
plt.subplot2grid((3,4),(1,0),colspan=4)
for x in [1,2,3]:
    df.survived[df.pclass == x].plot(kind="kde")
plt.title("Class wrt Sruvived")
plt.legend(("1st","2nd","3rd"))

你可能感兴趣的:(看电影学机器学习—泰坦尼克生与死(1))