Keras和交叉验证

时间:2016-11-26 15:31:43

标签: python scikit-learn keras cross-validation

我目前正在尝试使用keras训练回归网络。为了确保我接受适当的培训,我希望使用交叉验证进行培训。

问题是keras似乎没有任何支持交叉验证的功能或者它们是什么?

我似乎找到的唯一解决方案是使用scikit test_train_split并手动为每个k折叠运行一个model.fit。是否已经有一个集成的解决方案,而不是手动执行它?

2 个答案:

答案 0 :(得分:2)

不......那似乎是解决方案。 (据我所知。)

答案 1 :(得分:2)

有一个针对Keras的scikit学习包装器可以帮助您轻松完成此任务:https://keras.io/scikit-learn-api/

我建议阅读Jason Brownlee博士的例子:https://machinelearningmastery.com/regression-tutorial-keras-deep-learning-library-python/

   def baseline_model():
        # create model
        model = Sequential()
        model.add(Dense(13, input_dim=13, kernel_initializer='normal', activation='relu'))
        model.add(Dense(1, kernel_initializer='normal'))
        # Compile model
        model.compile(loss='mean_squared_error', optimizer='adam')
        return model

estimator = KerasRegressor(build_fn=wider_model, nb_epoch=100, batch_size=5, verbose=0)
kfold = KFold(n_splits=10, random_state=seed)
results = cross_val_score(pipeline, X, Y, cv=kfold)