我目前正在尝试使用keras训练回归网络。为了确保我接受适当的培训,我希望使用交叉验证进行培训。
问题是keras似乎没有任何支持交叉验证的功能或者它们是什么?
我似乎找到的唯一解决方案是使用scikit test_train_split并手动为每个k折叠运行一个model.fit。是否已经有一个集成的解决方案,而不是手动执行它?
答案 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)