赞
踩
通过泰坦尼克号生存项目来熟悉机器学习的整个流程,数据来源是kaggle上的titanic数据。该项目从数据获取->数据清洗->特征处理->构建模型->模型评估5个步骤进行分析。
该比赛提供了891名泰坦尼克号的乘客数据,包含乘客的姓名,性别、年龄、客舱等级等信息,数据中还包含一个最重要的信息:乘客是否生还(1:生还,0:遇难)。目的是通过对训练数据集的学习来构建一个分类预测模型,对测试数据集中的418名乘客生存情况进行预测。
数据来源链接:https://www.kaggle.com/c/titanic/data
数据导入:
导入我们的训练数据和测试数据
- # 导入包:
- import pandas as pd
- import numpy as np
- # 读取数据:
- train_data = pd.read_csv("/Desktop/泰坦尼克号/train.csv")
- test_data = pd.read_csv("/Desktop/泰坦尼克号/test.csv")
- # 查看前5行
- train_data.head()
数据字段的含义:
数据集中有12 个字段,每一个字段的名称和含义如下
查看数据基本信息:
- # 查看数据基本信息
- train_data.info()
从上面info()中我们可以看出,Age, Cabin, Embarked这三个变量有缺失值。
删除一些无效的数据列:
有些变量在模型中是没有意义的,所以我们可直接在train_data中删除一些没有意义的变量,通过drop()方法来删除:PassengerId,Name,Ticket
- # 删除无效的数据变量
- train_data=train_data.drop(['PassengerId','Name','Ticket'],axis=1)
- train_data.head()
单变量分析:
单变量数据就是每次只对1个变量进行分析,相对的,多变量数据就是同时对多个变量之间的相关性进行分析。单变量数据分析主要目的是对单个变量的数据分布进行查看,方便后期的数据预处理,常用的单变量分析方法有:频数分析、描述性统计、直方图等。
频数分析:(类别型变量)
数据集中的 Survived(是否生还), Pclass(客舱等级), Sex(性 别), Embarked(登船港口)等变量是类别型变量,所以可对他们进行频数分析。
1、变量Survived(是否生还)的频数分析及可视化:
- # 统计频数
- Survived_freq=train_data.Survived.value_counts()
- print(Survived_freq)
- # 统计结果的可视化分析(条形图和饼图)
- import matplotlib.pyplot as plt
- import seaborn as sns
- %matplotlib inline
- plt.figure(figsize=(12,5))
- plt.subplot(121)
- sns.countplot(x='Survived',data=train_data)
- plt.title('Count')
- plt.subplot(122)
- plt.pie(Survived_freq,labels=Survived_freq.index,autopct='%1.0f%%')
- plt.title('percent')
- plt.show
我们从上述的分析中可以看出,训练样本中有38%的乘客生还了。
2、变量Pclass(客舱等级)的频数分析及可视化:
- # 统计频数
- Pclass_freq=train_data.Pclass.value_counts()
- print(Pclass_freq)
- # 统计结果的可视化分析(条形图和饼图)
- import matplotlib.pyplot as plt
- import seaborn as sns
- plt.figure(figsize=(12,5))
- plt.subplot(121)
- sns.countplot(x='Pclass',data=train_data)
- plt.title('Count')
- plt.subplot(122)
- plt.pie(Pclass_freq,labels=Pclass_freq.index,autopct='%1.0f%%')
- plt.title('percent')
- plt.show()
我们从上述的频数分析中可以看出,训练样本中3等舱的乘客最多占比55%,2等舱最少占比21%,1等舱占比24%。
3、变量Sex(性别)的频数分析及可视化:
- # 统计频数
- Sex_freq=train_data.Sex.value_counts()
- print(Sex_freq)
- # 统计结果的可视化分析(条形图和饼图)
- import matplotlib.pyplot as plt
- import seaborn as sns
- plt.figure(figsize
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。