관련 분석과 스펙트럼 집합을 실시하여 논문의 합저 관계를 시각화하다

개시하다


이틀 연속 투고하다.
이번에는 저번에서 얻은 Pubmed 데이터를 이용하여 간단한 분류를 진행한다.
①pubmed 검색 결과에서 auths list 가져오기
②authhorslist에 대한 연관 분석을 통해 많은 인물 조합을 찾아낸다.
③ 연관 분석 결과에 대한 스펙트럼 집계

프로그램 라이브러리


import time
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
import chromedriver_binary
from selenium import webdriver
import pyfpgrowth
import networkx as nx
from sklearn import cluster
%matplotlib inline

①pubmed에서 데이터 가져오기


이전 발언과 같은 함수 (get pubmed info) 를 사용했기 때문에 함수 내부는 생략됩니다.
분석 대상으로 연구실 내 파벌(단체)이 많은 교수를 꼽았다.

data = get_pubmed_info("miura masayuki")
author_list = [data[i][2].split(",") for i in range(len(data))]
author_list = [[author.split("(")[0].replace("\n"," ").strip(".").strip()
   for author in author_list[i]] for i in range(len(author_list))]

② 연관 분석


pyfpgrowth에서 방금 얻은 데이터에 대해 관련 분석을 한다.

patterns = pyfpgrowth.find_frequent_patterns(author_list, 3)
G = nx.Graph()
for key in patterns.keys():
    if len(key) == 2:
        G.add_path(key)
pr = nx.pagerank(G)
plt.figure(figsize=(20,20))
nx.draw_networkx(G, node_color=list(pr.values()), cmap=plt.cm.Reds, font_size=15, node_size=5000)

결과를networkx에서 가시화


페이지rank에서 네트워크의 중요성은 착색됩니다. (색이 짙을수록 중요합니다.)
이 네트워크 그림에서도 집단의 존재를 느낄 수 있다.

③ 스펙트럼 클러스터


pyfpgrowth에서 얻은 데이터를 성형하여 스펙트럼 집합을 진행한다.

데이터 성형 과정


key_list = []
value_list = []
for key, value in patterns.items():
    if len(key) == 2:
        key_list.append(key)
        value_list.append(value)
df = pd.DataFrame()
for (i, j), num in zip(key_list, value_list):
    df.loc[i, j] = num
    df.loc[j, i] = num
df = df.loc[df.columns].fillna(0)
sns.heatmap(df)

데이터 성형 결과를 히트맵으로 만들면 이런 느낌이에요.

자, 특수 집합!


spectral = cluster.SpectralClustering(n_clusters=9, affinity="precomputed")
result = spectral.fit(df.values)
result_se = pd.Series(result.labels_, index=df.index)
plt.figure(figsize=(20,20))
nx.draw_networkx(G, node_color=result_se, cmap=plt.cm.Accent, font_size=15, node_size=5000)
분류 결과는 방금 전의 네트워크 그림에 반영되었다.
우리는 모든 연구팀이 깨끗하게 분리되었다는 것을 분명히 알 수 있다.
짙은 녹색은 포유동물계, 차색은 창포신경계, 핑크색은 외부의 공동연구소다.
참고 자료
http://www.f.u-tokyo.ac.jp/~genetics/

끝맺다


상당히 아름답게 집합이 완성되었다.

좋은 웹페이지 즐겨찾기