2013-01-22 41 views
1

我想知道是否有人可以指向某个特征向量中心性伪代码或算法(用于社交网络分析)的方向。我已经在维基百科和谷歌搜索了一些信息,但我找不到任何广义算法或伪代码的描述。特征向量中心性算法/伪代码

谢谢!

回答

7

图G中顶点v的特征向量中心性似乎是G的邻接矩阵A的主特征向量的第v个条目,该特征向量由该特征向量的条目总和缩放。

power iteration,从任何严格阳性矢量开始,将倾向于A的主要特征向量

会注意到幂迭代需要做的唯一操作是乘以一个向量反复。这很容易做到; Av的第i个条目仅仅是对应于顶点i所连接的顶点j的条目的总和。

功率迭代的收敛速率在最大特征值与其绝对值第二大的特征值的比率上是线性的。也就是说,如果最大特征值是λ-最大和第二大按绝对值特征值是拉姆达,在特征值估计的误差得到由拉姆达最大的因素减少/|拉姆达 |。中出现在实践中(社会网络图,例如)

图形通常具有的λ最大和λ2 有较大差距,所以功率迭代将典型地收敛可接受快;在几十次迭代中并且几乎不考虑出发点,您将有一个在10 -9之内的特征值估计。

所以,与理论一点,这里的一些伪代码:

Let v = [1, 1, 1, 1, ... 1]. 
Repeat 100 times { 
    Let w = [0, 0, 0, 0, ... 0]. 
    For each person i in the social network 
    For each friend j of i 
     Set w[j] = w[j] + v[i]. 
    Set v = w. 
} 
Let S be the sum of the entries of v. 
Divide each entry of v by S.