ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

python – GridSearchCV是否执行交叉验证?

2019-09-28 17:06:03  阅读:374  来源: 互联网

标签:cross-validation grid-search python scikit-learn machine-learning


我目前正在研究一个问题,该问题比较了同一数据集上三种不同的机器学习算法性能.我将数据集划分为70/30个训练/测试集,然后使用GridSearchCV和X_train,y_train对每个算法的最佳参数进行网格搜索.

第一个问题,我想在训练集上进行网格搜索还是假设在整个数据集上?

第二个问题,我知道GridSearchCV在其实现中使用K-fold,是否意味着如果我在GridSearchCV中使用相同的X_train,y_train进行所有三种算法,我都会执行交叉验证?

任何答案都将不胜感激,谢谢.

解决方法:

名称以CV结尾的scikit中的所有估计器执行交叉验证.
但是您需要保留一个单独的测试集来测量性能.

因此,您需要将整个数据拆分为训练和测试.暂时忘掉这个测试数据.

然后将此列车数据仅传递给网格搜索. GridSearch将此列车数据进一步分解为训练和测试,以调整传递给它的超参数.最后使用最佳参数将模型拟合到整个列车数据上.

现在,您需要在开始时保留的测试数据上测试此模型.这将为您提供近乎真实的模型性能.

如果您将整个数据用于GridSearchCV,那么测试数据会泄漏到参数调整中,然后最终模型可能无法在较新的未见数据上表现良好.

您可以查看我更详细描述GridSearch的其他答案:

> Model help using Scikit-learn when using GridSearch
> scikit-learn GridSearchCV with multiple repetitions

标签:cross-validation,grid-search,python,scikit-learn,machine-learning
来源: https://codeday.me/bug/20190928/1828390.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有