这似乎不是理想的行为,但我想检查一下。我认为它至少应该发出警告。
import numpy as np
import pdb
from sklearn.metrics import average_precision_score as ps
y = np.array([[1,0],[0,1],[1,0], [1,0],[1,0]])
hat = np.array([[0.2,0.8], [0.1,0.9], [0.8,0.2], [0,1], [0,1]])
print ps(y, hat)
print ps(y[:,0], hat[:,0])
#0.516666666667
#0.866666666667
答案 0 :(得分:1)
这对我来说似乎没有问题。您正在将不同的数据输入到函数中。唯一的区别是您要匹配的类的数量,而该函数关心样本的数量。请查看下面的代码。
import numpy as np
import pdb
from sklearn.metrics import average_precision_score as ps
y = np.array([[1,0],[0,1],[1,0], [1,0],[1,0]])
hat = np.array([[0.2,0.8], [0.1,0.9], [0.8,0.2], [0,1], [0,1]])
print y
print hat
print ps(y, hat)
print y[:,0]
print hat[:,0]
print ps(y[:,0], hat[:,0])