目录

  • 关于数据集
    • 数据集下载
    • 数据预览
    • 数据集预处理
      • 删除列数据
      • 查看各个特征值的缺失值情况
      • null值填充
      • 字符串数据转化为数值
      • dataframe数据转化为ndarray数据
      • 数据标准化
      • 总述
  • keras多层感知机模型构建
    • 线性模型构建
    • 模型编译及训练
    • 训练结果可视化
    • 测试数据集
    • 模型保存

关于数据集

数据集下载

传送门:kaggle官网
本博客参考:《tensorflow+keras深度学习人工智能实践应用 林大贵著》

数据预览

列数据说明

列标签 描述 数据处理方向
PassengerId 乘客Id号 丢弃(与是否幸存无关)
Survived 是否幸存 label值
Pclass 仓位等级 特征值
Name 乘客姓名 丢弃(该特征与是否幸存无关)
Sex 乘客性别 特征值
Age 年龄 特征值
SibSp 同船的兄弟姐妹的数量 特征值
Parch 同船的父辈数量 特征值
Ticket 票号 丢弃(与幸存无关)
Fare 乘客体热指标 特征值
Cabin 乘客所在船舱号 丢弃(该特征值大量缺失)
Embarked 登船的港口号 特征值
- - -
(各计)12 - (合计)特征值:7
label值:1
丢弃:4

数据集预处理

删除列数据

在上面的表格中我们已经分析了我们需要的特征值,也提到了需要对齐的特征值,下面我们先将要丢弃的特征值删除

查看各个特征值的缺失值情况

因为这个数据集中的一些列中存在null值,我们先查看一下都有哪些列包含null值


我们看到数据集中只有Age(年龄)列和Embarked(登船港口号)列存在缺失值,对于前者我们将Null值填充为平均年龄,对于后者我们将Null值填充为“C”、“S”、“Q”中的任意一个(实际上这么做并不标准,但是考虑到该特征值对结果的影响程度以及缺失值数量,这么做对结果的影响并不大)

isnull():判断缺失值
sum ():返回用户所请求轴的值之和
df.isnull().sum():直接返回每列缺失值的数量
df.isnull().any():判断哪些列包含缺失值

null值填充

字符串数据转化为数值

我们先来看看现在的数据是什么样的

Sex列的性别和Embarked列的登船港口号需要转换

  1. unique():相当于set()函数,用于数据去重,执行结束后labels=[‘C’,‘S’,‘Q’]
  2. Series.apply(function(x)):一一取出Series中的数据执行作为function函数的实参,并返回function函数执行后的结果,次此处将将Embarked列的"C"“S”"Q"等转化为labels列表的索引,实现字符串数据向数值数据的转换
  3. df.nunique():返回df某一列元素的种类

dataframe数据转化为ndarray数据

下面我们先来看看目前数据是什么样子的

ok,现在是纯数值,我们要分别取出特征值和labels值将其转化为ndarray数组作为模型输入值

数据标准化

我们来看看x_train数据

现在的问题是:各列的数据差别太大。
上面的图片中的我们看到有最小的数据是0,最大的数据是71,数据差值太大,如果不做处理不利于模型的拟合,而且训练出的模型表现也不好
如果我们能把数据转化使其在区间(0,1)之间,就能解决这个问题,还好sklearn.proprocessing模块为我们提供了相应的函数

过程如下

总述

def deal_data(path,is_test_data=False):data=pd.read_csv(path)data.drop(['Ticket','Cabin','PassengerId'],axis=1,inplace=True)if not is_test_data:data.drop(['Name'],axis=1,inplace=True)data['Age'].fillna(data['Age'].mean(),inplace=True)data['Sex']=(data['Sex']=='male').astype('int')data['Embarked'].fillna('C',inplace=True)labels=data['Embarked'].unique().tolist()data['Embarked']=data['Embarked'].apply(lambda n:labels.index(n))return data

ok,到这,数据集的预处理基本完成,下面开始建立多层感知机模型

keras多层感知机模型构建

线性模型构建

模型编译及训练

训练结果可视化


从上面的可视化图中我们发现,在epoch=10时,准确率就已经接近最大值了,这是因为我们的数据集中数据太少了,而且建立的多层感知机模型也比较简单

测试数据集

y_test=pd.read_csv(path1)['Survived']
x_test=data_deal(path,)

模型保存

model.save('model_demo1.h5')

