首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python学习(使用grid_search.GridSearchCV)

Python学习(使用grid_search.GridSearchCV)
EN

Stack Overflow用户
提问于 2014-06-06 18:00:29
回答 1查看 3.8K关注 0票数 0

我使用网格搜索来拟合机器学习模型参数。

我输入了以下代码(修改自sklearn文档页:search.GridSearchCV.html)

代码语言:javascript
复制
from sklearn import svm, grid_search, datasets, cross_validation

# getting data
iris = datasets.load_iris()

# grid of parameters
parameters = {'kernel':('linear', 'poly'), 'C':[1, 10]}

# predictive model (support vector machine)
svr = svm.SVC()

# cross validation procedure
mycv = cross_validation.StratifiedKFold(iris.target, n_folds = 2)

# grid search engine
clf = grid_search.GridSearchCV(svr, parameters, mycv)

# fitting engine
clf.fit(iris.data, iris.target)

然而,当我查看clf.estimator时,我得到了以下内容:

代码语言:javascript
复制
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)

我是怎么得到一个“rbf”内核的?我没有在参数中指定它为选项。

到底怎么回事?

谢谢!

我用的是“0.15-git”版本的滑雪。

增编:我注意到clf.best_estimator_给出了正确的输出。那么clf.estimator在做什么呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-06-06 22:43:19

clf.estimator只是作为第一个参数传递给GridSearchCV对象的估计器的副本。任何没有搜索到的参数都是由这个估计量决定的。因为您没有显式地为SVC对象svr设置任何参数,所以它被赋予了所有默认值。因此,由于clf.estimator只是svr的副本,所以打印clf.estimator的值将返回带有默认参数的SVC对象。你不是写了吗,例如,

代码语言:javascript
复制
svr = svm.SVC(C=4.3)

那么clf.estimator的值应该是:

代码语言:javascript
复制
SVC(C=4.3, 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)

用户在访问clf.estimator时没有真正的价值,但无论如何它也不是一个公共属性(因为它没有以“_”结尾)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24088010

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档