0

我正在使用Logistic回归方法进行多类别分类。基本上我知道,如果我用accuracy_score()函数(例如,从sklearn库)将计算我不同值的准确性,独特的值是这样的:在Python中使用Logistic回归的预测向量的准确度得分

y_pred = [0, 2, 1, 3] 
y_true = [0, 1, 2, 3] 
accuracy_score(y_true, y_pred) 
0.5 

但我想要得到的accuracy_score_new()对于每个标签(来自predict_proba)顶部Logistic回归预测的矢量函数,并计算真实的标签是否是在此区间是这样的:

y_pred = [[0,1,3] [2,1,4], [1,2,5] [3,7,9]] 
y_true = [0, 1, 2, 3] 
accuracy_score_new(y_true, y_pred) 
1 

在这个例子中的accuracy_score_new将等于1,因为分类预测该标签在间隔中。这个功能如何完成?

+0

你想使用的任何scikit类中的新功能,或者只是想自己用它来打印新的准确性。如果是后者,那么你可以为它编写简单的python代码。只需遍历这两个数组。 –

回答

1

准确度只是(匹配值/总值)。

所以你的情况就会是这样的:

def accuracy_score_new(y_pred, y_true): 
    matched = 0 
    for y_p, y_t in zip(y_pred, y_true): 
     if y_t in y_p: 
      matched = matched + 1 

    return (matched/(float) len(y_true))