7 个用于超参数调优的 Scikit-learn 技巧

准备好学习这 7 个 Scikit-learn 技巧,将您的机器学习模型的超参数调整技能提升到一个新的水平吗?

来源:KDnuggets

简介

在某种程度上,调整机器学习模型中的超参数是一门艺术或工艺,需要正确的技能来平衡经验、直觉和大量实验。在实践中,这个过程有时可能会显得令人畏惧,因为复杂的模型具有很大的搜索空间,超参数之间的交互很复杂,并且由于调整而带来的性能提升有时是微妙的。

下面,我们整理了一个列表,其中包含 7 个 Scikit-learn 技巧,可将机器学习模型的超参数调整技能提升到新的水平。

1. 用领域知识约束搜索空间

不限制原本巨大的搜索空间就意味着大海捞针!借助领域知识——或者必要时求助领域专家——首先为模型中的一些相关超参数定义一组精心选择的界限。这将有助于降低复杂性并增加运行过程的可行性,排除不合理的设置。

随机森林示例中两个典型超参数的示例网格可能如下所示:

param_grid = {"max_depth": [3, 5, 7], "min_samples_split": [2, 10]}

2. 从广泛的随机搜索开始

对于低预算环境,尝试利用随机搜索,这是一种探索大型搜索空间的有效方法,通过结合对某些超参数值范围进行采样的分布驱动采样过程。就像在这个例子中对 C 进行采样一样,即控制 SVM 模型边界刚性的超参数:

param_dist = {"C": loguniform(1e-3, 1e2)}

RandomizedSearchCV(SVC(), param_dist, n_iter=20)

3. 使用网格搜索进行本地优化

通过随机搜索找到有希望的区域后,有时应用窄焦点网格搜索来进一步探索这些区域以确定边际收益是个好主意。首先是探索,其次是利用。
GridSearchCV(SVC(), {"C": [5, 10], "gamma": [0.01, 0.1]})GridSearchCV(模型, 参数, cv=5)