【发布时间】:2014-12-11 16:43:50
【问题描述】:
我想请你帮忙。我有一个类似于下面的数据结构:
ID Name
1 A
2 B
1 C
1 B
2 C
2 D
3 A
3 B
“ID”列是论文的唯一标识符,“Name”列代表与论文有合作的作者的姓名。我需要生成一个无向的加权邻接矩阵。矩阵中的节点(或顶点)将是“名称”列中的作者(ij)对。矩阵 (ij, i≠j) 中的加权值将由协作率的总和给出,使用的算法我可以用一个例子来描述:
例如,上面数据中的 A-B 对在论文“1”和“3”中有两个合作。此外,论文 1 有 3 个合作者(A、B、C);论文 3 有 2 个合作者(A,B)。节点 AB 的权重将是 A 和 B 共同参与的列 ID 中每篇论文的合作者数量的倒数之和减去 1。即,
Paper 1 Paper 3
Collaborators A, B, C = 3 A, B = 2
Weight 1 / (3 - 1) 1 / (2 - 1)
权重之和(AB) = (1/2)+(1) = (3/2)
请注意,如果 A 和 B 在一篇论文中合作,则分子将为 1,否则为 0。算法的关键是计算“名称”列中每对作者的总和,并生成加权邻接矩阵。
感谢您的帮助和建议
马里奥。
【问题讨论】:
标签: igraph