R语言igraph包hub_score函数scale=TRUE时,节点枢纽分最值是否固定为1和0?
igraph中hub_score的scale参数与文献分数差异解析
- 当
hub_score()函数设置scale=TRUE时,igraph会把计算出的枢纽分数线性归一化到[0,1]区间,所以此时网络里的最高分数一定是1,最低为0,你得到的结果是符合函数设定的。 - 文献《Fowler et al. 2007. Social Networks in Political Science: Hiring and Placement of Ph.D.s, 1960-2002》里的最高值0.52,大概率是这两种情况:
- 作者用了未缩放的原始枢纽分数,对应igraph中
scale=FALSE的设置。这种情况下,分数是HITS算法直接算出的特征向量值,没有做归一化,数值范围不定,自然不会出现1。 - 作者采用了不同于igraph默认的归一化方式,比如没有用线性缩放到0-1,而是做了其他处理(比如除以节点总数、用其他标准化方法),或者使用了不同的枢纽分数计算逻辑(比如不是HITS框架下的Hub得分)。
- 作者用了未缩放的原始枢纽分数,对应igraph中
举个简单的代码验证例子:
library(igraph) # 创建一个简单的环形网络 g <- make_ring(5) # 未缩放的Hub分数 unscaled_hubs <- hub_score(g, scale = FALSE)$vector # 缩放后的Hub分数 scaled_hubs <- hub_score(g, scale = TRUE)$vector # 查看结果 unscaled_hubs scaled_hubs
运行后你会看到,scaled_hubs的最大值是1,而unscaled_hubs是原始的特征向量数值,没有固定范围。
内容的提问来源于stack exchange,提问作者Tobi
相关产品推荐
相关产品推荐

