Python 数据分析与数据可视化(实践篇)泰坦尼克号旅客生存预测

泰坦尼克号旅客生存预测

1. 数据集

1.1 获取

http://biostat.mc.vanderbilt.edu/wiki/pub/Main/DataSets/titanic3.xls

1.2 数据展示及主要字段说明

在这里插入图片描述
在这里插入图片描述

2. 数据预处理

使用 pandas 进行数据预处理

2.1 读入数据

在这里插入图片描述

2.2 查看数据摘要

在这里插入图片描述

2.3 筛选提取字段

 Excel 中并不是所有的字段在建模时都需要用到,只筛选提取出需要的特征字段,去掉 ticket、carbin 等
在这里插入图片描述

2.4 存在的问题及解决方案

在这里插入图片描述

2.5 找出有 null 值的字段

 利用 isnull() 方法,进行元素级别的判断,生成所有数据的 bool 矩阵,元素为 null 或 NA 就显示为 True
在这里插入图片描述
 继续使用 any() 方法,可以进行列级别的判断,只要该列有为 null 或 NA 的元素,就为 True
在这里插入图片描述
 如果想要进一步详细的知道列中为空的元素的个数,可以通过 sum() 方法进行统计
在这里插入图片描述
 筛选出存在缺失值的记录
在这里插入图片描述

2.6 填充 null 值

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.7 转换编码

 文本信息转化为数字编码
在这里插入图片描述
在这里插入图片描述
 查看数据
在这里插入图片描述

2.8 删除 name 字段

在这里插入图片描述
在这里插入图片描述

2.9 打乱数据顺序

在这里插入图片描述

2.10 分离特征值和标签值

 survived 为标签值,其他字段为特征值
在这里插入图片描述
特征值
在这里插入图片描述
标签值
在这里插入图片描述

2.11 特征值标准化处理

 使用 sklearn 将特征值映射到 (0, 1) 之间
在这里插入图片描述
标准化之前
在这里插入图片描述
标准化之后
在这里插入图片描述

2.12 完整的数据预处理函数

 对以上代码进行整合,封装为函数

# sklearn.preprocessing   专门进行预处理
from sklearn import preprocessing

def prepare_data(selected_df_data):
    # fillna() 方法只会填充 null 值
    # age 字段填充平均值
    age_mean_value = selected_df_data['age'].mean()
    selected_df_data['age'] = selected_df_data['age'].fillna(age_mean_value)

    # fare 字段填充平均值
    fare_mean_value = selected_df_data['fare'].mean()
    selected_df_data['fare'] = selected_df_data['fare'].fillna(fare_mean_value)

    # embarked 字段填充 S
    selected_df_data['embarked'] = selected_df_data['embarked'].fillna('S')

    # sex 字段字符串转换为数字
    # astype() 方法用于进行字段类型转换
    selected_df_data['sex'] = selected_df_data['sex'].map({'female': 0, 'male': 1}).astype(int)

    # embarked 字段字符串转换为数字
    selected_df_data['embarked'] = selected_df_data['embarked'].map({'C': 0, 'Q': 1, 'S': 2}).astype(int)

    # drop() 方法会返回一个新的 DataFrame
    # axis=1 表示删除列
    selected_df_data = selected_df_data.drop(['name'], axis=1)

    # 打乱数据顺序,为后面训练做准备
    # sample 抽样函数,frac 为百分比,根据 frac 的值随机抽出相应百分比的数据
    shuffled_df_data = selected_df_data.sample(frac=1)

    # 转换为 ndarrary 数组
    ndarrary_data = shuffled_df_data.values

    # 提取特征值
    features = ndarrary_data[:, 1:]

    # 提取标签值
    label = ndarrary_data[:, 0]

    # 特征值标准化
    minmax_scale = preprocessing.MinMaxScaler(feature_range=(0, 1))

    # features 加 norm 前缀表示已经标准化过的
    norm_features = minmax_scale.fit_transform(features)

    return norm_features, label

3. 模型建立及应用

3.1 划分训练集和测试集

在这里插入图片描述

3.2 建立多层神经网络模型

3.2.1 模型结构

在这里插入图片描述
在这里插入图片描述
添加层
在这里插入图片描述

3.2.2 模型设置

在这里插入图片描述
在这里插入图片描述
API 参考文档https://www.tensorflow.org/versions/r1.10/api_docs/python/tf/keras/Model

3.2.3 模型训练

在这里插入图片描述
 train_history 共有 4 个条目,每个条目对应训练和验证期间的一个受监控指标,可以使用这些指标绘制训练损失与验证损失图表训练准确率与验证准确率图表

3.2.4 模型训练过程可视化

 定义可视化函数

import matplotlib.pyplot as plt

# train_history 训练历史对象
# train_metric      训练度量,可选值,'acc', 'loss'
# validation_metric    验证度量,可选值,'val_acc', 'val_loss'
def visu_train_history(train_history, train_metric, validation_metric):
    plt.plot(train_history.history[train_metric])
    plt.plot(train_history.history[validation_metric])
    plt.title('Train History')
    plt.ylabel(train_metric)
    plt.xlabel('epoch')
    plt.legend(['train', 'validation'], loc='upper right')
    plt.show()

 查看训练准确率与验证准确率
在这里插入图片描述

3.2.5 模型评估

在这里插入图片描述

3.3 模型应用

 如果对模型评估的结果比较满意,就可以进行模型应用了

3.3.1 加入预测数据

在这里插入图片描述

3.3.2 进行预测

在这里插入图片描述

3.3.3 查看预测结果

在这里插入图片描述

其他文章

Python 数据分析与数据可视化(一)Python 开发环境搭建与编码规范
Python 数据分析与数据可视化(二)数据类型、运算符与内置函数
Python 数据分析与数据可视化(三)列表、元组、字典、集合与字符串
Python 数据分析与数据可视化(四)文件操作
Python 数据分析与数据可视化(五)线性代数基本知识
Python 数据分析与数据可视化(六)numpy 数组和矩阵运算
Python 数据分析与数据可视化(七)pandas数据分析实战
Python 数据分析与数据可视化(八)sklearn机器学习实战
Python 数据分析与数据可视化(工具篇)课程所需扩展库安装
Python 数据分析与数据可视化(实践篇)泰坦尼克号旅客生存预测

  • 8
    点赞
  • 99
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值