Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- subplot
- unstack
- 정규분포 MLE
- 가능도
- Python
- pivot table
- groupby
- 딥러닝
- BOXPLOT
- VSCode
- Python 유래
- linalg
- 최대가능도 추정법
- Numpy data I/O
- 부스트캠프 AI테크
- namedtuple
- dtype
- Operation function
- python 문법
- 표집분포
- seaborn
- Array operations
- 카테고리분포 MLE
- Comparisons
- Numpy
- type hints
- Python 특징
- scatter
- boolean & fancy index
- ndarray
Archives
- Today
- Total
또르르's 개발 Story
[24-2] Node2vec Library 본문
Node2vec은 임의보행 기반 접근법에서 2차 치우친 임의보행(Second-order Biased Random Walk)을 사용한 모형입니다.
1️⃣ 설정
networkx와 node2vec을 설치합니다.
!pip install networkx
!pip install node2vec
필요한 모듈을 import 합니다.
import networkx as nx
from node2vec import Node2Vec
from matplotlib import pyplot as plt
2️⃣ node2vec
1) Node2Vec 함수
Node2Vec 함수는 edge 별 확률 계산(p, q에 따른 edge별 확률 계산) & random walk 생성을 해줍니다.
- dimensions : embedding 공간 차원
- walk_length : random walk 길이 제한
- num_walks : 시작 지점 별 샘플링하는 랜덤워크 수
- workers : 사용하는 thread 개수
node2vec = Node2Vec(G, dimensions=16, walk_length=4, num_walks=200, workers=4)
이후, node embedding을 구할 수 있습니다.
- window : 얼마나 가까이 위치하는 정점들을 유사한 것으로 보는지
model = node2vec.fit(window=2, min_count=1, batch_words=4)
2) 출력
wv를 사용하여 각 정점 별 embedding을 확인할 수 있습니다.
print("#### Embedding Vector of Node 2 ####")
>>> print(model.wv['2'])
#### Embedding Vector of Node 2 ####
[ 0.54528505 -0.7130727 -0.02558359 -0.39141628 0.4070473 0.40119523
0.03581685 0.9786871 -1.1339003 0.44845396 0.61817944 0.72981864
-0.31388542 0.36739552 -1.5445774 1.040954 ]
wv.most_similar() 함수를 사용해 가장 유사한 10개의 node를 출력할 수 있습니다.
print("#### Most Similar Nodes to Node 2")
>>> model.wv.most_similar('2')
#### Most Similar Nodes to Node 2
[('3', 0.995975136756897),
('5', 0.9943181276321411),
('1', 0.9939799308776855),
('6', 0.9936045408248901),
('9', 0.9932981133460999),
('7', 0.9931290149688721),
('4', 0.9921121597290039),
('8', 0.9898156523704529),
('0', 0.9670246839523315),
('10', 0.6719188690185547)]
'부스트캠프 AI 테크 U stage > 실습' 카테고리의 다른 글
[25-1] GraphSAGE 모델 구현 using DGL Library (0) | 2021.02.27 |
---|---|
[24-3] 추천 시스템 using surprise library (0) | 2021.02.26 |
[23-3] Collaborative Filtering 구현 (0) | 2021.02.25 |
[23-2] Girvan-Newman Algorithm Using networkx (0) | 2021.02.25 |
[22-2] PageRank using Networkx (0) | 2021.02.23 |