梯度提升 RandomSearchCV 或 GridSearchCV

数据挖掘 机器学习 助推
2022-02-18 01:12:12

在您的算法中,当您使用 Gradient Boosting 时,您更喜欢 RandomSearchCV 还是 GridSearchCV 来优化您的超参数?

感谢您分享您的体验。

1个回答

我认为这取决于您的多维网格的大小。如果它很小,那么您可以做到详尽并进行网格搜索。但是,如果它非常大,并且您的网格搜索计算时间延长太多,那么一定要进行随机搜索。事实上,与网格搜索相比,随机搜索可以探索更大的区域,这是一个优势。

无论如何,对于超参数搜索,有两个键:

  1. 在它运行时对其进行监控,以便在您对结果满意时停止它。这对于随机搜索特别重要。
  2. 将数据分成三部分,训练、交叉验证和测试。评估 cv 集中的超参数搜索。完成后,按他们在那里的表现对他们进行排名,然后在测试中取最佳点并重新评估。您可能会执行所谓的“过度拟合 cv 集”,在这种情况下,测试集中的性能将比 cv 集中的性能显着恶化。如果发生这种情况,请尝试使用第二好的、第三好的等,直到测试集中的性能良好。但要考虑到,您从排名中获得的分数越多,“过度拟合测试集”的机会就越高。

找到最佳区域后,您可以使用网格搜索或随机搜索再次执行更受约束的区域。

另一种效果很好的选择是贝叶斯优化在这里,您使用的库很重要。在 Python 中,在尝试了几种不同的问题后,我发现最好的是 skopt:https ://scikit-optimize.github.io/