GridSearchCV是否存储所有参数组合的所有分数?

问题描述:

GridSearchCV使用'评分'来选择最佳评估者。在训练GridSearchCV之后,我想看看每个组合的得分。 GridSearchCV是否存储每个参数组合的所有分数?如果它确实如何获得分数?谢谢。GridSearchCV是否存储所有参数组合的所有分数?

这是我在另一篇文章中使用的示例代码。

from sklearn.feature_extraction.text import CountVectorizer 
from sklearn.feature_extraction.text import TfidfTransformer 
from sklearn.grid_search import GridSearchCV 
from sklearn.pipeline import Pipeline 
from sklearn.naive_bayes import MultinomialNB 

X_train = ['qwe rtyuiop', 'asd fghj kl', 'zx cv bnm', 'qw erty ui op', 'as df ghj kl', 'zxc vb nm', 'qwe rt yu iop', 'asdfg hj kl', 'zx cvb nm', 
      'qwe rt yui op', 'asd fghj kl', 'zx cvb nm', 'qwer tyui op', 'asd fg hjk l', 'zx cv b nm', 'qw ert yu iop', 'as df gh jkl', 'zx cvb nm', 
      'qwe rty uiop', 'asd fghj kl', 'zx cvbnm', 'qw erty ui op', 'as df ghj kl', 'zxc vb nm', 'qwe rtyu iop', 'as dfg hj kl', 'zx cvb nm', 
      'qwe rt yui op', 'asd fg hj kl', 'zx cvb nm', 'qwer tyuiop', 'asd fghjk l', 'zx cv b nm', 'qw ert yu iop', 'as df gh jkl', 'zx cvb nm']  

y_train = ['1', '2', '3', '1', '1', '3', '1', '2', '3', 
      '1', '2', '3', '1', '4', '1', '2', '2', '4', 
      '1', '2', '3', '1', '1', '3', '1', '2', '3', 
      '1', '2', '3', '1', '4', '1', '2', '2', '4']  


parameters = { 
       'clf__alpha': (1e-1, 1e-2), 
       'vect__ngram_range': [(1,2),(1,3)], 
       'vect__max_df': (0.9, 0.98) 
      } 

text_clf_Pipline_MultinomialNB = Pipeline([('vect', CountVectorizer()), 
              ('tfidf', TfidfTransformer()), 
              ('clf', MultinomialNB()),      
              ]) 
gs_clf = GridSearchCV(text_clf_Pipline_MultinomialNB, parameters, n_jobs=-1) 

gs_classifier = gs_clf.fit(X_train, y_train) 

是它,正是因为它在docs说:

grid_scores_:命名元组

的列表包含分数在param_grid所有参数 组合。每个条目对应于一个参数 设置。每个命名元组有属性:

  • parameters,参数设置的字典
  • mean_validation_score,平均得分超过了交叉验证折
  • cv_validation_scores,得分为每个倍
列表
+0

谢谢你的另一个很好的答案。这正是我正在寻找的。 – Bin

+5

从Sklearn 0.18.1开始,'grid_scores_'已被弃用,以支持更完整的'cv_results_'。 – rubik