Stellargraph Python (개발자를 위한 작동 방식)
현실에서 초능력인 투시력과 가장 유사한 것은 무엇일까요? 그래프 구조로 표현된 데이터를 기반으로 예측하는 능력입니다. 핵심은 정보를 노드와 엣지로 해석하고, 그래프 내의 관계와 상호작용을 분석하여 귀중한 통찰력을 얻는 것입니다. 표 형식이나 순차적 데이터 표현에 초점을 맞추는 기존 방식과 달리, 그래프 머신 러닝 워크플로는 이러한 연결을 활용하여 숨겨진 패턴을 찾아냅니다.
이러한 이유로 그래프 합성곱 신경망(GCN)과 그래프 어텐션 기반 방법론이 그래프 데이터에 적용되어 기계 학습 모델이 노드 분류, 순서 예측, 링크 예측 및 그래프 범주화와 같은 작업을 처리할 수 있게 되었습니다. 이러한 기술은 복잡한 관계에 대한 미묘한 이해가 필요한 영역에서 특히 유용하며, 시스템이 정확한 예측을 하거나 심오한 통찰력을 도출할 수 있도록 지원합니다. 특히 소셜 네트워크 및 추천 시스템과 같은 분야에서 효과적입니다.
이 글에서는 StellarGraph를 사용하여 그래프를 생성한 다음 IronPDF 를 이용하여 PDF 파일로 변환하는 방법을 설명합니다.
StellarGraph란 무엇인가요?
StellarGraph 는 그래프 구조 데이터를 이용한 머신러닝을 위해 설계된 Python 라이브러리입니다. StellarGraph는 그래프를 생성, 조작 및 시각화하는 데 필요한 포괄적인 도구 세트를 제공합니다. 또한, 복잡한 그래프 데이터를 학습하고 분석하는 데 특화된 고급 그래프 기반 머신러닝 알고리즘을 제공하며, 여기에는 지식 그래프 완성 기능이 포함됩니다.
StellarGraph는 그래프 컨볼루션 네트워크 및 그래프 어텐션 네트워크와 같은 모델 구현을 통해 노드 분류, 링크 예측 및 그래프 분류와 같은 작업을 지원합니다.

