【问题标题】:ValueError: 'balanced_accuracy' is not a valid scoring value in scikit-learnValueError:“balanced_accuracy”不是 scikit-learn 中的有效评分值
【发布时间】:2019-04-20 07:39:56
【问题描述】:

我尝试将其他评分指标传递给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','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

【问题讨论】:

  • 请发布相关代码 - 因为它是,没有足够的细节来有意义地回答问题。同时发布您的 scikit-learn 版本(您可以通过 sklearn.__version__) 获取)
  • 谢谢我加了代码和scikit-learn版本

标签: python machine-learning scikit-learn metrics


【解决方案1】:

如果您想使用balanced_accuracy,请将您的 sklearn 更新到最新版本。从0.19 documentation 可以看出,balanced_accuracy 不是有效的评分指标。是added in 0.20

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2020-12-07
  • 2018-05-14
  • 2016-04-04
  • 2017-10-21
  • 2017-04-30
  • 2020-05-31
  • 2014-08-09
相关资源
最近更新 更多