balanced_accuracy_score#

sklearn.metrics.balanced_accuracy_score(y_true, y_pred, *, sample_weight=None, adjusted=False)[source]#

计算平衡准确率。

平衡准确率用于处理二分类和多分类问题中不平衡数据集。它被定义为在每个类别上获得的召回率的平均值。

adjusted=False 时,最佳值为 1,最差值为 0。

用户指南中阅读更多内容。

0.20 版本新增。

参数:
y_true形状为 (n_samples,) 的类数组

真实(正确)的目标值。

y_pred形状为 (n_samples,) 的类数组

分类器返回的估计目标值。

sample_weight形状为 (n_samples,) 的类数组,默认为 None

样本权重。

adjusted布尔值,默认为 False

当为 True 时,结果会根据偶然性进行调整,使得随机性能得分为 0,同时将完美性能保持在 1。

返回:
balanced_accuracy浮点数

平衡准确率分数。

另请参阅

average_precision_score

根据预测分数计算平均精确度(AP)。

precision_score

计算精确率分数。

recall_score

计算召回率分数。

roc_auc_score

根据预测分数计算受试者工作特征曲线下面积(ROC AUC)。

备注

一些文献提出了平衡准确率的其他定义。我们的定义等同于使用类别平衡样本权重的 accuracy_score,并与二分类情况共享理想特性。请参阅用户指南

参考文献

[1]

Brodersen, K.H.; Ong, C.S.; Stephan, K.E.; Buhmann, J.M. (2010). 平衡准确率及其后验分布。《第20届国际模式识别会议论文集》,3121-24页。

[2]

John. D. Kelleher, Brian Mac Namee, Aoife D’Arcy, (2015). 《预测数据分析的机器学习基础:算法、实例和案例研究》

示例

>>> from sklearn.metrics import balanced_accuracy_score
>>> y_true = [0, 1, 0, 0, 1, 0]
>>> y_pred = [0, 1, 0, 0, 0, 1]
>>> balanced_accuracy_score(y_true, y_pred)
0.625