데이터사이언스 5

삼국지 등장인물 상호작용 네트워크 만들기

목차 " data-ke-type="html">HTML 삽입미리보기할 수 없는 소스이번 포스트에서는 제가 그동안 작성해 온 네트워크 관련 모든 포스트를 활용하여 삼국지 등장인물 간의 상호작용 네트워크를 생성하고 분석해 보겠습니다. 이번 포스트의 최종 목표는 아래와 같이 네트워크를 시각화하는 것입니다.1. Mecab으로 삼국지 텍스트에서 형태소 추출하기1 - 1. Mecab 사전에 삼국지 등장인물 이름 등록하기가장 먼저 해야 할 작업은 삼국지 텍스트에서 형태소를 추출하는 것입니다. 이 과정을 위해 Mecab을 사용하겠습니다.Mecab의 설치 방법은 아래 포스트를 참고하시기 바랍니다.HTML 삽입미리보기할 수 없는 소스 이번 포스트에서는 파이참(Pycharm)에 mecab을 설치하고 사용하는 방법에 대해서..

네트워크 데이터 분석 - Community detection: Label propagation

목차 " data-ke-type="html">HTML 삽입미리보기할 수 없는 소스이번 포스트에서는 커뮤니티 탐지의 마지막 알고리즘인 label propagation에 대해서 다루겠습니다.1. ProcedureLabel propagation은 한 노드의 이웃들은 보통 같은 커뮤니티에 속한다는 아이디어에서 출발합니다. 알고리즘의 절차는 다음과 같습니다.각 노드를 다른 커뮤니티에 할당합니다. 즉, 각 노드에 다른 label을 부여합니다.모든 노드를 무작위한 순서로 방문하면서 다음을 수행합니다: 해당 노드의 label을 다수의 이웃들이 갖는 label로 바꿔줍니다. 만약 동률이 있다면,  동률인 label중 하나를 무작위로 선택합니다.모든 노드가 다수의 이웃들에 할당된 label을 갖게 되면 (station..

네트워크 데이터 분석 - Community detection: Modularity

목차 " data-ke-type="html">HTML 삽입미리보기할 수 없는 소스이번 포스트에서는 커뮤니티 탐지 알고리즘중 modularity(모듈성)를 이용하는 알고리즘들에 대해서 다루겠습니다.1. Modularity(모듈성)지난 포스트에서는 Girvan-Newman 알고리즘을 이용하여 네트워크의 partition을 구했습니다. 하지만 Girvan-Newman 알고리즘은 hierarchical clustering을 이용하기 때문에 여러 partition들을 제시할 뿐, 어떤 partition을 선택해야하는 지에 대해서는 아무런 답을 주지 않습니다. (Girvan-Newman 알고리즘에 더 알고 싶으시면 아래의 링크를 참고해 주세요.)HTML 삽입미리보기할 수 없는 소스 이번 포스트에서는 네트워크에서..

네트워크 데이터 분석 - Community detection: Girvan-Newman algorithm

목차 " data-ke-type="html">HTML 삽입미리보기할 수 없는 소스 이번 포스트에서는 네트워크에서 community를 탐지하는 알고리즘중 하나인 Girvan-Newman algorithm에 대해서 다뤄보겠습니다.현실의 네트워크는 assortativity와 같은 이유로, 비슷한 사람 또는 노드 끼리 연결되고, 그 결과로 커뮤니티 구조가 나타난다는 것을 지난 포스트에서 다뤘습니다. 학교나 반과 같은 커뮤니티는 데이터로 주어지지만, 보통 네트워크 데이터에서 커뮤니티에 대한 정보는 주어지지 않습니다. 이러한 경우, 네트워크에서 커뮤니티들을 탐지 (community detection)할 필요가 있습니다. Community detection은 노드 클러스터링의 한 종류이며, 때로는 클러스터링보다 ..

네트워크 데이터 분석 - 서론

목차 " data-ke-type="html">HTML 삽입미리보기할 수 없는 소스  이번 포스트에서는 네트워크 데이터 분석의 기초가 되는 개념들을 다뤄보겠습니다.1. 그래프의 구성 요소네트워크 데이터란 두 관측치 사이의 연결성을 나타내는 데이터로, 그래프의 형태로 표현됩니다.그래프는 N개의 노드 (node) 와 노드들을 잇는 edge들로 정의할 수 있습니다. 앞으로 ($i$,$j$)는 노드 $i$와 노드 $j$를 잇는 edge로 정의하겠습니다. 이 경우, 두 노드 $i$, $j$ 는 인접 (adjacent) 하다고 합니다.네트워크의 edge는 방향성이 있는 경우 (directed)와 방향성이 없는 경우 (undirected)로 나뉩니다. Undirected graph의 edge ($i$,$j$)는 $..