AttributeError:'GridSearchCV'对象没有属性'cv_results_'

时间:2017-01-07 17:50:22

标签: python machine-learning scikit-learn text-mining

我尝试应用此代码:

pipe = make_pipeline(TfidfVectorizer(min_df=5), LogisticRegression())
param_grid = {'logisticregression__C': [ 0.001, 0.01, 0.1, 1, 10, 100],
              "tfidfvectorizer__ngram_range": [(1, 1),(1, 2),(1, 3)]} 

grid = GridSearchCV(pipe, param_grid, cv=5)
grid.fit(text_train, Y_train)

scores = grid.cv_results_['mean_test_score'].reshape(-1, 3).T
# visualize heat map
heatmap = mglearn.tools.heatmap(
scores, xlabel="C", ylabel="ngram_range", cmap="viridis", fmt="%.3f",
xticklabels=param_grid['logisticregression__C'],
yticklabels=param_grid['tfidfvectorizer__ngram_range'])
plt.colorbar(heatmap)

但我有这个错误:

AttributeError: 'GridSearchCV' object has no attribute 'cv_results_'

4 个答案:

答案 0 :(得分:11)

更新您的scikit-learn,cv_results_已在0.18.1中引入,之前称为grid_scores_,结构略有不同http://scikit-learn.org/0.17/modules/generated/sklearn.grid_search.GridSearchCV.html#sklearn.grid_search.GridSearchCV

答案 1 :(得分:3)

解决了! 在0.18.1 How to upgrade scikit-learn package in anaconda中卸载并安装 conda scikit learn

当我导入GridSearch时:

from sklearn.model_selection import GridSearchCV

答案 2 :(得分:1)

从sklearn.model_selection导入GridSearchCV

使用此clf.cv_results_

答案 3 :(得分:-2)

首先,你应该使用:

更新你的scklearn
pip install -U scikit-learn

之后,检查您是否包含错误的模块:

from sklearn.grid_search import GridSearchCV

更改为新路径:

from sklearn.model_selection import GridSearchCV

(这是正确的方式)