또한 TensorFlow 및 Keras와 같은 여러 인기 있는 그래프 머신러닝 워크플로우와 통합되어 있어 소셜 네트워크, 생물정보학 및 추천 시스템과 같은 대부분의 분야에서 복잡한 네트워크를 분석하고 통찰력을 도출하는 데 적합한 솔루션입니다.
주요 특징
- 간소화된 그래프 머신러닝 워크플로우: StellarGraph는 그래프 머신러닝 파이프라인을 간소화하여 데이터 로딩부터 임베딩 벡터 계산 및 신경망 예측에 이르기까지 사용자를 안내합니다. 이 플랫폼은 딥 그래프 CNN 및 귀납적 그래프 컨볼루션 네트워크를 포함한 다양한 그래프 컨볼루션 기법을 지원하여 노드 특징을 강화하고 강력한 노드 분류를 가능하게 합니다.
- 고급 기술 및 모델: 이 라이브러리에는 시공간 데이터 처리 및 시퀀스 예측을 효과적으로 수행하도록 설계된 시퀀스 그래프 어텐션 네트워크 및 시간적 GCN과 같은 정교한 모델이 포함되어 있습니다. 이러한 모델은 시간적 노드 속성과 이질적인 방향성 엣지 가중치를 활용하여 예측 정확도와 관련성을 향상시킵니다.
- 포괄적인 문서 및 로컬 데모: StellarGraph는 알고리즘에 대한 자세한 문서와 로컬에서 실행할 수 있는 데모 노트북을 제공하여 다양한 알고리즘 구현에 대한 실질적인 통찰력을 제공합니다. 이러한 자료들은 그래프 기반 머신러닝과 그 응용 분야에 대한 더 깊은 이해를 돕습니다.
StellarGraph 시작하기
StellarGraph를 사용하여 그래프를 생성하려면 라이브러리 설치, 그래프 생성, 노드 및 엣지 특징 정의, 그리고 마지막으로 머신러닝 모델 설정 단계를 안내받게 됩니다. 시작하는 데 도움이 되는 단계별 가이드입니다.
StellarGraph 및 기타 관련 라이브러리 설치
먼저 다음 라이브러리가 올바르게 설치되었는지 확인해야 합니다. 아직 설치하지 않았다면 아래에 설치에 사용되는 명령어도 나와 있습니다.
pip install stellargraph
pip install tensorflow
pip install pandas
pip install numpypip install stellargraph
pip install tensorflow
pip install pandas
pip install numpyPython에서 StellarGraph 사용하기
StellarGraph에 포함된 다양한 알고리즘을 활용하여 그래프를 정의하고, 엣지와 노드 기능을 추가하는 간단한 예입니다.
import pandas as pd
import numpy as np
from stellargraph import StellarGraph
import matplotlib.pyplot as plt
import networkx as nx
# Step 1: Create Sample Graph Data
# Generating random feature values for 5 nodes
nodes = pd.DataFrame({
"feature1": np.random.randn(5),
"feature2": np.random.randn(5)
}, index=[f"node{i}" for i in range(5)])
# Defining edges in the graph
edges = pd.DataFrame({
"source": ["node0", "node1", "node2", "node3"],
"target": ["node1", "node2", "node3", "node4"]
})
# Step 2: Create StellarGraph Object
G = StellarGraph(nodes=nodes, edges=edges)
# Step 3: Define and Visualize the Graph
# Plot the graph
fig, ax = plt.subplots(figsize=(8, 6))
# Compute positions for each node in a circular layout
pos = {node: (np.cos(2 * np.pi * i / len(G.nodes())), np.sin(2 * np.pi * i / len(G.nodes())))
for i, node in enumerate(G.nodes())}
# Draw the graph using NetworkX
nx.draw(G.to_networkx(), pos, with_labels=True, node_color='lightblue', edge_color='grey', node_size=500, font_size=10, ax=ax)
# Add a title for the graph
plt.title('StellarGraph Visualization')
# Save the visualization as an image
plt.savefig('graph.png')
plt.close()import pandas as pd
import numpy as np
from stellargraph import StellarGraph
import matplotlib.pyplot as plt
import networkx as nx
# Step 1: Create Sample Graph Data
# Generating random feature values for 5 nodes
nodes = pd.DataFrame({
"feature1": np.random.randn(5),
"feature2": np.random.randn(5)
}, index=[f"node{i}" for i in range(5)])
# Defining edges in the graph
edges = pd.DataFrame({
"source": ["node0", "node1", "node2", "node3"],
"target": ["node1", "node2", "node3", "node4"]
})
# Step 2: Create StellarGraph Object
G = StellarGraph(nodes=nodes, edges=edges)
# Step 3: Define and Visualize the Graph
# Plot the graph
fig, ax = plt.subplots(figsize=(8, 6))
# Compute positions for each node in a circular layout
pos = {node: (np.cos(2 * np.pi * i / len(G.nodes())), np.sin(2 * np.pi * i / len(G.nodes())))
for i, node in enumerate(G.nodes())}
# Draw the graph using NetworkX
nx.draw(G.to_networkx(), pos, with_labels=True, node_color='lightblue', edge_color='grey', node_size=500, font_size=10, ax=ax)
# Add a title for the graph
plt.title('StellarGraph Visualization')
# Save the visualization as an image
plt.savefig('graph.png')
plt.close()이 예시는 StellarGraph 라이브러리를 Matplotlib 및 NetworkX 라이브러리와 함께 사용하여 그래프를 구성하고 간단하게 시각화하는 방법을 보여줍니다. 이 예제는 데이터 처리를 위해 필요한 라이브러리인 pandas와 Numpy를 가져오는 것으로 시작합니다. 그래프 구조 자체를 생성하기 위한 StellarGraph; 시각화를 위해 Matplotlib과 NetworkX를 사용했습니다.
먼저 샘플 그래프 데이터가 생성됩니다. 이 예제에서는 node0부터 node4까지 식별자를 가진 5개의 노드에 대해 임의의 특징 값을 포함하는 nodes DataFrame이 있습니다. edges DataFrame은 간선을 설명합니다. 이 파일에는 연결된 노드를 설명하는 소스-대상 쌍이 포함되어 있습니다.
그런 다음 노드 및 엣지 데이터를 사용하여 StellarGraph 클래스의 인스턴스가 생성되며, 이 인스턴스에는 그래프에 저장된 데이터 구조가 저장됩니다.
마지막으로, 이 그래프를 시각화합니다. 이 함수는 노드 배치를 위한 원형 레이아웃을 계산하는 기능을 제공하며, 각 노드는 극좌표에 따라 배치됩니다. NetworkX 라이브러리는 이 StellarGraph 객체를 NetworkX 그래프로 변환하고, Matplotlib을 사용하여 그래프를 그립니다. 노드는 연한 파란색이고, 엣지는 회색이며, 그래프에는 레이블이 지정되어 있고, 마지막으로 크기와 글꼴이 사용자 정의됩니다. 마지막으로 그래프는 graph.png라는 이미지 파일로 저장되고 그래프 창이 닫힙니다.
출력