keras多层感知机+titanic数据集相关推荐

  1. 深度学习框架 TensorFlow:张量、自动求导机制、tf.keras模块(Model、layers、losses、optimizer、metrics)、多层感知机(即多层全连接神经网络 MLP)

    日萌社 人工智能AI:Keras PyTorch MXNet TensorFlow PaddlePaddle 深度学习实战(不定时更新) 安装 TensorFlow2.CUDA10.cuDNN7.6. ...

  2. 多层感知机MLP常见的超参数有哪些?如果MLP模型对于数据集过拟合了,如何调整这些超参数来进行解决?

    多层感知机MLP常见的超参数有哪些?如果MLP模型对于数据集过拟合了,如何调整这些超参数来进行解决? 目录

  3. (pytorch-深度学习系列)pytorch实现多层感知机(自动定义模型)对Fashion-MNIST数据集进行分类-学习笔记

    pytorch实现多层感知机(自动定义模型)对Fashion-MNIST数据集进行分类 导入模块: import torch from torch import nn from torch.nn im ...

  4. (pytorch-深度学习系列)pytorch实现多层感知机(手动定义模型)对Fashion-MNIST数据集进行分类-学习笔记

    pytorch实现多层感知机对Fashion-MNIST数据集进行分类(手动定义模型) 多层感知机: 多层感知机在单层神经网络的基础上引入了一到多个隐藏层(hidden layer).隐藏层位于输入层 ...

  5. 【ML】基于机器学习的心脏病预测研究(附代码和数据集,多层感知机模型)

    写在前面: 首先感谢兄弟们的订阅,让我有创作的动力,在创作过程我会尽最大努力,保证作品的质量,如果有问题,可以私信我,让我们携手共进,共创辉煌. 之前创作过心脏病预测研究文章如下: [ML]基于机器学 ...

  6. TensorFlow实现多层感知机函数逼近

    TensorFlow实现多层感知机函数逼近 准备工作 对于函数逼近,这里的损失函数是 MSE.输入应该归一化,隐藏层是 ReLU,输出层最好是 Sigmoid. 下面是如何使用 MLP 进行函数逼近的 ...

  7. 什么是深度学习?kears简介,深度学习常用的三大模型,MLP(多层感知机),CNN(卷积神经网络),RNN(循环神经网络)

    什么是深度学习? 简单理解深度学习就是人类容易做的事情,机器不容易完成的事情.(实例:人脸识别,这个例子很好的证明了这句话.假如你识别一个人 ,今天这个人长这个样子,明天脸上有一块伤口,我们人是不是还 ...

  8. TensorFlow基础之模型建立与训练:线性回归、MLP多层感知机、卷积神经网络

    TensorFlow基础之模型建立与训练 模型建立与训练:简单的线性回归 MLP多层感知机 数据获取.预处理 模型搭建 训练与评估 卷积神经网络 高效建模 Keras Sequential高效建模 F ...

  9. TensorFlow实现多层感知机MINIST分类

    TensorFlow实现多层感知机MINIST分类 TensorFlow 支持自动求导,可以使用 TensorFlow 优化器来计算和使用梯度.使用梯度自动更新用变量定义的张量.本文将使用 Tenso ...

最新文章

  1. 计算机组成原理ALU加法器
  2. 一款优秀的JavaScript框架—AngularJS
  3. ADO.NET Entity Framework 基本概述
  4. “天昌”的挽歌——逝去的背影(一)
  5. 【Tools】RDB打包工具详解
  6. Ubuntu 源列表
  7. linux红帽子版本安装报告,红帽子RedHat Linux 9.0安装图解(图c
  8. vue从入门到开发--4--处理http请求
  9. 18100出多少取整_一级注册消防考试难点解析,沥青厂房需要多少个水流指示器及追问...
  10. 提速30倍!这个加速包让Python代码飞起来
  11. Ensemble_VEP--vcf文件注释
  12. SOME/IP 协议介绍
  13. unity光源自带的Halo效果
  14. 2019年微博用户画像_2019年您需要了解的有关用户的信息
  15. Java 他们每人单独过桥的时间是_java实现 n人过桥问题
  16. 应用 Python PyAutoGUI 打造专属按键精灵脚本工具!
  17. JUC下的CountDownLatch,CyclicBarrier、Semaphore的使用方法
  18. 妙用自定义注解,一行代码搞定大功能(文末赠书)
  19. DataHub调研数据血缘
  20. C语言输出菱形及其思路

热门文章

  1. signature=1435e157ebdd6880f63875e99a78e7c4,英语课堂学生英汉语码转换的动机分析
  2. python画圆及其内接多边形_Python turtle 绘图画圆(2)
  3. Windows小知识(一)——加装固态硬盘,重装系统win10,固态硬盘分区,键盘混乱解决办法
  4. 【思考题】类滴滴顺风车业务的风险控制
  5. 阴阳师服务器显示1,阴阳师1月部分服务器合并公告 快来看看有你吗
  6. C语言之移位操作符、位操作符详解
  7. c++的pair和map
  8. 超频的基础技术教程现看现学(二)
  9. cad vba 部分中文方法
  10. 从零开始学Python数据分析-罗攀-专题视频课程