AttributeError:“GridSearchCV”对象没有属性“best_estimator_”
Posted
技术标签:
【中文标题】AttributeError:“GridSearchCV”对象没有属性“best_estimator_”【英文标题】:AttributeError: 'GridSearchCV' object has no attribute 'best_estimator_' 【发布时间】:2016-03-15 08:00:54 【问题描述】:我正在使用网格搜索来调整模型的参数(随机森林、线性回归等)。所以我把gs
对象保存在grid_searches
中:
gs = GridSearchCV(model, params, cv=cv, n_jobs=n_jobs,
verbose=verbose, scoring="mean_squared_error", refit=refit)
gs.fit(trainX,trainy)
grid_searches[key] = gs
然后我想访问每个模型的最佳估计器以进行预测:
def predict(testX, testy, grid_searches):
keys = models.keys()
for k in keys:
print("Predicting with %s." % k)
yhat = grid_searches[k].best_estimator_.predict(testX)
错误如下:
AttributeError: 'GridSearchCV' object has no attribute 'best_estimator_'
那么我应该如何使用 Grid Search 找到的最佳模型进行预测?
【问题讨论】:
你应该只能使用grid_searches[k].predict(testX)
。调用gs.fit(...)
后,gs
应该有优化的参数(基于搜索空间)。如果您只尝试grid_searches[k].predict(...)
,会发生什么?另外,如果在gs.fit(...)
下添加一行print gs.best_estimator_
,会发生什么?
【参考方案1】:
不清楚,从代码摘录中,你如何设置refit
。根据docs,best_estimator_
仅在True
时可用。如果False
,您应该仍然能够从grid_scores_
中找到性能最佳的参数,然后将它们与set_params()
一起使用。
【讨论】:
以上是关于AttributeError:“GridSearchCV”对象没有属性“best_estimator_”的主要内容,如果未能解决你的问题,请参考以下文章
初学者 Python:AttributeError:'list' 对象没有属性
AttributeError: 'RDD' 对象没有属性 'show'
AttributeError:“NumpyArrayIterator”对象没有属性“类”