深度学习-基于Keras的Python实践(三)评估深度学习型

1、自动评估

Keras 可以将数据集的一部分分成评估数据集,并在每个epoch中使用该评估数据集对模型进行评估,
实现:
通过设置fit()函数的验证分割参数validation_split设置数据集大小的百分比来实现。

2、手动评估

通过将数据集分成训练部分,测试部分,然后利用测试部分对模型进行评估。

3、K折交叉验证评估

机器学习模型评估的黄金标准是K折交叉验证。
过程:
将数据集分成K个子集,选择其中一个子集作为评估模型的数据集,剩余的K-1个数据集用于训练模型
例程:

from keras.models import Sequential
from keras.layers import Dense
import numpy as np
from sklearn.model_selection import StratifiedKFold

seed = 7
# 设定随机数种子
np.random.seed(seed)

# 导入数据
dataset = np.loadtxt('pima-indians-diabetes.csv', delimiter=',')
# 分割输入x和输出Y
x = dataset[:, 0 : 8]
Y = dataset[:, 8]

kfold = StratifiedKFold(n_splits=10, random_state=seed, shuffle=True)
cvscores = []
for train, validation in kfold.split(x, Y):
    # 创建模型
    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[train], Y[train], epochs=150, batch_size=10, verbose=0)

    # 评估模型
    scores = model.evaluate(x[validation], Y[validation], verbose=0)

    # 输出评估结果
    print('%s: %.2f%%' % (model.metrics_names[1], scores[1] * 100))
    cvscores.append(scores[1] * 100)

# 输出均值和标准差
print('%.2f%% (+/- %.2f%%)' % (np.mean(cvscores), np.std(cvscores)))

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值