ValueError: 'balanced_accuracy' 不是 scikit-learn 中的有效评分值

Lon*_*ong 4 python metrics machine-learning 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)
Run Code Online (Sandbox Code Playgroud)

并得到这个错误

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_owls_mallows', ','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','neg_median_absolute_error','normalized_mutual_sample_precision,'precision_precision,'precision_precision,'precision_precision,'precision,'precision 'precision_weighted','r2','recall','recall_macro','recall_micro','

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

    scoring = ['recall','roc_auc','f1','precision']
Run Code Online (Sandbox Code Playgroud)

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

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

scikit-learn 版本是 0.19.2

Mih*_*aru 5

如果要使用 .sklearn,请将 sklearn 更新到最新版本balanced_accuracy。正如您从0.19 文档中 看到的那样,这balanced_accuracy不是一个有效的评分指标。它是在 0.20添加的