전체 글
-
[NetworkX] 새로운 노드는 어디에 어떤 노드와 연결될까?Preferential Attachment Model (Barabasi Albert Model)Data & ML & AI/NetworkX 2023. 1. 12. 20:07
실 세계에서의 Degree 분포 한 학교에 새로 전학생이 왔습니다. 이 친구는 누구와 친구가 될 가능성이 가장 높을까요? 앉는 자리와 같은 변수를 제거한다면, "이미 친구가 많은" 아이와 친구가 될 가능성이 가장 높습니다. 실제 세계에서는 관계망을 이미 많이 가진 것들이 더 많은 관계를 가지게 될 가능성이 높습니다. A: 한 영화에 같이 나온 적이 있는 영화배우들의 관계망 B: 하이퍼링크로 연결된 웹 연결망 C: 미국 전력 변전 연결망 A,B,C의 네트워크 모두, 관계(Degree)를 극도로 많이 가지고 있는 노드는 극소수이고, 적은 수의 관계를 가지고 있는 노드가 다수임을 확인할 수 있습니다. 관계망의 빈익빈 부익부인 셈이죠. 이러한 실 세계 현상을 모델화 한 것을 바라바시 알베르트 모델(Barabas..
-
[NetworkX] Assignment 3 - Influence Measures and Network CentralizationData & ML & AI/NetworkX 2023. 1. 11. 02:38
본 게시물은 Coursera의 Applied Social Network Analysis in Python(by Daniel Romero)를 통해 자습하며 작성한 게시물입니다. 이 Assignment는 Coursera Jupyter 콘솔에서만 제대로 진행할 수 있습니다. (데이터 파일을 따로 제공하지 않기 때문입니다.) Part1 개괄 원본 Answer questions 1-4 using the network G1, a network of friendships at a university department. Each node corresponds to a person, and an edge indicates friendship. import networkx as nx G1 = nx.read_gml('as..
-
[NetworkX] HITS 알고리즘 (HITS Algorithm)Data & ML & AI/NetworkX 2023. 1. 10. 00:15
네트워크 그래프에서 노드의 중심성을 파악하고 계산하는 방법들을 살펴보았습니다. 연결중심성(Degree Centrality)과 근접중심성(Closeness Centrality) 매개중심성(Betweenness Centrality) 페이지랭크(Page Rank) 이번엔 페이지랭크와 유사 하면서도 특별한 차이를 갖는 알고리즘을 소개합니다. "얼마나 중심이 되는가", "얼마나 hub로서 역할을 하는가"를 별개로 계산하는 방법을 소개합니다. 바로 HITS 알고리즘(Hypertext Induced Topic Selection, HITS Algorithm)입니다. 페이지랭크와 구분되는 HITS 알고리즘의 차이점 페이지랭크와 구분되는 HITS 알고리즘의 특별한 점은 크게 두가지로 볼 수 있습니다. 1) 전체 그래프를 ..
-
[NetworkX] 페이지랭크 (PageRank)Data & ML & AI/NetworkX 2023. 1. 4. 01:18
지난 글에서는 페이지랭크의 원리를 간략하게 살펴보았습니다. 페이지랭크 (PageRank) 원리 네트워크 그래프에서 노드의 중심성을 파악하고 계산하는 방법들을 살펴보았습니다. 연결중심성(Degree Centrality)과 근접중심성(Closeness Centrality) 매개중심성(Betweenness Centrality) 중심성을 파악하는 brain-nim.tistory.com 이번에는 NetworkX로 페이지랭크를 구현, 계산해 보겠습니다. PageRank 페이지 랭크 import networkx as nx edges = [('A','B'),('B','C'),('B','D'),('C','B'),('D','A'),('D','C'),('D','E'),('E','A')] G = nx.DiGraph() G.a..
-
페이지랭크 (PageRank) 원리Data & ML & AI/NetworkX 2022. 12. 23. 20:33
네트워크 그래프에서 노드의 중심성을 파악하고 계산하는 방법들을 살펴보았습니다. 연결중심성(Degree Centrality)과 근접중심성(Closeness Centrality) 매개중심성(Betweenness Centrality) 중심성을 파악하는 간단하고 효율적인 또 다른 방법으로 페이지랭크(PageRank)가 있습니다. PageRank 페이지 랭크 "하이퍼링크 네트워크 구조에서 웹페이지들의 중요성을 어떻게 측정할까"에 대한 고민으로 구글이 개발 핵심 개념 및 가정 : 중요한 노드들은 또다른 중요한 페이지로부터 많은 유입 링크를 가진다. 방향성을 가진 네트워크에 효과적 한 노드의 페이지랭크 점수는 다른 노드의 페이지랭크 점수에 의존적 (따라서 여러번 반복적으로-순환적Circular으로- 계산하고 업데이트..
-
[NetworkX] 매개중심성 (Betweenness Centrality)Data & ML & AI/NetworkX 2022. 12. 11. 19:50
지난 글에는 연결중심성(Degree Centrality)과 근접중심성(Closeness Centrality)를 살펴보았습니다. [NetworkX] 연결중심성, 근접중심성 (Degree Centrality, Closeness Centrality) 여기에 가라데 클럽에 속한 34명의 친구관계를 나타낸 네트워크 그래프가 있습니다. import networkx as nx G = nx.karate_club_graph() G = nx.convert_node_labels_to_integers(G,first_label=1) 여기서 가장 중요한 노드를 brain-nim.tistory.com 또 어떤 기준으로 중요한 노드를 뽑을 수 있을지 똑같은 그래프를 예시로 실습해 보겠습니다. import networkx as nx ..
-
[NetworkX] 연결중심성, 근접중심성 (Degree Centrality, Closeness Centrality)Data & ML & AI/NetworkX 2022. 12. 7. 00:44
여기에 가라데 클럽에 속한 34명의 친구관계를 나타낸 네트워크 그래프가 있습니다. import networkx as nx G = nx.karate_club_graph() G = nx.convert_node_labels_to_integers(G,first_label=1) 여기서 가장 중요한 노드를 뽑아야 한다면, 무엇이 가장 중요한 노드일까요? 어떤 기준으로 중요한 노드를 뽑을 수 있을까요? Degree Centrality 연결 중심성 아는 친구가 가장 많다면 = 직접 연결된 관계가 가장 많다면 중요한 노드 아닐까요? 이웃이 얼마나 많은가를 연결중심성(Degree Centrality)이라고 부릅니다. 연결 중심성이 높은 노드를 기준으로 중요한 노드를 고른다면, 가장 중요한 노드 5개는 34, 1, 33, ..
-
파이썬 TDD 예제: chapter 03 유료 서비스 만료일 계산기 (feat. unittest)Programing/TDD 2022. 12. 6. 00:08
이 글은 아래의 스터디 도서의 내용 중, 책의 개발 순서를 따라가지 않고 자체적으로 실습한 TDD 과정입니다. 따라서 개발 내용 및 테스트 구조가 불완전 할 수 있음을 먼저 안내 드립니다. (부족한 점이나 제가 생각해보지 못한 점에 대한 충고 주시면 정말 감사드리겠습니다.) 테스트 주도 개발 시작하기 - YES24 TDD(Test-Driven Development)는 테스트부터 시작한다. 구현을 먼저 하고 나중에 테스트하는 것이 아니라 먼저 테스트를 하고 그다음에 구현한다. 구현 코드가 없는데 어떻게 테스트할 수 있을까? 여기 www.yes24.com 파이썬으로 TDD를 진행하는 기본적인 방식에 대해서는 아래의 글을 참조해 주세요 해결 - 2~9개월 치(2~9만원) -> 이때도 특수조건(2월29일)해보기..