from keras.models import Sequential
from keras.layers import Dense
import numpy as np
from sklearn.model_selection import cross_val_score
from sklearn.model_selection import StratifiedKFold
from keras.wrappers.scikit_learn import KerasClassifier
# 构建模型
def create_model():
# 构建模型
model = Sequential()#顺序模型
model.add(Dense(units=12, input_dim=8, activation='relu'))#输入层8个节点,隐藏层12个,激活函数relu
model.add(Dense(units=8, activation='relu'))#隐藏层8个,激活函数relu
model.add(Dense(units=1, activation='sigmoid'))#输出层1个,激活函数sigmoid
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy']) # 编译模型
return model
seed = 7
np.random.seed(seed)# 设定随机数种子
# 导入数据
dataset = np.loadtxt('D:\example\Keras\pima-indians-diabetes.csv', delimiter=',')
# 分割输入x和输出Y,X是已知X,Y是标准答案
x = dataset[:, 0 : 8]#取二维数组中第1(m)维到7维(第n-1维)的所有数据,相当于取第1(m)列到第七(n-1)列的所有数据
Y = dataset[:, 8]#取二维数组中第9维的所有数据,相当于取第9列的所有数据
#创建模型 for scikit-learn
model = KerasClassifier(build_fn=create_model, epochs=15, batch_size=10, verbose=0)
# 10折交叉验证
kfold = StratifiedKFold(n_splits=10, shuffle=True, random_state=seed)
results = cross_val_score(model, x, Y, cv=kfold)
print(results.mean())
'''
verbose = 0 为不在标准输出流输出日志信息
'''
gamblerofdestinyR14 发布了38 篇原创文章 · 获赞 1 · 访问量 734 私信 关注