标签: network-analysis

如何将会话路径数据折叠为从 - 到路径以可视化网络数据?

有哪些方法可以转换会话路径数据,例如:

df
#   Session Link1 Link2 Link3 Link4 Link5
# 1       1     A     B                  
# 2       2     C                        
# 3       3     D     A     B            
# 4       4     C     F     G     H     J
# 5       5     A     B     C            
Run Code Online (Sandbox Code Playgroud)

进入如下所示的数据集:

desired
#    Session From   To
# 1        1    A    B
# 2        2    C <NA>
# 3        3    D    A
# 4        3    A    B
# 5        4    C    F
# 6        4    F    G
# 7        4    G    H
# …
Run Code Online (Sandbox Code Playgroud)

r network-analysis tidyr data-cleaning

3
推荐指数
1
解决办法
50
查看次数

在 networkit (python) 中使用 forEdges 迭代器

我仔细阅读了文档,但我仍然不清楚如何使用 G.forEdges(),它被描述为“实验边缘迭代器接口”。

假设我想降低图形的密度。我有一个排序的权重列表,我想根据它们的权重删除边,直到图分成两个连接的组件。然后我将选择保持图形连接的最少链接数。我会做这样的事情:

cc = components.ConnectedComponents(G).run()
while cc.numberOfComponents()==1:
    for weight in weightlist:
        for (u,v) in G.edges():
            if G.weight(u,v)==weight:
                G=G.removeEdge(u,v)
Run Code Online (Sandbox Code Playgroud)

顺便说一下,我从文档中知道有这个边缘迭代器,它可能以更有效的方式进行迭代。但是从文档中我真的无法理解如何正确使用 this forEdges,并且我无法在互联网上找到一个示例。有任何想法吗?

或者也许是做我想做的事情的另一种想法:因为它是一个巨大的图(1.25 亿个链接),即使我在一个集群上工作,迭代也将永远持续下去。

python graph network-analysis networkit

3
推荐指数
1
解决办法
327
查看次数

将数据框转换为邻接矩阵/边列表以进行网络分析

我正在尝试将数据框从在线论坛转换为社交网络,但是我不知道如何将数据转换为网络分析所需的邻接矩阵/边列表。

我的代码如下:

library(igraph)  
graph.data.2002 <- as.matrix(data.2002[,2:3])  
g.2002 <- graph.data.frame(graph.data.2002, directed=FALSE)  
plot(g.2002, vertex.size = 1, vertex.label=NA)  
Run Code Online (Sandbox Code Playgroud)

我正在使用 R 进行分析。目前的问题是作者之间是通过ThreadID联系起来的,但是在进行网络分析时,它包含了ThreadID作为一个节点。理想情况下,我想要一个邻接矩阵/边缘列表,如果作者与同一线程上的所有作者交互,则显示 1。

(第一次发帖,如果有什么遗漏/不正确的地方,请告诉我)

目前数据如下:

ThreadID    AuthorID
659289  193537
432269  136196
572531  170305
230003  32359
459059  47875
635953  181593
235116  51993
Run Code Online (Sandbox Code Playgroud)

networking r matrix adjacency-matrix network-analysis

2
推荐指数
1
解决办法
4910
查看次数

Python - 将一个dicts列表分成单独的dicts

我正在使用HITS算法进行社交网络分析.该算法的使用产生两种不同的度量:hub-score和authority-score.生成一个包含两个基于这些度量的字典的列表,其中一个字典的索引为0,另一个字典的索引为0.

如何删除总体列表以获取两个单独的词典?代码和输出如下:

G = nx.read_weighted_edgelist('data.csv', create_using=nx.DiGraph())
HITS_scores = list(nx.hits(G))

Output:
List = Index     Type      Value
       0         dict      {'node1': 0.023, 'node3': 0.017.....'node17': 0.045}
       1         dict      {'node2': 0.042, 'node4': 0.002.....'node16': 0.032}

Desired Output:
hub_score =      dict      {'node1': 0.023, 'node3': 0.017.....'node17': 0.045}
auth_score =     dict      {'node2': 0.042, 'node4': 0.002.....'node16': 0.032}
Run Code Online (Sandbox Code Playgroud)

任何帮助,将不胜感激.

PS我试过寻找答案,但一直无法找到解决方案

python dictionary list network-analysis

2
推荐指数
1
解决办法
294
查看次数

R,类似于ggmap的免费地图

在执行网络分析时,我想在地图上绘制网络图。ggmap 似乎是首选,但它需要 API 访问。

