超参数估计的随机搜索和网格搜索的比较

Posted

技术标签:

【中文标题】超参数估计的随机搜索和网格搜索的比较【英文标题】:Comparison between randomised search and grid search for hyper-parameter estimation 【发布时间】:2018-11-08 22:15:55 【问题描述】:

我想进行超参数调整,为此,我想使用 RandomizedSearchCV 或 GridSearchCV。我尝试运行随机森林分类器的两种方法。

我发现网格搜索将搜索我的参数网格的所有可能组合,但随机搜索仅搜索 10 种可能的组合。假设它采用任意 10 个随机参数集,它可能会给我错误的最佳参数。另一方面,如果我使用 GridSearch 方法,那么它会给我很大的运行时间。现在,我对这两种方法感到困惑。我应该使用哪个?或者我可以做一些改变,在可接受的运行时给我最好的参数吗?

【问题讨论】:

请解释您的用例。如果您需要所有组合,那么使用随机搜索有什么意义? @JoeSebin 对不起,如果我不清楚。但我想获得最佳参数。但是我的问题是随机搜索可能不会给我这个,并且网格搜索需要很多时间。那么,我能做些什么来在可接受的时间内获得最佳参数吗? 我建议你尝试阅读No Free Lunch Theorem。 【参考方案1】:

超参数调整方案取决于您的应用程序。至于网格搜索和随机搜索:

当您拥有少量超参数并且每个超参数对验证分数的影响程度大致相同时,网格搜索效果很好

当影响的大小不平衡时,随机搜索是更好的选择,随着参数数量的增加,这种情况更有可能发生

来源:deeplearning.ai hparam 调优课程here

其他调优方案包括

Coarse to Fine 粗略:使用网格的样本首先粗略搜索超参数空间,并集中验证分数较高的样本 使用高斯过程进行贝叶斯优化:here

【讨论】:

以上是关于超参数估计的随机搜索和网格搜索的比较的主要内容,如果未能解决你的问题,请参考以下文章

搜索估计器参数返回的结果不在网格中?

在 Python Bagging Classifier 中将最佳网格搜索超参数分配给最终模型

你能从 sklearn 网格搜索 (GridSearchCV) 中获得所有估计器吗?

Lesson 10.1 超参数优化与枚举网格的理论极限和随机网格搜索 RandomSearchCV

机器学习超参数优化库

使用超网格搜索和 10 倍 CV 调整参数后,随机森林模型的 AUC 较低