我正在尝试在GridSearchCV中使用多个度量标准。我的项目需要多个指标,包括“准确率”和“F1得分”。然而,在遵循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.
此外,如果你能解释多度量评估或者给我推荐一些能够解释这个问题的人,我将不胜感激!
谢谢。