Sklearn和GridSearchCV-是否期望返回最佳参数



我一直在Scikit Learn中优化SVR模型,但无法理解如何利用GridSearchCV。

考虑一下文档中提供的示例代码的一个稍微修改过的例子:

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

由于我指定搜索最佳C值仅包括1.5和10,因此我希望模型返回使用这两个值中的一个。然而,当我查看输出时,情况似乎并非如此:

{'cv': None,
 'estimator': SVC(C=1.0, cache_size=200, class_weight=None, coef0=0.0, degree=3, gamma=0.0,
   kernel='rbf', max_iter=-1, probability=False, random_state=None,
   shrinking=True, tol=0.001, verbose=False),
 'estimator__C': 1.0,
 'estimator__cache_size': 200,
 'estimator__class_weight': None,
 'estimator__coef0': 0.0,
 'estimator__degree': 3,
 'estimator__gamma': 0.0,
 'estimator__kernel': 'rbf',
 'estimator__max_iter': -1,
 'estimator__probability': False,
 'estimator__random_state': None,
 'estimator__shrinking': True,
 'estimator__tol': 0.001,
 'estimator__verbose': False,
 'fit_params': {},
 'iid': True,
 'loss_func': None,
 'n_jobs': 1,
 'param_grid': {'C': [1.5, 10], 'kernel': ('linear', 'rbf')},
 'pre_dispatch': '2*n_jobs',
 'refit': True,
 'score_func': None,
 'scoring': None,
 'verbose': 0}

我怀疑我对GridSearchCV有一个根本的误解,即如何使用它,以及我期望它返回什么。我本以为它会根据我的搜索选择返回一个具有优化参数的分类器,但事实并非如此。

如有任何指导,我们将不胜感激。

非常感谢。

此处不应使用get_params。使用CCD_ 2或CCD_。get_params会给你返回你给它的构造函数参数。其中一个是估计器,你给它一个带有默认参数的SVC,这就是你在这里看到的。这与网格搜索中尝试的参数无关。

如果你看一下这些例子(例如,看一下开发文档的底部),你永远不会看到在GridSearchCV上使用get_params——我想,实际上从来没有;)它是定义GridSearchCV如何使用其他估计器的接口。

相关内容

  • 没有找到相关文章

最新更新