首页 > 解决方案 > ValueError:“balanced_accuracy”不是 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”不是有效的评分值。有效选项是 ['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','

这很奇怪,因为“balanced_accuracy”应该是有效的, 如果没有定义balanced_accuracy,那么代码就可以正常工作

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

此外,上述错误中的评分指标似乎与文档中的评分指标不同

任何想法为什么?非常感谢

scikit-learn版本是 0.19.2

标签: pythonmachine-learningscikit-learnmetrics

解决方案


如果您想使用balanced_accuracy. 正如您从0.19 文档 balanced_accuracy中看到的那样,它不是一个有效的评分指标。它是在 0.20 中添加的


推荐阅读