首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >NumPy的假阳性率

NumPy的假阳性率
EN

Stack Overflow用户
提问于 2022-03-26 13:08:49
回答 1查看 122关注 0票数 0

对于多类分类,我只能用numpy方法来计算假阳性率。我有两个numpy数组,一个用于预测((m,k)形状:m是样本元素的计数,k是类别的计数),另一个用于真正的标签((m,)形状)。

我已经做了什么:确定所有行(prediction_labels数组)的预测(正)元素indeces,为唯一类别(true_labels)创建一个集合。

我想要做的是:在同一时间迭代prediction_labels和y_true数组,并计算给定元素(true_labels中的每个唯一值)在相同位置上是否相等。因此,我想确定数组(false_positive_counts)中按类别划分的假阳性计数。

例如:

代码语言:javascript
运行
AI代码解释
复制
def false_positive_rate(y_pred, y_true):
    prediction_labels = np.argmax(y_pred, axis=1)
    true_labels = np.unique(y_true)
    false_positive_counts = ... # ?
    ...
    return fpr

y_pred = np.array([[1., 0., 0., 0.],
                   [1., 0., 0., 0.], 
                   [0., 0., 1., 0.],
                   [0., 0., 1., 0.],
                   [0., 1., 0., 0.],
                   [0., 0., 0., 1.],
                  ])  # [0,0,2,2,1,3]
y_true = np.array([0, 2, 1, 1, 1, 3])
print(false_positive_rate(y_pred, y_true))   # 3/20
EN

回答 1

Stack Overflow用户

发布于 2022-03-26 20:28:02

你的预测是肯定的,也是消极的。但是,答案并不是虚假的。

因此,您的FPR始终是1。

代码语言:javascript
运行
AI代码解释
复制
def false_positive_rate(y_pred_raw, y_true):
    y_pred = np.argmax(y_pred_raw, axis=1)
    TP, FP, FN, TN = 0,0,0,0
    for pp, tt in zip(y_pred, y_true):
        if   pp==tt: TP+=1;
        elif pp!=tt: FP+=1;
        # there is no case for FN, TN
    print(f"TP={TP}, FP={FP}, FN={FN}, TN={TN}");
    FPR = FP/ (TN+FP);
    return FPR
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71631841

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档