使用网格搜索进行 sklearn 交叉验证
sklearn Crossvalidation with GridSearch
问题是:当我使用 GridSearch 进行拟合时,我需要做一些事情来进行交叉验证过程吗?
我知道的事情:
1.- 我可以设置一个评分函数(但不太清楚该怎么做,至少对我来说是这样)
2.- 如果我没有将 'cv' 参数传递给 GridSearch class,那么它会使用默认的 3 折交叉验证。
GridSearch 对我传递的数据到底做了什么?所有数据都在训练中使用还是在训练和测试数据中拆分?
谢谢!
PD:我的 classifier 似乎过度拟合,因为得分为 100%,但新数据的结果不佳。
请看GridSearchCV documentation。它详细描述了你想要的一切。
GridSearch 将在所有给定的参数值上训练给定的估计器,并找到在训练数据上给出最高(或最低,如果使用损失函数)分数的参数。
GridSearchCV
将在内部对 Cross-validation 做同样的事情。估计器的参数可以在 GridSearchCV
中使用 param_grid
参数提供。
您的查询:
- 评分 - 您可以传递任何可用的字符串 on this page (depending on your classifier). Or you can pass your own custom scorer with make_scorer.
- CV - 简历相同。您可以为那么多折叠 cross-validation 或 cv 对象传递一个数字。您可以在 this page.
检查可用的 cv 迭代器
问题是:当我使用 GridSearch 进行拟合时,我需要做一些事情来进行交叉验证过程吗?
我知道的事情:
1.- 我可以设置一个评分函数(但不太清楚该怎么做,至少对我来说是这样)
2.- 如果我没有将 'cv' 参数传递给 GridSearch class,那么它会使用默认的 3 折交叉验证。
GridSearch 对我传递的数据到底做了什么?所有数据都在训练中使用还是在训练和测试数据中拆分?
谢谢!
PD:我的 classifier 似乎过度拟合,因为得分为 100%,但新数据的结果不佳。
请看GridSearchCV documentation。它详细描述了你想要的一切。
GridSearch 将在所有给定的参数值上训练给定的估计器,并找到在训练数据上给出最高(或最低,如果使用损失函数)分数的参数。
GridSearchCV
将在内部对 Cross-validation 做同样的事情。估计器的参数可以在 GridSearchCV
中使用 param_grid
参数提供。
您的查询:
- 评分 - 您可以传递任何可用的字符串 on this page (depending on your classifier). Or you can pass your own custom scorer with make_scorer.
- CV - 简历相同。您可以为那么多折叠 cross-validation 或 cv 对象传递一个数字。您可以在 this page. 检查可用的 cv 迭代器