sklearn:在 gridsearchCV/Pipeline 中将参数赋予 F1 分数
sklearn: give param to F1 score in gridsearchCV/Pipeline
我设置了一个 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
时传递参数。
对于 GridSearchCV
的 scoring
参数,您可以只传递例如f1_weighted
作为一个字符串。这应该够了吧。您可以查看 sklearn docs 以了解可能的值。
我设置了一个 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
时传递参数。
对于 GridSearchCV
的 scoring
参数,您可以只传递例如f1_weighted
作为一个字符串。这应该够了吧。您可以查看 sklearn docs 以了解可能的值。