是否有任何不需要 API 访问的免费和等效/替代(到 ggmap)选项?

谢谢你。

r graph ggmap network-analysis

2
推荐指数
1
解决办法
4413
查看次数

根据另一个数据帧中名称的行索引将名称转换为数据框中的数字

我有两个数据帧.一个是我的facebook朋友的名字,另一个是与sorce和目标列的链接.我想根据friends数据帧中该名称的行索引将链接数据框中的名称转换为数字.

朋友

               name
1    Andrewt Thomas
2     Robbie McCord
3 Mohammad Mojadidi
4       Andrew John
5     Professor Owk
6    Joseph Charles
Run Code Online (Sandbox Code Playgroud)

链接

     source          target
1 Andrewt Thomas     Andrew John
2 Andrewt Thomas       James Zou
3  Robbie McCord         Bz Benz
4  Robbie McCord Yousef AL-alawi
5  Robbie McCord  Sherhan Asimov
6  Robbie McCord     Aigerim Aig
Run Code Online (Sandbox Code Playgroud)

看似琐碎,但我无法弄明白.感谢帮助.

r network-analysis

1
推荐指数
1
解决办法
62
查看次数

数组散列中的连接数

我有一个如下所示的数组哈希:

my %HoA = (
    "M" => [ "L", "E" ],
    "L" => [ "I" ],
    "E" => [ "B", "C" ],
    "B" => [ "A" ],
    "C" => [ "A" ]
);
Run Code Online (Sandbox Code Playgroud)

您可以通过以下方式将其可视化:

    M
   / \
  L   E
 /   / \
I   B   C
     \ /
      A
Run Code Online (Sandbox Code Playgroud)

现在,我想知道每个节点的连接数:

M 6
E 3
L 1
B 1
C 1
I 0
A 0
Run Code Online (Sandbox Code Playgroud)

使用R中的igraph包这很简单,但我很难用Perl中的数组哈希做同样的事情.

arrays tree perl hash network-analysis

1
推荐指数
1
解决办法
62
查看次数

如何在 Networkx 中向网络分析图添加节点和边?

我正在尝试学习网络分析,因此我正在在线使用 Hillary Clinton\xe2\x80\x99s 电子邮件来查看谁给谁发了电子邮件。

\n\n

我的数据位于名为 hrc_dict 的字典中。我有一个发送者和接收者的元组,后面是电子邮件的频率。这是字典的一部分:

\n\n
\n

{(“希拉里·克林顿”,“谢丽尔·米尔斯”):354,(“希拉里·克林顿”,“l”):1,(“琳达·德万”,“希拉里·克林顿”):1,(“希拉里·克林顿”,“卡普里西亚”马歇尔”):9,(“菲利普·克劳利”,“希拉里·克林顿”):2,(“谢丽尔·米尔斯”,“安妮·玛丽·斯劳特”):1}

\n
\n\n

我正在 Jupyter 中使用 Networkx 创建图表。我的代码如下:

\n\n
import networkx as nx\nimport matplotlib.pyplot as plt\n\nG = nx.Graph()\n\nG.add_nodes_from(hrc_dict)\n\nfor s, r in hrc_dict:\n    G.add_edge((s,r), hrc_dict[(s,r)])\n\nG.add_edge((s,r), hrc_dict[(s,r)])\n
Run Code Online (Sandbox Code Playgroud)\n\n

当我调用 nx.Graph() 时,没有任何内容打印出来,当我调用 G.nodes() 时,并非所有节点都显示出来。我在这里粘贴了一些输出:

\n\n
\n

[1,\n 2,\n 3,\n 4,\n 5,\n 6,\n 7,\n 8,\n '马克·佩恩',\n 10,\n ('托德·斯特恩', '希拉里·克林顿'),\n 12,]

\n
\n\n

当我调用 G.edges() 时,我得到以下内容,这似乎是正确的

\n\n
\n

[(1,('希拉里·克林顿','l')),(1,('琳达·德万','希拉里·克林顿')),(1,('希拉里·克林顿','托马斯·香农')),(1 , ('谢丽尔·米尔斯', '安妮·玛丽·斯劳特')), (1, ('克里斯托弗·巴兹吉', '希拉里·克林顿\xe2\x80\x99))]

\n
\n\n

有谁知道如何将节点正确添加到我的图表中。我假设每个人都需要成为一个节点,那么如何分解元组并分别添加名称?边缘显示正确还是我需要以不同的方式输入它们?

\n

python graph nodes networkx network-analysis

0
推荐指数
1
解决办法
3325
查看次数