Data & ML & AI
-
[NetworkX] 노드에 속성 부여하는 방법 (파이썬 네트워크 분석 8)Data & ML & AI/NetworkX 2022. 10. 16. 18:52
엣지에 속성을 부여하는 방법이 간단했던 것처럼, 노드에 속성을 부여하는 방법 또한 간단합니다. 1. 속성 부여하기 : G.add_node(), G.add_nodes_from() # 그래프 생성하기 G = nx.Graph() family = [('A','B',6),('E','J',15)] friend = [('B','C',13),('G','F',9)] coworker = [('C','F',21),('D','E',2),('E','I',10),('I','J',3),('E','H',9)] neighbor = [('C','E',25)] G.add_weighted_edges_from(friend, relation='family') G.add_weighted_edges_from(friend, relation='fri..
-
[NetworkX] add_edges_from의 사용방법Data & ML & AI/NetworkX 2022. 10. 14. 20:24
G.add_edge는 엣지 하나하나를 정의하기엔 편하지만, 한번에 여러개의 엣지를 정의하기엔 불편합니다. 때문에 NetworkX는 add_edges_from과 add_weighted_edges_from을 지원합니다. 각 노드의 속성으로 가중치값만 가지는 weight Graph라면 add_weighted_edges_from을 사용하는 것이 더 편리하겠지만, 2개 이상의 여러 속성들을 가진다면 add_edges_from을 쓰는것이 더 나을 수 있습니다. 그런데 멀티그래프(MultiGraph, 다중그래프)일때와 아닐때 사용방법에 차이가 조금 있습니다. 1. MultiGraph가 아닌 경우 : Graph(), DiGraph() 참조 : Graph.add_edges_from() 공식문서 # 공식문서 중 일부 발췌..
-
[NetworkX] 멀티그래프 데이터 읽기 (파이썬 네트워크 분석 7)Data & ML & AI/NetworkX 2022. 10. 12. 00:06
이전 글에서는 일반적인 무방향 그래프(nx.Graph())와 방향그래프(nx.DiGraph())의 데이터를 읽는 방법을 살펴보았습니다. https://brain-nim.tistory.com/48 다중그래프 (nx.MultiGraph(), nx.MultiDiGraph())에서는 아주 조금 다른 점이 있습니다. 일단 아래사진 우측의 그래프를 생성한 뒤 이어가겠습니다. (여기서는 nx.MultiDiGraph()를 예시로 합니다.) # 하지만 타자가 귀찮기 때문에 A~G 노드끼리 연결된 엣지만 작성했습니다. G = nx.MultiDiGraph() family = [('A','B',{'weight':6})] friend = [('A','B',{'weight':18}),('C','B',{'weight':13}),(..
-
[NetworkX] 그래프 데이터 읽기 (파이썬 네트워크 분석 6)Data & ML & AI/NetworkX 2022. 10. 11. 20:05
네트워크 그래프를 생성하더라도 데이터를 읽어내지 못한다면 쓸모가 없습니다. 이번엔 구축된 그래프에서 데이터를 읽어보겠습니다. 아래의 그래프를 기준으로 진행하겠습니다. import networkx as nx G = nx.Graph() # 엣지 하나씩 정의하기 G.add_edge('A','B', weight=6, relation='family') G.add_edge('E','J', weight=15, relation='family') # 한번에 여러 엣지 정의하기 friend = [('B','C',13),('G','F',9)] coworker = [('C','F',21),('D','E',2),('E','I',10),('I','J',3),('E','H',9)] neighbor = [('C','E',25)] G..
-
[NetworkX] 그래프 종류 종합정리 (파이썬 네트워크 분석 5)Data & ML & AI/NetworkX 2022. 10. 9. 17:58
앞선 글들에서 여러가지 종류의 그래프들을 만들어 보았습니다. 최종적으로 간략 정리를 해봅시다. 1. Undirected Graph (무방향 그래프) 가장 기본적인 형태의 그래프로, 단순하게 노드와 엣지를 연결한 네트워크입니다. (생성, 시각화 하는 방법 : https://brain-nim.tistory.com/35) [NetworkX] 파이썬 네트워크 분석 1 (무방향, 방향 그래프 생성하기) 네트워크(그래프)는 item들 간의 연결성을 포함, 표현하는 방식입니다. 그리고 파이썬을 이용해 네트워크 구조, 데이터셋을 쉽게 다룰 수 있습니다. NetworkX라는 라이브러리를 이용하면 쉽게 진행 brain-nim.tistory.com 2. Directed Graph (방향 그래프) 이쪽 노드에서 저쪽 노드로,..
-
[DeepLabCut] DeepLabCut 설치하기Data & ML & AI/Vision Model 2022. 9. 6. 15:45
GitHub - DeepLabCut/DeepLabCut: Official implementation of DeepLabCut: Markerless pose estimation of user-defined features with Official implementation of DeepLabCut: Markerless pose estimation of user-defined features with deep learning for all animals incl. humans - GitHub - DeepLabCut/DeepLabCut: Official implementation ... github.com 0. 사전절차 DeepLabCut은 Anaconda를 사용하는 것을 권장하고 있습니다. CPU에서도 활용..
-
[Neo4j + Python] Python에서 Neo4j 쿼리 결과 읽기Data & ML & AI/GraphDB(Neo4j) 2022. 8. 29. 19:06
지난 글에서는 파이썬에서 local Neo4j DBMS과 세션을 연결해보았습니다. [Neo4j + Python] Python에서 Neo4j DB 접속하고 쿼리하기 프로젝트 진행을 간소화 하기 위해 Neo4j DB의 노드와 엣지를 만드는걸 자동화 하고싶습니다. 하지만 1) csv파일을 다운받아서 2) Neo4j desktop을 통해 csv를 import해주고, 3) csv를 죄다 로드한 뒤, 4) 그 brain-nim.tistory.com 이번에는 읽어온 정보를 객체에 넣어봅시다. 1. 세션 연결 후 쿼리 실행 from neo4j import GraphDatabase # Initialize connection to database driver = GraphDatabase.driver('bolt://loca..
-
[Neo4j + Python] Python에서 Neo4j DB 접속하고 쿼리하기Data & ML & AI/GraphDB(Neo4j) 2022. 8. 28. 21:37
프로젝트 진행을 간소화 하기 위해 Neo4j DB의 노드와 엣지를 만드는걸 자동화 하고싶습니다. 하지만 1) csv파일을 다운받아서 2) Neo4j desktop을 통해 csv를 import해주고, 3) csv를 죄다 로드한 뒤, 4) 그 중 필요한 것들끼리만 관계를 설정해 주고.... 매우 번거로워 보입니다. Neo4j csv파일 열기(LOAD CSV) 많은 수의 원본데이터, raw데이터는 csv, 엑셀과 같은 테이블 형식의 데이터입니다. 처음부터 그래프DB로 시작하는 극히 드문 경우가 아니라면 테이블 형식의 데이터를 그래프DB로 옮겨와야 한다 brain-nim.tistory.com 물론 저것만으로 충분히 할 수 있는 것은 많겠지만, 차라리 다른 프로그래밍 언어를 통해서 제어하는 것이 나아보입니다. 파..