Python 在scikit学习中,平衡精度不是有效的评分值

Python 在scikit学习中,平衡精度不是有效的评分值,python,scikit-learn,Python,Scikit Learn,这篇文章的超级高手: 我正在使用: scoring = ['precision_macro', 'recall_macro', 'balanced_accuracy_score'] clf = DecisionTreeClassifier(random_state=0) scores = cross_validate(clf, X, y, scoring=scoring, cv=10, return_train_score=True) 我收到了错误信息: ValueError:“平衡精度分数”

这篇文章的超级高手:

我正在使用:

scoring = ['precision_macro', 'recall_macro', 'balanced_accuracy_score']
clf = DecisionTreeClassifier(random_state=0)
scores = cross_validate(clf, X, y, scoring=scoring, cv=10, return_train_score=True)
我收到了错误信息:

ValueError:“平衡精度分数”不是有效的评分值。 使用排序(sklearn.metrics.SCORERS.keys())获取有效选项

我使用了推荐的解决方案并升级了scikit(在环境中):

当我检查可能的得分手时:

sklearn.metrics.SCORERS.keys()
dict_keys(['explained_variance', 'r2', 'max_error', 'neg_median_absolute_error', 'neg_mean_absolute_error', 'neg_mean_squared_error', 'neg_mean_squared_log_error', 'neg_root_mean_squared_error', 'neg_mean_poisson_deviance', 'neg_mean_gamma_deviance', 'accuracy', 'roc_auc', 'roc_auc_ovr', 'roc_auc_ovo', 'roc_auc_ovr_weighted', 'roc_auc_ovo_weighted', 'balanced_accuracy', 'average_precision', 'neg_log_loss', 'neg_brier_score', 'adjusted_rand_score', 'homogeneity_score', 'completeness_score', 'v_measure_score', 'mutual_info_score', 'adjusted_mutual_info_score', 'normalized_mutual_info_score', 'fowlkes_mallows_score', 'precision', 'precision_macro', 'precision_micro', 'precision_samples', 'precision_weighted', 'recall', 'recall_macro', 'recall_micro', 'recall_samples', 'recall_weighted', 'f1', 'f1_macro', 'f1_micro', 'f1_samples', 'f1_weighted', 'jaccard', 'jaccard_macro', 'jaccard_micro', 'jaccard_samples', 'jaccard_weighted'])
我还是找不到?问题出在哪里?

根据,与
“平衡精度”
对应的
评分参数的值与我的另一个答案相同:

更改:

scoring = ['precision_macro', 'recall_macro', 'balanced_accuracy_score']
致:

它应该会起作用


我确实发现文档在这方面有点欠缺,而且删除
\u score
后缀的惯例也不一致,因为所有集群度量在其
评分
参数值中的名称中仍然有
\u score

也许您的代码仍然依赖于旧版本?试着打印Sklearn的版本在jupyter笔记本中打印它的命令是什么?
scoring = ['precision_macro', 'recall_macro', 'balanced_accuracy']