【发布时间】:2018-12-19 05:58:55
【问题描述】:
我正在尝试使用如下所示的 csv 文件在 igraph 中创建图形:
ID Element1 Element2 Element3 Element4
12346 A 12 56 2
13007 Y 16 66 2
... ... ... ... ...
ID 列由唯一的 4 位标识符填充,而元素列由重复的数字(或 Element1 中的字母)填充。我的目标是计算所有 ID 的成对 Jaccard 相似度,这利用了 ID 节点之间共享的元素。输出应该是一个 NxN 矩阵。
我一直在尝试使用graph_from_data_frame 功能在 igraph 上创建图形,但这会从前两列创建节点,并将其余列作为边缘属性放置在它创建的节点之间的关系中。关于创建允许我计算 ID 节点之间的 Jaccard 的图表的最佳方法的任何想法?
作为参考,目标是使用igraph的这个特性:
similarity(graph, vids = V(graph), mode = c("all", "out", "in", "total"),
loops = FALSE, method = c("jaccard", "dice", "invlogweighted"))
graph 是我创建的图表,vids仅是 ID 节点。
【问题讨论】:
-
我不明白所需的图表应该是什么样子。你可以说得更详细点吗?如果您在示例输入和所需输出中包含正确的reproducible example,则更容易为您提供帮助(准确地说,避免
...- 只是一个简单的示例) -
在其他平台上,我创建了带有所有已分配元数据元素的 ID 节点,以及每个元数据元素类型的节点。例如,12346 的 ID 节点包含其 Element1-Element4 作为属性,并与其分配的 Element 节点有关系。不确定这是否是我应该使用 igraph 创建的,或者如果它们共享一种元素,我是否应该只有彼此连接的 ID 节点。
-
您是否需要该图来做其他事情,还是只需要计算您的 ID 之间的 Jaccard 相似度?
-
我不需要。有没有办法在不使用 igraph 的相似度函数的情况下做到这一点?
标签: r igraph similarity