sklearn:在gridsearchCV / Pipeline中为F1得分提供参数

时间:2020-04-02 10:14:36

标签: python scikit-learn pipeline multiclass-classification gridsearchcv

我已经设置了一个sklearn.GridsearchCV作为估计量的Pipeline。我的问题是多类分类。我显然收到此错误:

ValueError: Target is multiclass but average='binary'. Please choose another average setting, one of [None, 'micro', 'macro', 'weighted'].

这是因为我使用F1得分而不设置average参数。我的问题是我应该在哪里将该参数传递给对象?

我的代码:

estimator = GridSearchCV(
    estimator=Pipeline(setting['layers']),
    param_grid=setting['hyper_parameters'],
    cv=cv,
    scoring=self.scoring,
    refit=self.refit_metric,
    n_jobs=n_jobs,
    return_train_score=True,
    verbose=True
)

然后:

estimator.fit(
    self.x_train,
    self.y_train
)

.fit()行上引发了错误,但是我想我在实例化GridsearchCV时应该传递参数。

1 个答案:

答案 0 :(得分:1)

对于scoring的{​​{1}}参数,您可以例如通过GridSearchCV作为字符串。这应该够了吧。您可以查看sklearn docs中的可能值。