【发布时间】:2021-09-04 09:30:51
【问题描述】:
我需要了解这个函数如何解决多标签问题。
我尝试计算准确性以达到相同的结果,但我做不到。 它是如何工作的?
这个数据集中有4个标签,y_array是真实的,y_pred是预测的数组。 y是这样的; [0,1,1,1], [1,0,0,0] ...
tp = 0
tn = 0
fn = 0
fp = 0
for i in range(len(y_array)):
for j in range(4) :
#True
if ( y_array[i][j] == 1 ) and (y_pred[i][j] == 1 ) :
tp = tp + 1
elif ( y_array[i][j] == 0 ) and (y_pred[i][j] == 0 ) :
tn = tn + 1
#False
elif ( y_array[i][j] == 0 ) and (y_pred[i][j] == 1 ) :
fn = fn + 1
elif ( y_array[i][j] == 1 ) and (y_pred[i][j] == 0 ) :
fp = fp + 1
ac = (tp+tn)/(tp+tn+fp+fn)
print("Accuracy", ac)
print('Accuracy: {0}'.format(accuracy_score(y_array, y_pred)))
它们彼此不同,我如何计算这个多标签问题的准确性或其他指标? 使用 sklearn 准确度指标有错吗?
准确度 0.9068711367973193
准确度:0.7134998676125521
【问题讨论】:
-
我不明白
y = [0,1,1,1]。可以取多个值吗? -
y 是一个所有元素都有 4 个值的数组。这个问题是一个多标签分类问题。
-
@MonkeyDLuffy 想象一个人脸识别算法,它想查看视频中是否出现了卢卡斯、梅西、约翰和克里斯蒂娜。该算法将返回一个数组 y=[0, 1, 1, 1] 在 Macy、John 和 Christina(如果我们尊重我之前提到的人的先前顺序)实际出现在视频中的情况下,但 Lucas 没有t.
标签: pandas scikit-learn