ValueError: 'balanced_accuracy' is not a valid scoring value in scikit-learn

ValueError: 'balanced_accuracy' is not a valid scoring value in scikit-learn

我试图传递给 GridSearchCV 其他评分指标,例如 balanced_accuracy 用于二进制分类(而不是默认值 accuracy

  scoring = ['balanced_accuracy','recall','roc_auc','f1','precision']
  validator = GridSearchCV(estimator=clf, param_grid=param_grid, scoring=scoring, refit=refit_scorer, cv=cv)

遇到这个错误

ValueError: 'balanced_accuracy' is not a valid scoring value. Valid options are ['accuracy','adjusted_mutual_info_score','adjusted_rand_score','average_precision','completeness_score','explained_variance','f1','f1_macro','f1_micro','f1_samples','f1_weighted','fowlkes_mallows_score','homogeneity_score','mutual_info_score','neg_log_loss','neg_mean_absolute_error','neg_mean_squared_error','neg_mean_squared_log_error','neg_median_absolute_error','normalized_mutual_info_score','precision','precision_macro','precision_micro','precision_samples','precision_weighted','r2','recall','recall_macro','recall_micro','recall_samples','recall_weighted','roc_auc','v_measure_score']

这很奇怪,因为 'balanced_accuracy' should be valid 如果不定义 balanced_accuracy 那么代码就可以正常工作

    scoring = ['recall','roc_auc','f1','precision']

此外,上述错误中的评分指标似乎与 document

中的不同

知道为什么吗?非常感谢

scikit-learn版本为0.19.2

如果您想使用 balanced_accuracy,请将您的 sklearn 更新到最新版本。从 0.19 documentation balanced_accuracy is not a valid scoring metric. It was added in 0.20.

可以看出