이 워크플로는 그래프의 생성, 표현 학습 및 시각화를 가능하게 합니다. 이렇게 하면 그래프를 기반으로 한 분석을 수행하고 데이터를 제시하는 것이 훨씬 쉬워집니다.
IronPDF 소개합니다

IronPDF for Python 모듈을 사용하면 프로그래밍 방식으로 PDF를 생성하고 편집할 수 있습니다. HTML에서 PDF를 생성하고, 여러 PDF 파일을 하나로 병합하고, 텍스트, 사진 및 주석이 추가된 기존 PDF 파일도 활용할 수 있습니다. 이와 대조적으로, IronPDF HTML로 작성된 웹사이트나 보고서, 송장 또는 기타 문서 작성 시 생성되는 기타 인터넷 콘텐츠를 사용하여 고품질 PDF를 생성할 수 있도록 지원합니다.
이 프로그램의 고급 기능으로는 페이지 레이아웃 편집, 문서 암호화, PDF에서 콘텐츠 추출 등이 있습니다. 제품이 PDF를 처리하는 방식을 개선하면 개발자들이 제품의 전반적인 유용성을 향상시킬 수 있는 기반이 마련됩니다.
IronPDF 라이브러리 설치
다음은 Python에서 IronPDF 프로젝트에서 사용할 수 있도록 하는 Install-Package 명령입니다.
pip install ironpdfpip install ironpdfStellarGraph와 IronPDF 결합하세요
다음은 StellarGraph에서 생성한 그래프 이미지를 PDF로 변환하는 코드입니다.
import pandas as pd
import numpy as np
from stellargraph import StellarGraph
import matplotlib.pyplot as plt
import networkx as nx
from ironpdf import ImageToPdfConverter, License
import warnings
warnings.filterwarnings('ignore')
# Replace "YOUR LICENSE KEY GOES HERE" with your IronPDF license key
License.LicenseKey = "YOUR LICENSE KEY GOES HERE"
# Step 1: Create Sample Graph Data
nodes = pd.DataFrame({
"feature1": np.random.randn(5),
"feature2": np.random.randn(5)
}, index=[f"node{i}" for i in range(5)])
edges = pd.DataFrame({
"source": ["node0", "node1", "node2", "node3"],
"target": ["node1", "node2", "node3", "node4"]
})
# Step 2: Create StellarGraph Object
G = StellarGraph(nodes=nodes, edges=edges)
# Step 3: Define and Visualize the Graph
fig, ax = plt.subplots(figsize=(8, 6))
pos = {node: (np.cos(2 * np.pi * i / len(G.nodes())), np.sin(2 * np.pi * i / len(G.nodes())))
for i, node in enumerate(G.nodes())}
nx.draw(G.to_networkx(), pos, with_labels=True, node_color='lightblue', edge_color='grey', node_size=500, font_size=10, ax=ax)
plt.title('StellarGraph Visualization')
plt.savefig('graph.png')
plt.close()
# Step 4: Convert the image to PDF using IronPDF
ImageToPdfConverter.ImageToPdf('graph.png').SaveAs("result.pdf")import pandas as pd
import numpy as np
from stellargraph import StellarGraph
import matplotlib.pyplot as plt
import networkx as nx
from ironpdf import ImageToPdfConverter, License
import warnings
warnings.filterwarnings('ignore')
# Replace "YOUR LICENSE KEY GOES HERE" with your IronPDF license key
License.LicenseKey = "YOUR LICENSE KEY GOES HERE"
# Step 1: Create Sample Graph Data
nodes = pd.DataFrame({
"feature1": np.random.randn(5),
"feature2": np.random.randn(5)
}, index=[f"node{i}" for i in range(5)])
edges = pd.DataFrame({
"source": ["node0", "node1", "node2", "node3"],
"target": ["node1", "node2", "node3", "node4"]
})
# Step 2: Create StellarGraph Object
G = StellarGraph(nodes=nodes, edges=edges)
# Step 3: Define and Visualize the Graph
fig, ax = plt.subplots(figsize=(8, 6))
pos = {node: (np.cos(2 * np.pi * i / len(G.nodes())), np.sin(2 * np.pi * i / len(G.nodes())))
for i, node in enumerate(G.nodes())}
nx.draw(G.to_networkx(), pos, with_labels=True, node_color='lightblue', edge_color='grey', node_size=500, font_size=10, ax=ax)
plt.title('StellarGraph Visualization')
plt.savefig('graph.png')
plt.close()
# Step 4: Convert the image to PDF using IronPDF
ImageToPdfConverter.ImageToPdf('graph.png').SaveAs("result.pdf")다음은 StellarGraph 라이브러리를 사용하여 그래프를 생성하고 시각화한 다음, IronPDF 사용하여 그려진 시각화를 PDF로 변환하는 코드 조각입니다. 필요한 라이브러리를 가져오고 IronPDF 라이선스 키를 설정하는 것으로 시작합니다. 샘플 그래프 데이터는 노드에 대해 무작위 특징을, 에지에 대해서는 지정된 특징을 사용하여 생성됩니다. 이 데이터를 이용하여 StellarGraph 객체가 생성됩니다. NetworkX 라이브러리는 그래프를 원형 레이아웃으로 시각화하고 PNG 이미지로 저장합니다. 그 후, 이 PNG 이미지는 IronPDF 의 ImageToPdfConverter 를 통해 PDF 문서로 변환됩니다.
출력

