python - 使用 numpy 的相似度度量
问题描述
我正在尝试定义我自己的相似性度量,灵感来自 jaccard 相似度得分。我在 jaccard 度量中唯一想要的额外的东西是如果也考虑标签的频率。为此,我编写了以下代码片段:
u = [12,0,3]
v = [24,6,1]
num = 0
den = 0
for i in range(3):
if u[i]!=0 and v[i] != 0:
num+=(u[i]+v[i])
den+=(u[i]+v[i])
print(1 - num/den)
所以我的问题是
- 这可以通过 numpy 的按位运算符来完成吗?
- 我可以使用任何其他相似性指标吗?我试过余弦相似度。哪个会更有帮助?
解决方案
使用 numpy 的矢量化函数的方法:
arr = np.array([u,v])
s = arr.sum(0)
(s*(arr==0).any(0)).sum()/s.sum()
输出:
0.13043478260869565
推荐阅读
- javascript - Angular 4初始页面加载可以停用路由保护不起作用
- rss - RSS 提要无效:
暂停服务 当我尝试验证我的 rss 提要时,我得到了这个结果(使用 w3c 提要验证器)
此提要未验证。
第 1 行,第 39 列:未定义的根元素:状态 [帮助]
<?xml version="1.0" encoding="UTF-8" ?><status>Service unavailable.</status>
- c - 如何在c中从文件中读取多种数据类型
- excel - 是否可以参数化从 Excel 到 SSAS 的连接?(MDX 查询)
- tfs - 按迭代开始日期对 TFS 查询进行排序
- swift - 如何在 TVOS 的 TVDigitEntryViewController 的完成处理程序中获取输入的引脚?
- eclipse - 启动 Jasper Report Studio 并通过命令行导入项目
- java - 如何在 Java 中定义 anx 3 大数组并向其添加元素?
- macos - 当我从电子加载它时,如何调试我的 Safari 应用程序扩展?
- sql-server - 数据仓库维度设计技术