肯定有人要说什么多层感知机,不就是几个隐藏层连接在一起的吗。话是这么说,但是我觉得我们首先要自己承认自己高级,不然怎么去说服(hu nong)别人呢

from keras.models import Sequential
from keras.layers import Dense
import numpy as np
#设置随机种子,使得每次结果都是一致的
np.random.seed(7)

import pandas as pd
dataFrame = pd.read_csv("E:/数据集/PimaIndians.csv")
print(dataFrame.head())
print(dataFrame.keys())
#导入数据
#dataset = np.loadtxt("E:/数据集/PimaIndians.csv",delimiter=",")
#分割输入变量和输出变量
#选择前8列作为输入,最有一列作为输出
x = dataFrame.ix[:,list(range(8))]
y = dataFrame.ix[:,[8]]
print(x.head())
print(y.head())

#将其转换成np数组,以输入到keras模型中去
x = x.values
y=y.values
print(type(x),x.shape)
#创建模型
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,validation_split=0.2)
#评估模型
scores=model.evaluate(x=x,y=y)
print('\n%s:%.2f%%'%(model.metrics_names[1],scores[1]*100))

View Code