GridSearchCV 是不是存储所有参数组合的所有分数?
Posted
技术标签:
【中文标题】GridSearchCV 是不是存储所有参数组合的所有分数?【英文标题】:Does GridSearchCV store all the scores for all parameter combinations?GridSearchCV 是否存储所有参数组合的所有分数? 【发布时间】:2016-03-20 09:07:38 【问题描述】: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)
【问题讨论】:
【参考方案1】:是的,正如docs 中所述:
grid_scores_
: 命名元组列表包含所有参数的分数 param_grid 中的组合。每个条目对应一个参数 环境。每个命名元组都有以下属性:
parameters
,参数设置字典mean_validation_score
,交叉验证折叠的平均分数cv_validation_scores
,每折的分数列表
【讨论】:
感谢您的另一个精彩回答。这正是我正在寻找的。span> 从 Sklearn 0.18.1 开始,grid_scores_
已被弃用,取而代之的是更完整的 cv_results_
。
我们也可以访问每个折叠的训练结果以绘制学习曲线吗?
GridSearchCV.cv_results_['params']
是尝试的参数组合数组。 GridSearchCV.cv_results_['mean_test_score']
包含对应的考试成绩【参考方案2】:
allscores=model.cv_results_['mean_test_score']
print(allscores)
【讨论】:
感谢您提供此代码 sn-p,它可能会提供一些有限的即时帮助。 proper explanation would greatly improve its long-term value 通过展示为什么这是一个很好的解决问题的方法,并将使其对未来有其他类似问题的读者更有用。请edit您的回答添加一些解释,包括您所做的假设。 是否可以识别哪些分数映射到哪些参数(在多个分数的情况下)?以上是关于GridSearchCV 是不是存储所有参数组合的所有分数?的主要内容,如果未能解决你的问题,请参考以下文章