라이선스
워터마크 없이 코드를 사용하려면 라이선스 키가 필요합니다. 이 링크 에서 무료 평가판 라이선스를 등록하실 수 있습니다. 참고로, 신분을 공개하지 않고도 계정을 등록할 수 있습니다. 무료 체험판을 이용하시려면 이메일 주소만 입력하시면 됩니다.

결론
StellarGraph와 IronPDF 의 통합은 데이터를 평가하고 문서를 처리하는 데 있어 더욱 발전되고 강력한 경로를 제공합니다. StellarGraph는 상호 연결된 데이터 분석을 위한 강력한 그래프 머신러닝 기술을 제공하고, IronPDF PDF 문서를 처리하고 조작하기 위한 완벽한 도구를 제공할 것입니다. 이러한 기능들의 상호 작용을 통해 PDF 문서 내의 복잡한 데이터 구조에서 의미 있는 정보를 추출할 수 있습니다.
이 둘의 결합을 통해 기업은 그래프 기반 분석의 강력한 기능과 정교한 문서 처리 기능을 결합하여 훨씬 더 효율적이고 통찰력 있는 데이터 처리 워크플로를 구축할 수 있습니다. 이번 통합은 PDF 형식에 담긴 데이터를 최대한 활용하는 데 있어 또 하나의 큰 진전을 이루었으며, 전혀 다른 영역에서 혁신과 최적화를 위한 새로운 길을 열었습니다. Iron Software 다양한 라이브러리를 사용하여 Windows, Android, MAC, Linux 등 여러 플랫폼 및 운영 체제에서 앱을 개발할 수 있도록 지원합니다.










