<p><code>model_1</code>是正确的。在</p>
<p><a href="https://scikit-learn.org/stable/modules/generated/sklearn.model_selection.cross_validate.html" rel="nofollow noreferrer">https://scikit-learn.org/stable/modules/generated/sklearn.model_selection.cross_validate.html</a></p>
<p><code>cross_validate(estimator, X, y=None, groups=None, scoring=None, cv=’warn’, n_jobs=None, verbose=0, fit_params=None, pre_dispatch=‘2*n_jobs’, return_train_score=’warn’, return_estimator=False, error_score=’raise-deprecating’)</code></p>
<p>在哪里</p>
<p><code>estimator</code>是实现“fit”的对象。它将被调用以使模型适合火车折叠。在</p>
<p><code>cv</code>:是一个交叉验证生成器,用于生成训练和测试拆分。在</p>
<p>如果你按照sklearn文档中的例子</p>
<p><code>cv_results = cross_validate(lasso, X, y, cv=3, return_train_score=False)
cv_results['test_score']
array([0.33150734, 0.08022311, 0.03531764])</code></p>
<p>您可以看到,模型<code>lasso</code>在列车拆分的每个折叠中被拟合了3次,在测试拆分中也被验证了3次。您可以看到报告了验证数据的测试分数。在</p>
<h2>Keras模型的交叉验证</h2>
<p>Keras提供了使Keras模型与sklearn交叉验证方法兼容的包装器。您必须使用<code>KerasClassifier</code>包装keras模型</p>
<pre><code>from keras.wrappers.scikit_learn import KerasClassifier
from sklearn.model_selection import KFold, cross_validate
from keras.models import Sequential
from keras.layers import Dense
import numpy as np
def get_model():
model = Sequential()
model.add(Dense(2, input_dim=2, activation='relu'))
model.add(Dense(1, activation='sigmoid'))
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
return model
model = KerasClassifier(build_fn=get_model, epochs=10, batch_size=8, verbose=0)
kf = KFold(n_splits=3, shuffle=True)
X = np.random.rand(10,2)
y = np.random.rand(10,1)
cv_results = cross_validate(model, X, y, cv=kf, return_train_score=False)
print (cv_results)
</code></pre>