【问题标题】:sklearn: give param to F1 score in gridsearchCV/Pipelinesklearn:在gridsearchCV / Pipeline中将参数赋予F1分数
【发布时间】:2020-07-14 06:46:45
【问题描述】:

我设置了一个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 时传递参数。

【问题讨论】:

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


    【解决方案1】:

    对于GridSearchCVscoring 参数,您可以传递例如f1_weighted 作为字符串。这应该够了吧。您可以查看sklearn docs 以了解可能的值。

    【讨论】:

    • 啊,我知道我可以给它传递一个像f1 这样的字符串,但是我不太聪明,无法检查值列表!!!非常感谢!
    猜你喜欢
    • 2018-03-21
    • 2020-01-16
    • 1970-01-01
    • 2017-05-07
    • 2017-08-23
    • 2020-05-04
    • 2015-10-15
    • 2017-09-11
    • 2018-09-09
    相关资源
    最近更新 更多