GridSearchCV:根据mean_test_score结果,预测效果会差很多,但不会

时间:2018-07-27 13:21:14

标签: python-3.x scikit-learn grid-search

我正在尝试通过GridSearchCV评估回归器的性能。在我的实现中,cv是一个int,因此我使用了K折验证方法。看cv_results_['mean_test_score'],  在k倍看不见的数据上,最佳平均得分约为0.7,而火车得分则更高,例如0.999。这很正常,我可以接受。

好吧,按照这个概念背后的理由,当我在整个数据集上应用best_estimator_时,我希望看到至少部分数据预测不是很完美,对吧?取而代之的是,对于所有数据点,预测数量与实际值之间的数值偏差接近于零。这闻起来很合身。

我不明白,因为如果删除一小部分数据并将GridSearchCV应用于其余部分,我会发现与上面几乎相同的结果,但是应用于完全看不见的数据的最佳回归值预测的结果要高得多错误,例如10%,30%或50%。根据k折测试集的结果,至少在某些方面,这是我期望将GridSearchCV拟合到整个集合上的。

现在,我知道这迫使预测器查看所有数据点,但是最好的估计器是k个拟合的结果,每个参数都未看到1 / k的数据。作为这两个k得分之间的平均值mean_test_score,我希望看到一堆预测(取决于cv值),这些预测显示出围绕平均误差的误差分布,这些误差证明了0.7得分的合理性。

1 个答案:

答案 0 :(得分:0)

GridSearchCV的refit=True参数使具有找到的最佳超参数集的估计器重新适合全部数据。因此,如果您在CV折叠中的训练误差几乎为零,那么您会期望它在best_estimator_中也接近零。