我有一个存储在邻接矩阵 A (100 * 1900),100行,1900列的二分图。 简单地说,我表示代表factorA的100行,代表factorB的1900列。该图表示100因子A和1900因子B之间的联系,因此它是一个二分图。
因此,矩阵是| factorA | * | factorB |,矩阵的维数是100 * 1900。
我需要找到factorB之间的成对重叠。 一种方法是获取 A 并转换 A ,表示为 T(A)
然后得到 A'= T(A)* A ,所以 A'将是100 * 100矩阵,然后是项目 A' [i,j] 对应于factorA i 共享的factorB数量,factorA j 即可。
为什么上述算法有效?可以提供任何参考出版物或数学证据吗?
答案 0 :(得分:0)
设A'= A *转置(A)。
'[i,j]是A的第i行和A的第j行的内积。假设这两行如下所示:
行(A,i)= [0,0,1,0,1,1,0,1]
row(A,j)= [1,0,1,1,0,1,1,0]
这两者的元素产品是
row(A,i)。* row(A,j)= [0,0,1,0,0,1,0,0]
这两行的内积是这些值的总和,2。这就是为什么A'[i,j]是第i行和第j行之间的共享连接数的直觉。
如果你看一下转置(A)* A,你同样可以找到列之间的共享连接。