【问题标题】:R: community detection on directed graph with (negative) weightsR:具有(负)权重的有向图社区检测
【发布时间】:2018-05-14 16:12:09
【问题描述】:

我正在使用 R igraph 分析一个有向加权网络。该网络基于相关矩阵,即权重从 -1 变为 +1。这个网络显然是无向的,但我也对更一般的情况感兴趣。

基于此网络,我想执行社区检测以将“相似”节点组合在一起。我知道 R igraph 中有一大堆社区检测方法。 参见例如herehere

但这些案例都没有处理负权重。

igraph(或其他一些 R 包)中是否有可以处理具有负权重的有向网络的实现?任何提示都非常感谢。

【问题讨论】:

  • 权重加 1 并让它们从 0 变为 2?
  • 好吧,我想知道这是否会影响社区检测算法。 -1 的权重表示节点的反相关性很强,而通过将 1 添加到权重,这将是零 - 即节点之间没有链接。
  • 我认为你想使用你的权重的abs 或平方它们(即使用 R^2)。对我来说,重量是衡量力量的标准,而不是方向。即:由权重 -1 连接的两个节点与权重 1 同等重要,因为两者都表示两个变量之间的一对一关系,尽管方向不同。
  • 我在想更多这样的事情:journals.aps.org/pre/abstract/10.1103/PhysRevE.80.036115 有一个 Python 实现可以处理这类问题:github.com/vtraag/louvain-igraph 但我找不到 R 的类似内容
  • cluster_spinglass 处理负权重

标签: r igraph


【解决方案1】:

不是 100% 确定,如果它违反任何假设,但作为一种解决方法,我在 R 中使用 igraph 计算 Louvain community detection 之前将所有负边权重设置为零。至少,它们永远不会包含在社区关系中。

E(g)$width <- ifelse(E(g)$width < 0, 0, E(g)$width)
g.louv <- cluster_louvain(g, weights = E(g)$width)

注意:这仅适用于无向图(我忽略了问题的这个细节,抱歉)

【讨论】:

  • 据我所知cluster_louvain in igraph 不处理有向加权图。
  • 我的意思是,来自igraph 1.2.5 的cluster_louvain 手册:weights: Optional positive weight vector. If the graph has a weight edge attribute, then this is used by default. Supply NA here if the graph has a weight edge attribute, but you want to ignore it. Larger edge weights correspond to stronger connections. Also, the algorithm was developed for weighted networks
  • 权重有效(显然)。它不适用于加权有向网络(需要更改模块化的定义)。也许那里有一些东西,但它还没有在 igraph r 中实现。
  • 非常真实!我忽略了这一点,对不起。那我最好删除我的答案吗? ...
  • 我会留下它,也许有人会觉得它有用
猜你喜欢
  • 2021-05-22
  • 1970-01-01
  • 2015-12-17
  • 1970-01-01
  • 2018-08-15
  • 1970-01-01
  • 1970-01-01
  • 2023-03-16
  • 1970-01-01
相关资源
最近更新 更多