每个样本的唯一true/false损失



对于二进制预测问题,如果真标签为0,则正确预测的增益为t_0,错误的PRE的损失为f_0。1,T_1,F_1。

每个样本都有其唯一的T_0,T_1,F_0,F_1。我认为我需要更改评估指标,但我不知道该怎么做。因为大多数自定义评估公制输入(pred,true标签),您知道如何解决问题?

我认为,一项工作就是简单地将四个值 T_0,T_1,F_0,F_1附加到地面真理本身。由于评估指标只能使用一次,即在培训分类器时,您的目标可以伴随。

假设您以某种方式从

更改您的真实标签
[1, 0, 1, 1, 0, 0]

[ [1,[T_0, F_0, T_1, F_1]],
  [0,[T_0, F_0, T_1, F_1]],
  [1,[T_0, F_0, T_1, F_1]],
  [1,[T_0, F_0, T_1, F_1]],
  [0,[T_0, F_0, T_1, F_1]],
  [0,[T_0, F_0, T_1, F_1]] ] 

即。每个地面真实值都伴随着一个由T_0,T_1,F_0,F_1组成的阵列。

现在您可以这样定义您的指标:

def my_metric(y_pred,y_true):
    tot_sum = 0.0
    for idx in range(0,len(y_pred):
        if y_true[idx][0]==0:
            if y_pred[idx]==0:
                total_sum+=y_pred[idx][1][0]   #Add gain for T_0
            else:
                total_sum-=y_pred[idx][1][1]   #Subtract loss for F_0
        else:
            if y_pred[idx]==1:
                total_sum+=y_pred[idx][1][2]   #Add gain for T_1
            else:
                total_sum-=y_pred[idx][1][3]   #Subtract loss for F_1
return total_sum

我认为也可能有一种有效的方法可以使用numpy进行此操作,如果找到某些内容,我将更新答案。但是,只要正确地将价值添加到地面真理,这应该可以正常工作。

最新更新