Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 我是否应该首先训练测试分割,然后使用交叉验证?_Python_Scikit Learn_Cross Validation - Fatal编程技术网

Python 我是否应该首先训练测试分割,然后使用交叉验证?

Python 我是否应该首先训练测试分割,然后使用交叉验证?,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是好的,但最好有

如果我计划使用交叉验证(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是好的,但最好有训练/测试分割,以便在未触及的数据上提供独立的分数估计。
如果您的CV和测试数据显示大致相同的分数,那么您可以删除整个数据上的训练/测试分割阶段和CV,以获得稍好的模型分数。但在你确定你的分数和简历分数是一致的之前不要这样做。

CV会为你做一切。只需指定cv所需的参数。供参考,并用于GridSearchCV@SandeepKadapa尽管模型会帮你做到这一点。这是一种糟糕的做法,因为交叉验证低估了模型误差,同时优化了参数以最小化误差。有关更多信息,请参阅。