【Keras】学习笔记2:第一个多层感知器实例:印第安人糖尿病诊断
文章目录
- 1、导入数据
- 2、定义模型
- 3、编译模型
- 4、训练模型
- 5、评估模型
- 6、汇总代码
1、导入数据
在使用随机过程(如随机数)的机器学习算法时,最好使用固定随机种子初始化随机数生成器。这样就可以重复运行相同的代码,并得到相同的结果。
实例中使用Numpy的函数loadtxt()函数加载Piman Indians数据集。Piman Indians数据集有8个输入维度和1个输出维度(最后一列)
from keras.models import Sequential
from keras.layers import Dense
import numpy as np
# 设定随机数种子
np.random.seed(7)# 导入数据
dataset = np.loadtxt('pima-indians-diabetes.csv', delimiter=',')
# 分割输入x和输出Y
x = dataset[:, 0 : 8]
Y = dataset[:, 8]
2、定义模型
在Keras中,通常使用Dense类来定义完全连接的层。
在本例中,通过Sequential的add()函数将层添加到模型,并组合在一起。使用ReLU作为前两层的激活函数,使用sigmoid作为输出层的激活函数,第一个隐藏层有12个神经元,使用8个输出变量,第二隐藏层有8个神经元,最后输出层有1个神经元来预测数据结果(是否患有糖尿病),代码如下;
# 创建模型
model = Sequential()
model.add(Dense(12, input_dim=8, activation='relu'))
model.add(Dense(8, activation='relu'))
model.add(Dense(1, activation='sigmoid'))
3、编译模型
模型定义好后,需要对模型进行编译,编译模型是为了使模型能够有效地使用Keras封装的数值进行计算。在编译模型时,必须指定用于评估一组权重的损失函数(loss)、用于搜索网络不同权重的优化器(optimizer),以及希望在模型训练期间收集和报告的可选指标。
在这个例子中使用对数损失函数,作为模型的损失函数。在Keras中,对于二分类问题的对数损失函数定义为二进制交叉熵。使用有效的梯度下降算法Adam作为优化器,这是一个有效的默认值。
# 编译模型
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
4、训练模型
训练模型通过调用模型的fit()函数来实现。
# 训练模型
model.fit(x=x, y=Y, epochs=150, batch_size=10)
5、评估模型
可以使用模型的evaluation()函数来评估模型的准确度。在这个实例中使用训练集来评估模型的准确度,因此传给evaluation()函数的数据集与用于训练模型的数据集相同。、
# 评估模型
scores = model.evaluate(x=x, y=Y)
print('\n%s : %.2f%%' % (model.metrics_names[1], scores[1]*100))
6、汇总代码
到这里已经完成了基于Keras构建的第一个神经网络。下面给出完整的代码,并运行这个模型,代码而下;
from keras.models import Sequential
from keras.layers import Dense
import numpy as np
# 设定随机数种子
np.random.seed(7)# 导入数据
dataset = np.loadtxt('pima-indians-diabetes.csv', delimiter=',')
# 分割输入x和输出Y
x = dataset[:, 0 : 8]
Y = dataset[:, 8]# 创建模型
model = Sequential()
model.add(Dense(12, input_dim=8, activation='relu'))
model.add(Dense(8, activation='relu'))
model.add(Dense(1, activation='sigmoid'))# 编译模型
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])# 训练模型
model.fit(x=x, y=Y, epochs=150, batch_size=10)# 评估模型
scores = model.evaluate(x=x, y=Y)
print('\n%s : %.2f%%' % (model.metrics_names[1], scores[1]*100))
运行结果:
【Keras】学习笔记2:第一个多层感知器实例:印第安人糖尿病诊断相关推荐
- 基于Keras的第一个多层感知器实例:印第安人糖尿病诊断
本文将通过使用Keras构建一个简单的多层感知器,数据使用印第安人糖尿病诊断数据. 通过Keras构建深度学习模型的步骤如下: 定义模型--创建一个序贯模型并添加配置层 编译模型--指定损失函数和优化 ...
- 第一个多层感知器实例:印第安人糖尿病诊断
多层感知器是最简单的神经网络模型,用于处理机器学习中的分类与回归问题. 第一个案例:印第安人糖尿病诊断 Pima Indians数据集:UCI Machine Learning免费下载的标准机器学习数 ...
- 深度学习02-神经网络(MLP多层感知器)
文章目录 神经网络 简介 学习路径 分类 多层感知器(MLP) 神经网络认识 两层神经网络 输入层 从输入层到隐藏层 从隐藏层到输出层 激活层 输出的正规化 如何衡量输出的好坏 反向传播与参数优化 过 ...
- 深度学习入门系列1:多层感知器概述
本人正在学习<deep learning with python>–Jason Brownlee,有兴趣的可以一起学习. 仅供学习参考,不做商用! 大家好,我技术人Howzit,这是深度学 ...
- 《Keras深度学习:入门、实战与进阶》之印第安人糖尿病诊断
本文摘自<Keras深度学习:入门.实战与进阶>. 1.数据理解 本节使用Pima Indians糖尿病发病情况数据集.该数据集最初来自国家糖尿病/消化/肾脏疾病研究所.数据集的目标是基于 ...
- Keras多层感知器实例:印第安人糖尿病诊断
本实例使用Keras在python中创建一个神经网络模型,这是一个简单的贯序模型,也是神经网络最常见的模型.本实例按照以下步骤创建: 1. 导入数据. 2.定义模型 3.编译模型 4.训练模型 5.评 ...
- 多层感知器用实际例子和Python代码进行解释情绪分析
多层感知器用实际例子和Python代码进行解释情绪分析 多层感知器是一种学习线性和非线性数据之间关系的神经网络. 这是专门介绍深度学习系列的第一篇文章,深度学习是一组机器学习方法,其根源可以追溯到20 ...
- 【深度学习】学习案例:Keras 多层感知器手写数字识别
实验:Keras 多层感知器 手写数字识别 1. 下载 MNIST数据集(前提) 2. 进行数据预处理 3. 建立模型 4. 进行训练 5. 以测试数据评估模型 6. 进行预测 拓展: 1. 显示混淆 ...
- 深度学习-Tensorflow2.2-深度学习基础和tf.keras{1}-多层感知器(神经网络)与激活函数概述-04
多层感知器 计算输入特征得加权和,然后使用一个函数激活(或传递函数)计算输出. 单个神经元 多个神经元 单层神经元缺陷 多层感知器 多层感知器 激活函数 relu:曲线如下图,假如过来的函数是x当x小 ...
最新文章
- ADO.NET连接数据库总结
- 解读比特币白皮书:点对点电子现金系统
- UNIX再学习 -- 环境变量
- Visual C++中error spawning cl.exe解决办法
- 【WC2014】时空穿梭【组合数】【莫比乌斯反演】【整除分块】【暴力多项式】
- 短时程突触可塑性(short-term synaptic plasticity)
- (转)如何压缩SQL Server 2005指定数据库文件和日志的大小?
- 计算机学院科研,科研概况
- 挑战练习题2.3动态规划 poj3046 Ant Counting dp
- 塔吊安全智能监控系统智慧工地整体解决方案
- YOLO版本不兼容,报错AttributeError: Can’t get attribute ‘SPPF’ on <module ‘models.common’
- Access denied for user ‘bijian0530‘@‘localhost‘ (using password: YES)
- 七脉轮位置_[转载]地球的七大脉轮位置
- fio_generate_plots
- 象棋( Xiangqi, ACM/ICPC Fuzhou 2011, UVa1589)
- python定义变量取值范围_python怎么限定函数自变量取值范围?
- 锐捷路由器如何配置虚拟服务器,锐捷路由器配置命令完美宝典
- ABeam (德硕)News | 喜提「SAP BTP 最佳实施合作伙伴」奖项
- Unsupervised Domain Adaptation with Variational Approximation for Cardiac Segmentation
- C# 给自己的网址接入微信扫描登录入口