使用GridSearch进行sklearn交叉验证

时间:2017-02-02 18:18:54

标签: python scikit-learn grid-search

问题是:当我使用GridSearch时,我需要做一些交叉验证过程吗?

我知道的事情:

1.-我可以设置一个评分函数(但不是很清楚如何做到这一点,至少对我来说)

2.-如果我没有通过' cv'然后它使用GridSearch类的参数,使用默认的3倍交叉验证。

GridSearch究竟对我传递的数据做了什么?,所有数据都用在列车中,还是在列车中分开并测试数据?

谢谢!

PD:似乎我的分类器过度拟合,因为得分为100%但新数据效果不佳。

1 个答案:

答案 0 :(得分:1)

请查看GridSearchCV documentation。它详细描述了您想要的一切。

GridSearch将在给定的参数值上训练给定的估计值,并找到在列车数据上给出最高(或最低,如果使用损失函数)得分的参数。

GridSearchCV将在内部进行交叉验证。可以在param_grid中使用{{1}}参数提供估算器的参数。

您的疑问:

  1. 评分 - 您可以传递任何可用的字符串on this page(具体取决于您的分类器)。或者您可以使用make_scorer传递自己的自定义记分员。
  2. CV - cv相同。您可以为多次折叠交叉验证或cv对象传递数字。您可以在this page查看可用的cv迭代器。