numpy - sklearn 精确召回分数是否应该为 1D 和 2D 输入提供不同的输出?
问题描述
这似乎不是理想的行为,但我想检查一下。我认为它至少应该打印一个警告。
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
解决方案
这对我来说似乎并没有坏掉。您正在向函数提供不同的数据。唯一的区别是您要匹配的类的数量,而函数关心样本的数量。查看下面的代码。
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])
推荐阅读
- excel - The event where application.onkey is put
- velo - WIX:添加自定义 HTML 或我自己的表单(到另一个网站)
- azure-aks - 如何在 Azure AKS 中为内部负载均衡器分配静态 IP
- java - JAXB @XmlValue 和 @XmlElements
- sql - 在dept表中,出现列错误deptno
- reactjs - 显示带有子类别的数组中的项目的干燥方式
- crystal-reports - 在打印输出上显示行数
- vue.js - 在 vuejs 中动态加载路由不起作用
- passwords - SQLCipher 密码有什么要求?
- r - 从R中的url获取重定向的数量