如果您稍微添加数据,它就会起作用:
y_true = np.array([[1,0,0,0], [1,1,0,0], [1,1,1,1]])
y_pred = np.array([[1,0,0,0], [1,1,1,0], [1,1,1,1]])
recall_score(y_true=y_true, y_pred=y_pred, average='weighted')
>>> 1.0
precision_score(y_true=y_true, y_pred=y_pred, average='weighted')
>>> 0.9285714285714286
f1_score(y_true=y_true, y_pred=y_pred, average='weighted')
>>> 0.95238095238095244
数据表明我们没有错过任何真阳性,也没有预测到任何假阴性(recall_score
等于 1)。然而,我们在第二次观察中预测了一个误报,导致precision_score
等于~0.93。
As both precision_score
and recall_score
不为零weighted
范围,f1_score
,因此,存在。由于示例中缺乏信息,我认为您的案例无效。