使用kfold交叉验证进行深度学习

时间:2020-02-24 14:52:34

标签: python scikit-learn neural-network training-data

我是神经网络的新手,我想使用K折交叉验证来训练我的神经网络。 我想用5折 50纪 批量为64 我在scikit中找到了一个用于k倍交叉验证的函数

model_selection.cross_val_score(model_kfold, x_train, y_train, cv=5)

我没有交叉验证的代码是

history = alexNet_model.fit(x_train, y_train, batch_size=batch_size, epochs=epochs, verbose=1,validation_data=(x_validation, y_validation))

我不知道如何使用keras和scikit在python中以批处理大小和时代来实现这一点。 有什么主意吗?

1 个答案:

答案 0 :(得分:0)

请确保在验证模型时使用测试数据,而不是相同的训练数据。使用训练数据进行验证将使您的结果产生偏差。

在您的示例中,我将使用KerasClassifier模块而不是numpy KFolds模块。

from keras.wrappers.scikit_learn import KerasClassifier

导入模块后,代码将是(结果输出:

evaluator=KerasClassifier(build_fn=baseline_model, epochs=50, batch_size=64)
kfold=KFold(n_splits=5, shuffle=True, random_state=random_seed)

results=cross_val_score(evaluator, x_test, onehot_y_test, cv=kfold)
print("Model: %.2f%% (%.2F%%)" % (results.mean()*100, results.std()*100))