keras多层感知机+titanic数据集
目录
- 关于数据集
- 数据集下载
- 数据预览
- 数据集预处理
- 删除列数据
- 查看各个特征值的缺失值情况
- 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列的登船港口号需要转换
- unique():相当于set()函数,用于数据去重,执行结束后labels=[‘C’,‘S’,‘Q’]
- Series.apply(function(x)):一一取出Series中的数据执行作为function函数的实参,并返回function函数执行后的结果,次此处将将Embarked列的"C"“S”"Q"等转化为labels列表的索引,实现字符串数据向数值数据的转换
- 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数据集相关推荐
- 深度学习框架 TensorFlow:张量、自动求导机制、tf.keras模块(Model、layers、losses、optimizer、metrics)、多层感知机(即多层全连接神经网络 MLP)
日萌社 人工智能AI:Keras PyTorch MXNet TensorFlow PaddlePaddle 深度学习实战(不定时更新) 安装 TensorFlow2.CUDA10.cuDNN7.6. ...
- 多层感知机MLP常见的超参数有哪些?如果MLP模型对于数据集过拟合了,如何调整这些超参数来进行解决?
多层感知机MLP常见的超参数有哪些?如果MLP模型对于数据集过拟合了,如何调整这些超参数来进行解决? 目录
- (pytorch-深度学习系列)pytorch实现多层感知机(自动定义模型)对Fashion-MNIST数据集进行分类-学习笔记
pytorch实现多层感知机(自动定义模型)对Fashion-MNIST数据集进行分类 导入模块: import torch from torch import nn from torch.nn im ...
- (pytorch-深度学习系列)pytorch实现多层感知机(手动定义模型)对Fashion-MNIST数据集进行分类-学习笔记
pytorch实现多层感知机对Fashion-MNIST数据集进行分类(手动定义模型) 多层感知机: 多层感知机在单层神经网络的基础上引入了一到多个隐藏层(hidden layer).隐藏层位于输入层 ...
- 【ML】基于机器学习的心脏病预测研究(附代码和数据集,多层感知机模型)
写在前面: 首先感谢兄弟们的订阅,让我有创作的动力,在创作过程我会尽最大努力,保证作品的质量,如果有问题,可以私信我,让我们携手共进,共创辉煌. 之前创作过心脏病预测研究文章如下: [ML]基于机器学 ...
- TensorFlow实现多层感知机函数逼近
TensorFlow实现多层感知机函数逼近 准备工作 对于函数逼近,这里的损失函数是 MSE.输入应该归一化,隐藏层是 ReLU,输出层最好是 Sigmoid. 下面是如何使用 MLP 进行函数逼近的 ...
- 什么是深度学习?kears简介,深度学习常用的三大模型,MLP(多层感知机),CNN(卷积神经网络),RNN(循环神经网络)
什么是深度学习? 简单理解深度学习就是人类容易做的事情,机器不容易完成的事情.(实例:人脸识别,这个例子很好的证明了这句话.假如你识别一个人 ,今天这个人长这个样子,明天脸上有一块伤口,我们人是不是还 ...
- TensorFlow基础之模型建立与训练:线性回归、MLP多层感知机、卷积神经网络
TensorFlow基础之模型建立与训练 模型建立与训练:简单的线性回归 MLP多层感知机 数据获取.预处理 模型搭建 训练与评估 卷积神经网络 高效建模 Keras Sequential高效建模 F ...
- TensorFlow实现多层感知机MINIST分类
TensorFlow实现多层感知机MINIST分类 TensorFlow 支持自动求导,可以使用 TensorFlow 优化器来计算和使用梯度.使用梯度自动更新用变量定义的张量.本文将使用 Tenso ...
最新文章
- 计算机组成原理ALU加法器
- 一款优秀的JavaScript框架—AngularJS
- ADO.NET Entity Framework 基本概述
- “天昌”的挽歌——逝去的背影(一)
- 【Tools】RDB打包工具详解
- Ubuntu 源列表
- linux红帽子版本安装报告,红帽子RedHat Linux 9.0安装图解(图c
- vue从入门到开发--4--处理http请求
- 18100出多少取整_一级注册消防考试难点解析,沥青厂房需要多少个水流指示器及追问...
- 提速30倍!这个加速包让Python代码飞起来
- Ensemble_VEP--vcf文件注释
- SOME/IP 协议介绍
- unity光源自带的Halo效果
- 2019年微博用户画像_2019年您需要了解的有关用户的信息
- Java 他们每人单独过桥的时间是_java实现 n人过桥问题
- 应用 Python PyAutoGUI 打造专属按键精灵脚本工具!
- JUC下的CountDownLatch,CyclicBarrier、Semaphore的使用方法
- 妙用自定义注解,一行代码搞定大功能(文末赠书)
- DataHub调研数据血缘
- C语言输出菱形及其思路
热门文章
- signature=1435e157ebdd6880f63875e99a78e7c4,英语课堂学生英汉语码转换的动机分析
- python画圆及其内接多边形_Python turtle 绘图画圆(2)
- Windows小知识(一)——加装固态硬盘,重装系统win10,固态硬盘分区,键盘混乱解决办法
- 【思考题】类滴滴顺风车业务的风险控制
- 阴阳师服务器显示1,阴阳师1月部分服务器合并公告 快来看看有你吗
- C语言之移位操作符、位操作符详解
- c++的pair和map
- 超频的基础技术教程现看现学(二)
- cad vba 部分中文方法
- 从零开始学Python数据分析-罗攀-专题视频课程