Tag Archives: tracking

파이썬으로 네트워크 그리기

다음 학기 TA 때문에 요즘 파이썬을 공부하고 있는데, 요 며칠간 파이썬에 갑자기 빠지는 바람에 블로깅 할 생각이 안 들었다. 파이썬은 간단한 코딩이 가능하다는 것과 다양한 확장팩(?)이 있다는 것이 정말 큰 장점인듯. numpyscipynetworkxmatplotlib 이런 패키지들을 흥미롭게 만져보고 있다.

이 밑에 있는 동영상이 며칠간 혼자 뚝딱거리면서 처음으로 그려본 것이다. (HD를 켜고 보시길)

사용한 데이터는 “MSNBC.com Anonymous Web Data Data Set“라는 것으로 1999년도에 MSNBC.com의 방문자가 페이지를 어떻게 돌아다니나를 저장해 놓은 텍스트 파일이다. 사이트의 페이지는 17종류로 구분되어 있다. (메인, 뉴스, 과학/기술, 지역, 사설, 생방송, 기타, 날씨, MSN 뉴스, 건강, 리빙, 비지니스, MSN 스포츠, 스포츠, 요약, 게시판, 여행)

약 100만개 가량의 데이터가 아래와 같은 형식으로 들어있다.

1 1
2
3 2 2 4 2 2 2 3 3
5
1
6
1 1
6
6 7 7 7 6 6 8 8 8 8

위에 있는 동영상은 이동평균값을 기준으로 만든 것이고, 전체 100만개 데이터를 모두 평균 내어 그린 그림은 아래와 같다.

network_viz
(오른쪽 밑에 "# Visitor: 0"은 신경쓰지 마시길)

얼핏보고 들었던 생각:

  • 역시 메인 화면이 짱임.
  • 전체적으로 허브 구조. 메인 화면과 (뉴스, 비지니스, 생방송, 스포츠, 지역, 기타) 페이지들이 강하게 연결되어 있음.
  • MSN 스포츠는 일반 스포츠와 나름 관계가 보이는데, MSN 뉴스는 일반 뉴스 페이지와 거의 전혀 관계가 없는 듯.
  • 날씨는 따로 동떨어져 있지만, 또 다른 날씨 페이지로의 클릭은 많이 유발하는 듯.
  • 기타 등등

혹시 동영상 안의 범례를 옮겨 적자면, (선의 굵기, 점의 크기, 점의 색깔의 진하기) = (얼마나 많은 사용자가 지나갔는지, 얼마나 많은 사용자가 방문했는지, 내부적으로 도는 링크의 비율) 이다.

코드가 워낙 개차반이라 올릴 생각은 안 듭니다만, 공부 삼아 보고 싶은 분 있으면 댓글 남겨주세요. (사용한 패키지: networkx, matplotlib, numpy)