Python 我是否应该首先训练测试分割,然后使用交叉验证?
如果我计划使用交叉验证(KFold),我是否仍应将数据集拆分为培训和测试数据,并仅在培训集上执行培训(包括交叉验证)?或者简历会为我做一切吗?例如 选择1Python 我是否应该首先训练测试分割,然后使用交叉验证?,python,scikit-learn,cross-validation,Python,Scikit Learn,Cross Validation,如果我计划使用交叉验证(KFold),我是否仍应将数据集拆分为培训和测试数据,并仅在培训集上执行培训(包括交叉验证)?或者简历会为我做一切吗?例如 选择1 X_train, X_test, y_train, y_test = train_test_split(X,y) clf = GridSearchCV(... cv=5) clf.fit(X_train, y_train) 选择2 clf = GridSearchCV(... cv=5) clf.fit(X y) CV是好的,但最好有
X_train, X_test, y_train, y_test = train_test_split(X,y)
clf = GridSearchCV(... cv=5)
clf.fit(X_train, y_train)
选择2
clf = GridSearchCV(... cv=5)
clf.fit(X y)
CV是好的,但最好有训练/测试分割,以便在未触及的数据上提供独立的分数估计。
如果您的CV和测试数据显示大致相同的分数,那么您可以删除整个数据上的训练/测试分割阶段和CV,以获得稍好的模型分数。但在你确定你的分数和简历分数是一致的之前不要这样做。CV会为你做一切。只需指定cv所需的参数。供参考,并用于GridSearchCV@SandeepKadapa尽管模型会帮你做到这一点。这是一种糟糕的做法,因为交叉验证低估了模型误差,同时优化了参数以最小化误差。有关更多信息,请参阅。