sklearn:在gridsearchCV/Peline中为F1分数指定param



我已经用Pipeline作为估计器设置了sklearn.GridsearchCV。我的问题是多类分类。我清楚地收到这个错误:

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时传递参数。

对于GridSearchCVscoring参数,您可以将例如f1_weighted作为字符串传递。这就行了。您可以在sklearn文档中查看可能的值。

最新更新