GridSearchCV 和 Cross_Val_Score 之间的区别

Difference between GridSearchCV and Cross_Val_Score

我有一个二进制时间序列分类问题。

由于是时间序列,我不能只 train_test_split 我的数据。所以,我使用了这个link中的对象tscv = TimeSeriesSplit(),得到了这样的东西:

我可以从 GridSearchCV and cross_val_score 中看出,我可以将我的拆分策略作为参数传递 cv = tscv。但我的问题是,GridSearchCVcoss_val_score 有什么区别?使用其中之一就足以 train/test 我的模型?或者我应该同时使用两者?首先是 GridSearchCV 以获得最佳超参数,然后是 cross_val_score?

网格搜索是一种通过使用不同的超参数设置(您预先定义的值)来评估模型的方法。您的 GridSearch 可以使用交叉验证(因此存在 GridSearchCV),以便为模型的不同参数设置提供最终分数。在训练和评估之后(网格搜索完成后),您可以查看模型表现最佳的参数(通过查看属性 best_params_dict)。因此,网格搜索基本上是一种暴力破解策略,其中您 运行 具有所有可能的超参数组合的模型。 使用 coss_val_score 你不执行网格搜索(你不使用上面提到的所有预定义参数的策略),但你在交叉验证后得到分数。 我希望现在一切都清楚了。