Press "Enter" to skip to content

亲密度和社区:使用Python和NetworkX分析社交网络 – 第3部分

学习使用Python和NetworkX进行社交网络分析中的社群和接近中心性

在第二部分中,我们通过绘制Smashing Pumpkins和Zwan乐队成员之间的关系图来扩展了我们对社交网络分析的理解。然后,我们检查了诸如度中心性和介数中心性之类的指标,以调查不同乐队成员之间的关系。同时,我们讨论了领域知识如何帮助我们理解结果。

在第三部分中,我们将介绍接近中心性的基础知识以及如何计算。然后,我们将演示如何使用Billy Corgan的网络示例来计算NetworkX的接近中心性。

获取生成此图的代码,请前往我的GitHub。⭐️方便参考。

开始之前…

  1. 你是否具备基本的Python知识?如果没有,请从这里开始。
  2. 你是否熟悉社交网络分析的基本概念,如节点和边缘?如果没有,请从这里开始。
  3. 你是否熟悉度中心性介数中心性?如果没有,请从这里开始。

接近中心性和社群

接近中心性

接近中心性是社交网络分析中的一种度量,它量化了节点在网络中与所有其他节点之间的最短路径距离的接近程度。

接近中心性关注网络内信息或资源流动的效率。其思想是具有更高接近中心性的节点能够更快、更有效地到达其他节点,因为它们与网络的其余部分之间的平均距离更短。

节点的接近中心性计算为从该节点到网络中所有其他节点的最短路径距离(SPD)之和的倒数。

接近中心性 = 1 /(从节点到所有其他节点的SPD之和)

更高的值表示在网络内信息流动方面更大的中心性和效率。

计算接近中心性

让我们使用一个具有八个节点的简单网络来分解它。

  1. 计算节点A到所有其他节点的最短路径距离(SPD)。在我们的例子中,我们将使用简单的例子距离。在实践中,这将使用最短路径算法,如广度优先搜索或Dijkstra算法来完成。

2. 计算节点A到所有其他节点的最短路径距离之和。

3. 应用接近中心性公式。

接近和社群

我们可以将社群看作是节点组的密集连接,与组外节点的连接相比更密集。社群捕捉网络中具有内在结构子组或模块的想法,其中同一社群中的节点之间具有更强的连接。社群的特征是具有密集的社群内连接和相对稀疏的社群间连接。

获取生成此图的代码,请前往我的GitHub。⭐️方便参考!

当我们考虑Smashing Pumpkins和Zwan乐队的成员时,很容易想象乐队之间如何通过他们共享的成员相互连接。这展示了乐队内成员之间的内部连接以及乐队之间的外部连接。

虽然紧密中心性测量了单个节点的重要性和信息流效率,社区则捕获了具有密集连接的凝聚子群。二者共同有助于理解信息流动的动态和网络的组织。

让我们讨论一些运用紧密中心性和社区来解释网络动态的方法。

  1. 社区内的紧密中心性

同属于一个社区的节点通常具有较高的社区内紧密中心性值。这表明社区内的节点紧密相连,并且可以通过最短路径距离快速到达彼此。社区内更高的紧密中心性反映了子群内的信息流和通信的高效性。

Get the code to generate this graph on my GitHub . ⭐️ for easy reference!

2. 用紧密中心性桥接社区

连接不同社区或在社区之间充当桥梁的节点可能具有比单个社区内的节点更高的紧密中心性。这些节点在连接分开的社区、促进它们之间的通信和信息流方面发挥了关键作用。

Get the code to generate this graph on my GitHub . ⭐️ for easy reference!

3. 使用紧密中心性进行社区级别分析

紧密中心性也可用于社区级别,以分析网络中社区的重要性。通过聚合社区内节点的紧密中心性值,可以评估社区内信息流的整体效率。平均紧密中心性更高的社区可能被认为在能够访问和传播网络内的信息方面更加中心和具有影响力。

Get the code to generate this graph on my GitHub . ⭐️ for easy reference!

紧密中心性测量了单个节点的重要性和信息流效率,而社区则捕获了具有密集连接的凝聚子群。二者共同有助于理解信息流动的动态和网络的组织。

在考虑比利·柯根的影响范围时,紧密中心性可以提供洞见,了解“粉碎南瓜乐队”和“兹万乐队”的成员如何在比利·柯根的网络中直接和间接地影响其他音乐家。我们可以使用社区的概念来描述每个乐队,但我们也可以用它来描述两个乐队的总和。实际上,20世纪90年代的替代摇滚音乐家社区非常庞大,当我们向网络添加更多乐队时,会出现更多的社区。

Billy Corgan circa 1991 — By Barb Vest, CC BY-SA 4.0

使用Python中的NetworkX进行紧密中心性

  1. 就像我们在第2部分中所做的那样,我们要创建一个函数,将为每个乐队生成所有成员的组合。

2. 接下来,我们定义每个乐队,并将函数应用于生成元组列表。然后,我们将这些列表合并,并使用列表理解来删除任何重复项。

3. 现在我们可以绘制图形。

它应该大致如下:

亲密度和社区:使用Python和NetworkX分析社交网络 - 第3部分 数据科学 第7张

4. 最后,让我们计算紧密中心性并分析这些值。

输出结果应该类似于:

那么这些值告诉我们什么呢?

  • Billy Corgan和Jimmy Chamberlin拥有最高的紧密中心性值1.00,这意味着他们在快速接触其他成员方面是最中心的成员。
  • James Iha、Katie Cole、D’arcy Wretzky、Melissa Auf der Maur、Ginger Pooley、Mike Byrne和Nicole Fiorentino拥有相同的紧密中心性值0.785714。这表明这些成员之间联系紧密,可以快速接触到彼此。
  • Paz Lenchantin、David Pajo和Matt Sweeney的紧密中心性值略低,为0.611111。这表明他们在快速接触其他成员方面可能不如前一组成员中心,但他们在网络中仍然相对联系紧密。

由于我们仍在处理一个相对简单的网络,这些结果并没有揭示除了在计算Billy Corgan的网络的度中心性和介数中心性时所学的内容之外的任何其他信息。在第4部分中,我们将通过向网络中引入更多的乐队和音乐家来增加复杂性。作为额外的奖励,我们将介绍一些高级Matplotlib技术,使您的NetworkX图表更具吸引力!

如果您希望了解完整的Python教程,请访问我的GitHub!

👩🏻‍💻 Christine Egan | 小猪AI | github | linkedin

作为小猪AI会员,您的会员费的一部分将用于支付您所阅读的作家,并且您将获得对每个故事的完全访问权限…

小猪AI.com

Leave a Reply

Your email address will not be published. Required fields are marked *