networkx
-
[NetworkX] 네트워크 견고성(Robustness in Networks)Data & ML & AI/NetworkX 2022. 11. 9. 00:32
네트워크 견고성 (Robustness in Networks) The ability of a network to maintain its general structural properties whet it faces failures or attacks 출처 : Applied Social Network Analysis in Python(by Daniel Romero) 네트워크 견고성: 네트워크의 구조를 유지하는 능력, 연결성을 유지하는 능력 네트워크 견고성이란, 네트워크가 고장나거나 공격을 받더라도 연결성을 잃지 않는 능력이라는 뜻입니다. 즉, 노드나 엣지가 제거되더라도 네트워크가 제 기능을 할 수 있느냐는 뜻이죠. 인천공항에 사고가 생기면 김포공항으로 회항하면 되지만(견고성 확보) 제주공항에 사고가 생기면 ..
-
[NetworkX] 너비 우선 탐색, 트리 구조 그리기Data & ML & AI/NetworkX 2022. 11. 2. 02:13
너비 우선 탐색 Breadth-First Search, BFS 너비 우선 탐색(Breadth-first search, BFS)은 맹목적 탐색 방법의 하나로 시작 정점을 방문한 후 시작 정점에 인접한 모든 정점들을 우선 방문하는 방법이다. 더 이상 방문하지 않은 정점이 없을 때까지 방문하지 않은 모든 정점들에 대해서도 너비 우선 검색을 적용한다. OPEN List는 큐를 사용해야만 레벨 순서대로 접근이 가능하다. (출처: 위키백과) 그래프의 한 노드에서 다른 모든 노드까지의 길이를 구하는 (그나마) 효율적인 방법 중 하나 아래는 A 노드가 다른 노드들과 얼마나 떨어져있는지 확인하기 위해 너비우선탐색을 진행한 결과입니다. A 본인의 주변 탐색 Distance1 : A와 연결되어있는 B, K의 주변 탐색 Di..
-
[NetworkX] Assignment 1 - Creating and Manipulating GraphsData & ML & AI/NetworkX 2022. 10. 30. 03:47
본 게시물은 Coursera의 Applied Social Network Analysis in Python(by Daniel Romero)를 통해 자습하며 작성한 게시물입니다. 이 Assignment는 Coursera Jupyter 콘솔에서만 제대로 진행할 수 있습니다. (데이터 파일을 따로 제공하지 않기 때문입니다.) 개괄 원본 Eight employees at a small company were asked to choose 3 movies that they would most enjoy watching for the upcoming company movie night. These choices are stored in the file `Employee_Movie_Choices.txt`. A secon..
-
[NetworkX] Bipartite Graph(양분 그래프) 그리기Data & ML & AI/NetworkX 2022. 10. 27. 23:18
샘플 Bipartite 그래프 생성 import networkx as nx from networkx.algorithms import bipartite X = set([1,2,3,4,5,6,7,8]) Y = set(['A','B','C','D','E','F']) B = nx.Graph() B.add_nodes_from(X, bipartite=0) B.add_nodes_from(Y, bipartite=1) B.add_edges_from([ (1,'A'),(1,'B'),(2,'A'),(2,'B'),(2,'D'),(3,'C'),(3,'E'),(4,'A'),(4,'D'), (5,'C'),(5,'E'),(6,'C'),(6,'F'),(7,'E'),(7,'F'),(8,'E') ]) 일반적인 그래프 그리기(비교용) nx..
-
[NetworkX] 노드에 속성 부여하는 방법 (파이썬 네트워크 분석 8)Data & ML & AI/NetworkX 2022. 10. 16. 18:52
엣지에 속성을 부여하는 방법이 간단했던 것처럼, 노드에 속성을 부여하는 방법 또한 간단합니다. 1. 속성 부여하기 : G.add_node(), G.add_nodes_from() # 그래프 생성하기 G = nx.Graph() family = [('A','B',6),('E','J',15)] friend = [('B','C',13),('G','F',9)] coworker = [('C','F',21),('D','E',2),('E','I',10),('I','J',3),('E','H',9)] neighbor = [('C','E',25)] G.add_weighted_edges_from(friend, relation='family') G.add_weighted_edges_from(friend, relation='fri..
-
[NetworkX] 멀티그래프 데이터 읽기 (파이썬 네트워크 분석 7)Data & ML & AI/NetworkX 2022. 10. 12. 00:06
이전 글에서는 일반적인 무방향 그래프(nx.Graph())와 방향그래프(nx.DiGraph())의 데이터를 읽는 방법을 살펴보았습니다. https://brain-nim.tistory.com/48 다중그래프 (nx.MultiGraph(), nx.MultiDiGraph())에서는 아주 조금 다른 점이 있습니다. 일단 아래사진 우측의 그래프를 생성한 뒤 이어가겠습니다. (여기서는 nx.MultiDiGraph()를 예시로 합니다.) # 하지만 타자가 귀찮기 때문에 A~G 노드끼리 연결된 엣지만 작성했습니다. G = nx.MultiDiGraph() family = [('A','B',{'weight':6})] friend = [('A','B',{'weight':18}),('C','B',{'weight':13}),(..
-
[NetworkX] 그래프 데이터 읽기 (파이썬 네트워크 분석 6)Data & ML & AI/NetworkX 2022. 10. 11. 20:05
네트워크 그래프를 생성하더라도 데이터를 읽어내지 못한다면 쓸모가 없습니다. 이번엔 구축된 그래프에서 데이터를 읽어보겠습니다. 아래의 그래프를 기준으로 진행하겠습니다. import networkx as nx G = nx.Graph() # 엣지 하나씩 정의하기 G.add_edge('A','B', weight=6, relation='family') G.add_edge('E','J', weight=15, relation='family') # 한번에 여러 엣지 정의하기 friend = [('B','C',13),('G','F',9)] coworker = [('C','F',21),('D','E',2),('E','I',10),('I','J',3),('E','H',9)] neighbor = [('C','E',25)] G..
-
[NetworkX] 그래프 종류 종합정리 (파이썬 네트워크 분석 5)Data & ML & AI/NetworkX 2022. 10. 9. 17:58
앞선 글들에서 여러가지 종류의 그래프들을 만들어 보았습니다. 최종적으로 간략 정리를 해봅시다. 1. Undirected Graph (무방향 그래프) 가장 기본적인 형태의 그래프로, 단순하게 노드와 엣지를 연결한 네트워크입니다. (생성, 시각화 하는 방법 : https://brain-nim.tistory.com/35) [NetworkX] 파이썬 네트워크 분석 1 (무방향, 방향 그래프 생성하기) 네트워크(그래프)는 item들 간의 연결성을 포함, 표현하는 방식입니다. 그리고 파이썬을 이용해 네트워크 구조, 데이터셋을 쉽게 다룰 수 있습니다. NetworkX라는 라이브러리를 이용하면 쉽게 진행 brain-nim.tistory.com 2. Directed Graph (방향 그래프) 이쪽 노드에서 저쪽 노드로,..