当前位置:   article > 正文

机器学习实战——泰坦尼克号_泰坦尼克号幸存数据机器学习

泰坦尼克号幸存数据机器学习

通过泰坦尼克号生存项目来熟悉机器学习的整个流程,数据来源是kaggle上的titanic数据。该项目从数据获取->数据清洗->特征处理->构建模型->模型评估5个步骤进行分析。

该比赛提供了891名泰坦尼克号的乘客数据,包含乘客的姓名,性别、年龄、客舱等级等信息,数据中还包含一个最重要的信息:乘客是否生还(1:生还,0:遇难)。目的是通过对训练数据集的学习来构建一个分类预测模型,对测试数据集中的418名乘客生存情况进行预测。

数据来源链接:https://www.kaggle.com/c/titanic/data

  • train.csv 用于训练,标记了乘客是否生还的信息
  • test.csv  用于测试,没有标记乘客是否生还信息,该数据集需要用模型来预测乘客是否生还

数据导入:

导入我们的训练数据和测试数据

  1. # 导入包:
  2. import pandas as pd
  3. import numpy as np
  4. # 读取数据:
  5. train_data = pd.read_csv("/Desktop/泰坦尼克号/train.csv")
  6. test_data = pd.read_csv("/Desktop/泰坦尼克号/test.csv")
  7. # 查看前5行
  8. train_data.head()

数据字段的含义:

数据集中有12 个字段,每一个字段的名称和含义如下

  • PassengerId:乘客 ID
  • Survived:是否生存
  • Pclass:客舱等级
  • Name:乘客姓名
  • Sex:性别
  • Age:年龄
  • SibSp:在船兄弟姐妹数/配偶数
  • Parch:在船父母数/子女数
  • Ticket:船票编号
  • Fare:船票价格
  • Cabin:客舱号
  • Embarked:登船港口

查看数据基本信息:

  1. # 查看数据基本信息
  2. train_data.info()

从上面info()中我们可以看出,Age, Cabin, Embarked这三个变量有缺失值。

删除一些无效的数据列:

有些变量在模型中是没有意义的,所以我们可直接在train_data中删除一些没有意义的变量,通过drop()方法来删除:PassengerId,Name,Ticket

  1. # 删除无效的数据变量
  2. train_data=train_data.drop(['PassengerId','Name','Ticket'],axis=1)
  3. train_data.head()

单变量分析:

单变量数据就是每次只对1个变量进行分析,相对的,多变量数据就是同时对多个变量之间的相关性进行分析。单变量数据分析主要目的是对单个变量的数据分布进行查看,方便后期的数据预处理,常用的单变量分析方法有:频数分析、描述性统计、直方图等。

  • 频数分析:分析类别型变量每一个值出现的频数。
  • 描述性统计:对数值型变量的常用统计量进行分析:均值,总和,最小值,最大值,分位数。
  • 直方图:对数值型变量进行分段处理后进行频数分析并作图。

频数分析:(类别型变量)

数据集中的 Survived(是否生还), Pclass(客舱等级), Sex(性 别), Embarked(登船港口)等变量是类别型变量,所以可对他们进行频数分析。 

1、变量Survived(是否生还)的频数分析及可视化:

  1. # 统计频数
  2. Survived_freq=train_data.Survived.value_counts()
  3. print(Survived_freq)
  4. # 统计结果的可视化分析(条形图和饼图)
  5. import matplotlib.pyplot as plt
  6. import seaborn as sns
  7. %matplotlib inline
  8. plt.figure(figsize=(12,5))
  9. plt.subplot(121)
  10. sns.countplot(x='Survived',data=train_data)
  11. plt.title('Count')
  12. plt.subplot(122)
  13. plt.pie(Survived_freq,labels=Survived_freq.index,autopct='%1.0f%%')
  14. plt.title('percent')
  15. plt.show

我们从上述的分析中可以看出,训练样本中有38%的乘客生还了。

2、变量Pclass(客舱等级)的频数分析及可视化:

  1. # 统计频数
  2. Pclass_freq=train_data.Pclass.value_counts()
  3. print(Pclass_freq)
  4. # 统计结果的可视化分析(条形图和饼图)
  5. import matplotlib.pyplot as plt
  6. import seaborn as sns
  7. plt.figure(figsize=(12,5))
  8. plt.subplot(121)
  9. sns.countplot(x='Pclass',data=train_data)
  10. plt.title('Count')
  11. plt.subplot(122)
  12. plt.pie(Pclass_freq,labels=Pclass_freq.index,autopct='%1.0f%%')
  13. plt.title('percent')
  14. plt.show()

我们从上述的频数分析中可以看出,训练样本中3等舱的乘客最多占比55%,2等舱最少占比21%,1等舱占比24%。

3、变量Sex(性别)的频数分析及可视化: 

  1. # 统计频数
  2. Sex_freq=train_data.Sex.value_counts()
  3. print(Sex_freq)
  4. # 统计结果的可视化分析(条形图和饼图)
  5. import matplotlib.pyplot as plt
  6. import seaborn as sns
  7. plt.figure(figsize
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/空白诗007/article/detail/750391
推荐阅读
相关标签
  

闽ICP备14008679号