在 GridSearchCV 中使用多指标评估
Using Multiple Metric Evaluation with GridSearchCV
我正在尝试在 GridSearchCV 中使用多个指标。我的项目需要多个指标,包括 "accuracy" 和 "f1 score"。但是,在遵循 sklearn 模型和在线帖子之后,我似乎无法正常工作。这是我的代码:
from sklearn.model_selection import GridSearchCV
from sklearn.metrics import f1_score
clf = KNeighborsClassifier()
param_grid = {'n_neighbors': range(1,30), 'algorithm': ['auto','ball_tree','kd_tree', 'brute'], 'weights': ['uniform', 'distance'],'p': range(1,5)}
#Metrics for Evualation:
met_grid= ['accuracy', 'f1'] #The metric codes from sklearn
custom_knn = GridSearchCV(clf, param_grid, scoring=met_grid, refit='accuracy', return_train_score=True)
custom_knn.fit(X_train, y_train)
y_pred = custom_knn.predict(X_test)
我的错误发生在 custom_knn.fit(X_train,y_train)
。此外,如果您注释掉 scoring=met_grid, refit='accuracy', return_train_score=True
,它会起作用。
这是我的错误:
ValueError: Target is multiclass but average='binary'. Please choose another average setting.
此外,如果您能解释多重指标评估或将我介绍给可以做到这一点的人,我们将不胜感激!
谢谢
f1
是二进制 class化度量。 multi-class classification,你必须根据不同的聚合使用averaged f1
。您可以在 Sklearn here.
中找到详尽的评分列表
试试这个!
scoring = ['accuracy','f1_macro']
custom_knn = GridSearchCV(clf, param_grid, scoring=scoring,
refit='accuracy', return_train_score=True,cv =3)
我正在尝试在 GridSearchCV 中使用多个指标。我的项目需要多个指标,包括 "accuracy" 和 "f1 score"。但是,在遵循 sklearn 模型和在线帖子之后,我似乎无法正常工作。这是我的代码:
from sklearn.model_selection import GridSearchCV
from sklearn.metrics import f1_score
clf = KNeighborsClassifier()
param_grid = {'n_neighbors': range(1,30), 'algorithm': ['auto','ball_tree','kd_tree', 'brute'], 'weights': ['uniform', 'distance'],'p': range(1,5)}
#Metrics for Evualation:
met_grid= ['accuracy', 'f1'] #The metric codes from sklearn
custom_knn = GridSearchCV(clf, param_grid, scoring=met_grid, refit='accuracy', return_train_score=True)
custom_knn.fit(X_train, y_train)
y_pred = custom_knn.predict(X_test)
我的错误发生在 custom_knn.fit(X_train,y_train)
。此外,如果您注释掉 scoring=met_grid, refit='accuracy', return_train_score=True
,它会起作用。
这是我的错误:
ValueError: Target is multiclass but average='binary'. Please choose another average setting.
此外,如果您能解释多重指标评估或将我介绍给可以做到这一点的人,我们将不胜感激!
谢谢
f1
是二进制 class化度量。 multi-class classification,你必须根据不同的聚合使用averaged f1
。您可以在 Sklearn here.
试试这个!
scoring = ['accuracy','f1_macro']
custom_knn = GridSearchCV(clf, param_grid, scoring=scoring,
refit='accuracy', return_train_score=True,cv =3)