第一个多层感知器实例:印第安人糖尿病诊断

多层感知器是最简单的神经网络模型,用于处理机器学习中的分类与回归问题。

第一个案例:印第安人糖尿病诊断

Pima Indians数据集:UCI Machine Learning免费下载的标准机器学习数据集。

http://archive.ics.uci.edu/ml/datasets

#导入必需的包

import tensorflow

import keras

from keras.models import Sequential

from keras.layers import Dense

import numpy as np

#使用固定随机数种子初始化随机数生成器

np.random.seed(7)

(1) 导入数据

#导入数据

dataset = np.loadtxt('pima-indians-diabetes.csv',delimiter=',')

#分割输入变量x和输出变量Y

x = dataset[:,0:8]

Y = dataset[:,8]

(2) 定义模型

#创建模型

model = Sequential()

#可视层,8个输入变量,与数据的维度一致

#Dense类定义完全连接层

#通常采用sigmoid和tanh作为激活函数,这是构建所有层的首选。现在的研究表明,使用ReLU作为激活函数,可以得到更好的性能

#第一个隐藏层有12个神经元

model.add(Dense(12,input_dim=8,activation='relu'))

#第二个隐藏层有8个神经元

model.add(Dense(8,activation='relu'))

#最后输出层有1个神经元预测数据结构。二分类的输出层采用sigmoid作为激活函数

model.add(Dense(1,activation='sigmoid'))

(3) 编译模型

#编译模型

#对于二进制分类问题的对数损失被定义为二进制交叉熵

#使用有效的梯度下降算法Adam作为优化器

model.compile(loss='binary_crossentropy',optimizer='adam',metrics=['accuracy'])

(4) 训练模型

#训练模型

#参数可以通过试验和错误实验来选择合适的值

model.fit(x=x,y=Y,epochs=150,batch_size=10)

(5) 评估模型

#评估模型

scores = model.evaluate(x=x,y=Y)

print('\n%s:%.2f%%' %(model.metrics_names[1],scores[1]*100))

目标函数的常见选项:

MSE:预测值和真实值之间的均方误差。

Binary cross-entropy:二分对数损失。

Categorical cross-entropy:多分类对数损失

该目标函数适用于多分类标签预测。它也是与激活函数softmax关联的默认选择。

 

常见的性能评估指标:

Accuracy:准确率,针对预测目标的预测正确的比例。

Precision:查准率,衡量多分类问题中多少选择项是关联正确的。

Recall:查全率,衡量多分类问题中多少关联正确的数据被选出。

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值