360SDN.COM

R语言︱SNA-社会关系网络—igraph包(中心度)(三)

来源:  2017-07-28 13:30:17    评论:0点击:

中心度指标的对比

 

 

指标名称 概念 比较 实际应用
点度中心度 在某个点上,有多少条线 强调某点单独的价值 ★作为基本点的描述
接近中心度 该点与网络中其他点距离之和的倒数,越大说明越在中心,越能够很快到达其他点 强调点在网络的价值,越大,越在中心 ★★基本描述,用户价值
中间中心度 代表最短距离是否都经过该点,如果都经过说明这个点很重要,其中包括线的中心度 强调点在其他点之间调节能力,控制能力指数,中介调节效应 ★★推荐算法,用户的控制力
特征向量中心度 根据相邻点的重要性来衡量该点的价值。首先计算邻接矩阵,然后计算邻接矩阵的特征向量。 强调点在网络的价值,并且比接近中心度厉害的是,点价值是根据近邻点来决定的 ★★★推荐算法,用户潜在价值

 

 


 

 

中心度指标有四类点度中心度、接近中心度、中间中心度、特征向量中心度。

 

 

1、点度中心度——点出度、点入度、相对点中心度、点度频率

 

有两个部分:绝对中心度+相对中心度。是最基本的概念,就是在某个点上,有多少条线。比如以下这个数列,“小明”这个点,有三个度(小明-小红,小白-小明,小明-小胖)。

绝对中心度中,在有向图中还有点出度、点入度之分。比如“小明”这个点,有两个点出度(小明-小红,小明-小胖);一个点入度(小白-小明)。

相对点中心度中,相对点中心度=绝对点中心度/最大度数(可以作为不同网络结构的比较,相对数与绝对数的区别),此时小明的相对点中心度就是3/3=1。

id1 di2  
小明  小红  
小张  小白  
小红  小胖  
小胖  小蓝  
小白  小明  
小白  小张  
小明  小胖  

 

 

 

 

degree(g,mode="in")      #mode=in点入度;out=点出度;total点度中心度,三者统称绝对点中心度  

degree(g,normalized = T) #相对点中心度=绝对点中心度/最大度数(可以作为不同网络结构的比较,相对数与绝对数的区别)  

 

 

代码解读:Mode是点入度、点出度的区别;normallized=T是计算相对点中心度。

 

点度频率每种点度数的个数/所有点个数(比如(1,2,4,4)点度数分别为1,1,0,2,密度是1/4,1/4,0/4,2/4)。

degree.distribution(g)    

 

点度频率跟相对点中心度有一定的相似性,相对来说,点度频率、相对数比绝对数更好,因为相对数可以跨越不同网络进行比较。实战中,点度频率以及相对数中心度比较有用。
 

 

2、接近中心度——点出度、点入度、相对接近中心度

 

该点与网络中其他点距离之和的倒数,越大说明越在中心,越能够很快到达其他点。与点度中心度不同的是,点度更强调某点的相对价值;而接近中心度是某点在网络的价值。

在g的1-2 2-1 3-4中,点2的接近中心度为1/(1+4+4)(1为2与1的距离,4为2到3的距离,因为没有指向3的,所以用网络点的总数量)

 

closeness(g,vids=which(V(g)$label=="c"))  #某点四周的接近中心度,mode="out"是有向图,默认是无向图为in  

   #设置normalized = T为相对接近中心度  

 

与点度中心度一样,有出度、入度还有相对中心度之分。

 

3、中间中心度——点的中心度以及线的中心度

 

中心度可以说明,哪些点、线中介效应最强。

 

(1)点的中心度——betweenness

 

点的中心度,代表最短距离是否都经过该点,如果都经过说明这个点很重要。也是强调点与网络的价值,而且更能说明转发、中介的情况。

betweenness(g,normalized = T)  

   #normalized = T代表相对数,默认值为F为绝对值  

   #mode有Out和in分别代表有向和无向  

 

点的中心度也有点出、点入以及相对数情况。

这里可以看到某点的中间中心度,某点betweenness(g,V(g)$label=="c")
同时igraph包在操作过程中,会返回所有点的中心度,比如(1,2,4,5)则会返回5个数字,没有的3也会有位置。

 

(2)线的中间中心度——edge.betweenness

edge.betweenness(g)  

   #normalized = T代表相对数,默认值为F为绝对值  

   #mode有Out和in分别代表有向和无向  

 

如果你要返回某条线的中间中心度,edge.betweenness(g,e=E(g,path=c(which(V(g)$label=="a"),which(V(g)$label=="c")))),e就代表起点,终点的线。

 

 

4、点的特征向量中心度——evcent

 

如果某人四周都是大牛人,那么这个人也很牛逼,这个方法是根据相邻点的重要性来衡量该点的价值。首先计算邻接矩阵,然后计算邻接矩阵的特征向量。

 

evcent(g,scale = F)$vector  #系统不论是否重要,都会计算所有点四周的相邻矩阵,根据矩阵求得点的特征向量,耗时巨大  

   #scale=F没有归一化,T代表输出数据进行标准化  

   #mode有Out和in分别代表有向和无向  

 

该函数会计算所有点的相邻矩阵,所以耗时巨大。算法原理中的,如果计算邻接矩阵,每个邻接点的权重笔者还不是很能看懂。。。

同时,scale=T,可以将输出的数据归一化。

 

另外一个机遇特征向量中心度的指标是:page.rank特征向量中心度。这个是谷歌开发的,对于一些搜索的竞价排名做的指标。原理跟特征向量中心度差不多:

计算邻接矩阵——按行标准化——计算矩阵的特征向量。

page.rank(g,scale=F)$vector  

   #scale=F没有归一化,T代表输出数据进行标准化  

   #mode有Out和in分别代表有向和无向

为您推荐

友情链接 |九搜汽车网 |手机ok生活信息网|ok生活信息网|ok微生活
 Powered by www.360SDN.COM   京ICP备11022651号-4 © 2012-2016 版权