如何使用 sklearn 在 python 中计算平衡精度


平衡准确度是我们可以用来评估分类模型性能的一个指标。

计算方法如下:

平衡准确度= (灵敏度 + 特异性) / 2

金子:

  • 灵敏度:“真阳性率”——模型能够检测到的阳性病例的百分比。
  • 特异性:“真阴性率”——模型能够检测到的阴性病例的百分比。

当两个类不平衡时,即一个类出现的次数比另一类多得多时,该指标特别有用。

例如,假设体育分析师使用逻辑回归模型来预测 400 名不同的大学篮球运动员是否会被选入 NBA。

以下混淆矩阵总结了模型所做的预测:

为了计算模型的平衡精度,我们首先计算灵敏度和特异性:

  • 灵敏度:“真阳性率”= 15 / (15 + 5) = 0.75
  • 特异性:“真阴性率”= 375 / (375 + 5) = 0.9868

然后我们可以计算平衡精度如下:

  • 平衡准确度 = (灵敏度 + 特异性) / 2
  • 平衡精度 = (0.75 + 9868) / 2
  • 平衡精度 = 0.8684

模型的平衡精度为0.8684

以下示例展示了如何使用 Python 中sklearn库中的Balanced_accuracy_score()函数计算此特定场景的平衡精度。

示例:在 Python 中计算平衡精度

以下代码展示了如何定义预测类数组和实际类数组,然后在 Python 中计算模型的平衡精度:

 import numpy as np
from sklearn. metrics import balanced_accuracy_score

#define array of actual classes
actual = np. repeat ([1, 0], repeats=[20, 380])

#define array of predicted classes
pred = np. repeat ([1, 0, 1, 0], repeats=[15, 5, 5, 375])

#calculate balanced accuracy score
balanced_accuracy_score(actual, pred)

0.868421052631579

平衡精度为0.8684 。这与我们之前手动计算的值相符。

注意:您可以在此处找到Balanced_accuracy_score()函数的完整文档。

其他资源

平衡精度简介
如何在 Python 中执行逻辑回归
如何用Python计算F1分数

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注