我正在使用Python 2.7和sklearn 0.16从O'Reilly的书“使用Python进行机器学习简介”中实现一个示例 .
我正在使用的代码:
pipe = make_pipeline(TfidfVectorizer(), 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(X_train, y_train)
print("Best cross-validation score: {:.2f}".format(grid.best_score_))
返回的错误归结为:
ValueError: Invalid parameter logisticregression_C for estimator Pipeline
这是与从v.0.16使用Make_pipeline相关的错误吗?导致此错误的原因是什么?
1 回答
在估算器名称和Pipeline
logisticregression__C
中的参数之间应该有两个下划线 . 为tfidfvectorizer
做同样的事情请参阅http://scikit-learn.org/stable/auto_examples/plot_compare_reduction.html#sphx-glr-auto-examples-plot-compare-reduction-py上的示例