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

Posted

技术标签:

【中文标题】搜索估计器参数返回的结果不在网格中?【英文标题】:Searching for estimator parameters returns results not in grid? 【发布时间】:2016-04-07 18:02:16 【问题描述】:

我正在使用 sklearn 并正在微调我的 SVM,但是当我尝试执行 GridSearchCV 时,我得到了我什至没有网格搜索的参数!

举个例子:

parameters = 'kernel':['linear'], 'C': [10, 100, 1000]
cv = cross_validation.ShuffleSplit(len(X), n_iter=4, test_size=0.1, random_state=None)
svr = SVC()
clf = grid_search.GridSearchCV(svr, parameters, cv=cv)
clf.fit(X,Y) #X,Y are my two datasets

当我运行clf.get_params() 时,我得到:

n_jobs : 1
verbose : 0
estimator__gamma : auto
estimator__decision_function_shape : None
estimator__probability : False
param_grid : 'kernel': ['linear'], 'C': [10, 100, 1000]
cv : ShuffleSplit(120, n_iter=4, test_size=0.1, random_state=None)
scoring : None
estimator__cache_size : 200
estimator__verbose : False
pre_dispatch : 2*n_jobs
estimator__kernel : rbf
fit_params : 
estimator__max_iter : -1
refit : True
iid : True
estimator__shrinking : True
estimator__degree : 3
estimator__class_weight : None
estimator__C : 1.0
estimator__random_state : None
estimator : SVC(C=1.0, cache_size=200, class_weight=None, coef0=0.0,
  decision_function_shape=None, degree=3, gamma='auto', kernel='rbf',
  max_iter=-1, probability=False, random_state=None, shrinking=True,
  tol=0.001, verbose=False)
estimator__coef0 : 0.0
error_score : raise
estimator__tol : 0.001

它每次都给我一个 C 值 1 和 rbf 内核。是不是我做错了什么?

【问题讨论】:

【参考方案1】:

我意识到,在尝试获取最佳估算器参数时,必须使用best_params_ 属性。

通过说:

print(clf.best_params_)

我得到了最好的网格搜索参数。任何人都可以输入estimator 值的含义(例如estimator_C1.0)吗?

【讨论】:

以上是关于搜索估计器参数返回的结果不在网格中?的主要内容,如果未能解决你的问题,请参考以下文章

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

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

GridSearchCV 估计器 LogisticRegression 的参数 gamma 无效

ValueError:估计器 LogisticRegression 的参数求解器无效

使用网格搜索的交叉验证返回的结果比默认值差

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