如何在 Python 中找到 GridSearchCV 的所有参数?

Posted

技术标签:

【中文标题】如何在 Python 中找到 GridSearchCV 的所有参数?【英文标题】:How find all parameters for GridSearchCV in Python? 【发布时间】:2016-04-02 12:28:27 【问题描述】:

我想为每个估算器找到完整的参数集:

estimators = [df.svm.SVR(), df.svm.LinearSVR(), df.svm.NuSVR()]

在测试代码中,我只添加了一些细节'kernel':('linear', 'rbf'),在示例中找到:

from sklearn import svm, grid_search, datasets
iris = datasets.load_iris()
parameters = 'kernel':('linear', 'rbf'), 'C':[1, 10]
svr = svm.SVC()
clf = grid_search.GridSearchCV(svr, parameters)
clf.fit(iris.data, iris.target)
...                             

> GridSearchCV(cv=None, error_score=...,
>        estimator=SVC(C=1.0, cache_size=..., class_weight=..., coef0=...,
>                      decision_function_shape=None, degree=..., gamma=...,
>                      kernel='rbf', max_iter=-1, probability=False,
>                      random_state=None, shrinking=True, tol=...,
>                      verbose=False),
>        fit_params=, iid=..., n_jobs=1,
>        param_grid=..., pre_dispatch=..., refit=...,
>        scoring=..., verbose=...)

找到所有可能的参数及其值的最佳方法是什么?

【问题讨论】:

您可以使用svr.get_params() 获取 GridSearchCV 可以调整的所有参数的列表。我不确定是否可以获得可能值的列表(除了阅读文档)。 您使用的参数将根据您使用的算法而改变。随机森林将具有与 K 个最近邻不同的参数,并且两者都将不同于支持向量机。上面的注释显示了如何获取每个参数的 【参考方案1】:

您必须阅读每个方法的文档(或至少通过help( ) 命令的文档字符串)并决定适合哪些参数。特别是,其中许多具有无限数量的可能值(例如 C),因此您无法检查 所有 值。您将需要一些采样。

尤其是除了你之外没有人可以决定是否检查 SVM 中加权样本的多种方式,是否测试多个停止容差参数。

【讨论】:

以上是关于如何在 Python 中找到 GridSearchCV 的所有参数?的主要内容,如果未能解决你的问题,请参考以下文章

使用 python 中的 hypopt 包在 GridSearch 函数中指定评分指标

python GridSearch列表

python 调整超参数算法gridsearch

最佳模型的 GridSearch:保存和加载参数

火炉炼AI机器学习017-使用GridSearch搜索最佳参数组合

GridSearch:必须始终传递“Layer.call”的第一个参数