gpt4 book ai didi

scikit-learn - sklearn 如何计算 precision_score 指标?

转载 作者:行者123 更新时间:2023-12-01 03:31:00 43 4
gpt4 key购买 nike

您好,我正在使用 sklearn,为了更好地理解指标,我遵循了以下 precision_score 示例:

from sklearn.metrics import precision_score
y_true = [0, 1, 2, 0, 1, 2]

y_pred = [0, 2, 1, 0, 0, 1]
print(precision_score(y_true, y_pred, average='macro'))

我得到的结果如下:
0.222222222222

我了解 sklearn 按照以下步骤计算该结果:
  • 标签 0 的精度是 tp/(tp + fp) = 2/(2 + 1) = 0.66
  • 标签 1 的精度为 0/(0 + 2) = 0
  • 标签 2 的精度为 0/(0 + 1) = 0

  • 最后 sklearn 计算所有三个标签的平均精度: precision = (0.66 + 0 + 0) / 3 = 0.22
    如果我们采用以下参数,则会给出此结果:
    precision_score(y_true, y_pred, average='macro')

    另一方面,如果我们采用这个参数,改变 average='micro' :
    precision_score(y_true, y_pred, average='micro') 

    然后我们得到:
    0.33

    如果我们采用 average='weighted':
    precision_score(y_true, y_pred, average='weighted')

    然后我们得到:
    0.22.

    当平均参数设置为“加权”或“微”时,我不太明白 sklearn 如何计算这个指标,如果有人能给我一个明确的解释,我真的很感激。

    最佳答案

    'micro' :

    通过将标签指标矩阵的每个元素视为一个标签来全局计算指标。
    'macro' :

    计算每个标签的指标,并找到它们的未加权平均值。此 不带标签不平衡考虑到。
    'weighted' :

    计算每个标签的指标,并找到它们的平均值,按支持加权(每个标签的真实实例数) .
    'samples' :

    计算每个实例的指标,并找到它们的平均值。

    http://scikit-learn.org/stable/modules/generated/sklearn.metrics.average_precision_score.html

    支持措施:
    http://scikit-learn.org/stable/modules/generated/sklearn.metrics.classification_report.html

    基本上,类(class)成员资格。

    3.3.2.12.接收器操作特性 (ROC)

    函数 roc_curve 计算接收器操作特性曲线或 ROC 曲线。引用维基百科:

    “接收器操作特性 (ROC),或简称为 ROC 曲线,是一个图形图,它说明了二元分类器系统在其鉴别阈值变化时的性能。它是通过在各种阈值设置下绘制阳性中真阳性的比例(TPR = 真阳性率)与阴性中的假阳性比例(FPR = 假阳性率)来创建的。 TPR 也称为 灵敏度 ,而 FPR 是 1 减去 特异性或真正的负利率。”

    TN/True Negative:病例为阴性且预测为阴性。

    TP/True Positive:病例为阳性,预测为阳性。

    FN/假阴性:病例为阳性但预测为阴性。

    FP/False Positive:案例为阴性但预测为阳性#基本术语

    confusion = metrics.confusion_matrix(expected, predicted)
    print confusion,"\n"
    TN, FP = confusion[0, 0], confusion[0, 1]
    FN, TP = confusion[1, 0], confusion[1, 1]

    print 'Specificity: ', round(TN / float(TN + FP),3)*100, "\n"
    print 'Sensitivity: ', round(TP / float(TP + FN),3)*100, "(Recall)"

    关于scikit-learn - sklearn 如何计算 precision_score 指标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37659970/

    43 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com