R igraph 手册页

如果您从 R 中使用 igraph,请使用此选项

graphlet_basis {igraph}R 文档

图的 graphlet 分解

描述

Graphlet 分解通过潜在重叠的密集社交组的联合来对加权无向图进行建模。 这是通过一个两步算法完成的。 第一步是通过找到阈值输入图的团来创建候选组集合(候选基)。 第二步是将图投影到候选基上,从而为候选基中的每个团生成权重系数。

用法

graphlet_basis(graph, weights = NULL)

graphlet_proj(
  graph,
  weights = NULL,
  cliques,
  niter = 1000,
  Mu = rep(1, length(cliques))
)

参数

忽略输入图的边的方向。 仅支持简单图(即没有自环和多重边的图)。

weights

边权重。 如果图具有 weight 边属性,并且此参数为 NULL(默认值),则使用 weight 边属性。

cliques

顶点 ID 列表,用于投影的 graphlet 基。

niter

整数标量,执行的迭代次数。

Mu

投影的起始权重。

详细信息

igraph 包含三个用于执行图分解的函数。 第一个是 graphlets,它执行该方法的两个步骤并返回一个子图列表,以及它们对应的权重。 第二个和第三个函数对应于算法的第一步和第二步,如果用户希望单独执行它们,则它们很有用:graphlet_basisgraphlet_proj

graphlets 返回一个包含两个成员的列表

cliques

子图列表,候选 graphlet 基。 每个子图都由一个顶点 ID 向量给出。

Mu

graphlet 基中子图的权重。

graphlet_basis 返回一个包含两个元素的列表

cliques

子图列表,候选 graphlet 基。 每个子图都由一个顶点 ID 向量给出。

thresholds

用于查找子图的权重阈值。

graphlet_proj 返回一个数值向量,即 graphlet 基子图的权重。

示例


## Create an example graph first
D1 <- matrix(0, 5, 5)
D2 <- matrix(0, 5, 5)
D3 <- matrix(0, 5, 5)
D1[1:3, 1:3] <- 2
D2[3:5, 3:5] <- 3
D3[2:5, 2:5] <- 1
  
g <- simplify(graph_from_adjacency_matrix(D1 + D2 + D3,
      mode="undirected", weighted=TRUE))
V(g)$color <- "white"
E(g)$label <- E(g)$weight
E(g)$label.cex <- 2
E(g)$color <- "black"
layout(matrix(1:6, nrow=2, byrow=TRUE))
co <- layout_with_kk(g)
par(mar=c(1,1,1,1))
plot(g, layout=co)

## Calculate graphlets
gl <- graphlets(g, niter=1000)

## Plot graphlets
for (i in 1:length(gl$cliques)) {
  sel <- gl$cliques[[i]]
  V(g)$color <- "white"
  V(g)[sel]$color <- "#E495A5"
  E(g)$width <- 1
  E(g)[ V(g)[sel] %--% V(g)[sel] ]$width <- 2
  E(g)$label <- ""
  E(g)[ width == 2 ]$label <- round(gl$Mu[i], 2)
  E(g)$color <- "black"
  E(g)[ width == 2 ]$color <- "#E495A5"
  plot(g, layout=co)
}

[包 igraph 版本 1.3.5 索引]