跳過到頁腳內容
PYTHON 幫助

Stellargraph Python(開發人員如何工作)

現實生活中最接近超能力──預知未來的能力──的是什麼? 它指的是基於圖結構資料進行預測的能力。其核心在於將資訊解釋為節點和邊,圖中的關係和交互作用能夠提供有價值的洞見。 與專注於表格或順序資料表示的傳統方法不同,圖機器學習工作流程利用這些連接來發現隱藏的模式。

這就是為什麼圖卷積神經網路(GCN)和基於圖注意力的方法被應用於圖數據,使機器學習模型能夠處理節點分類、序列預測、連結預測和圖分類等任務。 這些技術在需要對複雜關係有細緻理解的領域尤其有益,使系統能夠做出準確的預測或得出深刻的見解,尤其是在社交網路和推薦系統等領域。

在本文中,我們將使用 StellarGraph 產生圖表,然後使用 IronPDF 將其轉換為 PDF 檔案。

StellarGraph是什麼?

StellarGraph是一個專為處理圖結構資料的機器學習而設計的 Python 函式庫。 它提供了一套全面的工具,用於創建、操作和視覺化圖。此外,StellarGraph 還提供先進的基於圖的機器學習演算法,這些演算法專為學習和分析複雜的圖數據而設計,其中包括知識圖譜補全功能。

StellarGraph 透過實現圖卷積網路和圖注意力網路等模型,支援節點分類、連結預測和圖分類等任務。

StellarGraph Python(開發者使用指南):圖 1 - StellarGraph 網站

它還與 TensorFlow 和 Keras 等幾種流行的圖機器學習工作流程集成,使其成為分析和發現社交網路、生物資訊學和推薦系統等大多數領域複雜網路見解的良好解決方案。

主要功能

*簡化的圖機器學習工作流程:* StellarGraph 簡化了圖機器學習流程,引導使用者從資料載入到嵌入向量計算和神經預測。 它支援各種圖卷積技術,包括深度圖 CNN 和歸納圖卷積網絡,以增強節點特徵並實現強大的節點分類。 高級技術和模型:**該庫包含複雜的模型,例如序列圖注意力網路和時間 GCN,旨在有效地處理時空資料和序列預測。 這些模型利用時間節點屬性和異質有向邊權重來提高預測準確性和相關性。 *全面的文件和本地演示: StellarGraph 提供了大量關於演算法文檔的文章和可在本地運行的演示筆記本,為眾多演算法的實現提供了實用的見解。 這些資源有助於更深入地了解基於圖的機器學習及其應用。

StellarGraph入門指南

若要使用 StellarGraph 產生圖,您將獲得庫的安裝、圖的建立、節點和邊特徵的定義,以及最後機器學習模型的設定指導。 以下是入門步驟指南:

安裝 StellarGraph 和其他相關函式庫

首先,您需要確保已正確安裝以下程式庫,如果您尚未安裝,以下命令也已列出:

pip install stellargraph 
pip install tensorflow 
pip install pandas 
pip install numpy
pip install stellargraph 
pip install tensorflow 
pip install pandas 
pip install numpy
SHELL

在 Python 中使用 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()
PYTHON

所示範例說明如何使用 StellarGraph 函式庫結合 Matplotlib 和 NetworkX 函式庫來建立圖形及其簡單的視覺化。 此範例首先導入必要的庫:用於處理資料的 pandas 和 Numpy; StellarGraph 用於建立圖結構本身; 使用 Matplotlib 和 NetworkX 進行視覺化。

首先,產生範例圖資料。 在這個例子中,我們有節點資料框(nodes DataFrame),其中包含五個節點(標識符為 node0 到 node4)的隨機特徵值。邊資料框(edges DataFrame)描述了邊; 它包含描述已連接節點的來源-目標對。

然後,使用節點和邊資料建立 StellarGraph 類別的實例,該實例儲存圖中儲存的這種資料結構。

最後,它將該圖表視覺化。 它提供了一個函數,用於計算節點放置的圓形佈局,其中每個節點都根據極坐標放置。 然後 NetworkX 庫將此 StellarGraph 物件轉換為 NetworkX 圖,然後由 Matplotlib 繪製該圖。 節點為淺藍色,邊為灰色,圖表帶有標籤,最後,在大小和字體方面進行了自訂。 最後,將圖表儲存為名為 graph.png 的圖像文件,並關閉繪圖視窗。

輸出

Stellargraph Python(開發者使用指南):圖 2 - 輸出的圖形視覺化

此工作流程允許創建、表示學習和視覺化圖。 這使得進行分析和展示基於圖表的數據變得更加容易。

介紹 IronPDF。

Stellargraph Python(開發者使用指南):圖 3 - IronPDF 網頁

IronPDF for Python 模組允許以程式設計方式建立和編輯 PDF 檔案。 您可以從 HTML 產生 PDF,將多個 PDF 檔案合併為一個,甚至可以使用已新增文字、照片和註釋的現有 PDF。 相較之下,IronPDF 可以從任何以 HTML 編寫的網站或其他網路內容產生高品質的 PDF 文件,這些內容是在建立報告、發票或其他先前已設定樣式的文件時產生的。

它的一些高級功能包括頁面佈局編輯、文件加密、從 PDF 中提取內容等等。 改進產品處理 PDF 的方式,將有助於開發人員提升產品的整體實用性。

安裝 IronPdf 函式庫

以下是允許 Python 在專案中啟用 IronPDF 的軟體包安裝程式命令:

pip install ironpdf
pip install ironpdf
SHELL

將 StellarGraph 與 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")
PYTHON

這是使用 StellarGraph 庫建立和視覺化圖表,然後使用 IronPDF 將繪製的視覺化圖表轉換為 PDF 的程式碼片段。 首先導入必要的庫並設定 IronPDF 許可證密鑰。 樣本圖資料是使用隨機節點特徵和指定邊產生的。 利用這些數據,創建了StellarGraph物件。 NetworkX 函式庫以圓形佈局視覺化圖形,並將其儲存為 PNG 影像。 之後,IronPDF 的ImageToPdfConverter將此 PNG 映像轉換為 PDF 文件。

輸出

Stellargraph Python(開發者使用指南):圖 4 - 具有圖形視覺化的輸出 PDF

授權

需要許可證密鑰才能使程式碼在不顯示浮水印的情況下運作。 您可以透過此連結註冊免費試用許可證。 請注意,我們可以在不透露身份的情況下註冊。 我們只需要您輸入電子郵件地址即可註冊並獲得免費試用版。

Stellargraph Python(開發者使用指南):圖 5 - IronPDF 許可計劃

結論

StellarGraph 與IronPDF的整合開闢了一條先進且強大的資料評估和流程文件處理途徑。 StellarGraph 將貢獻強大的圖機器學習技術,用於分析相互關聯的數據,而 IronPDF 將提供處理和操作 PDF 文件的完整工具。 這些功能的交互作用將使您能夠從 PDF 文件中複雜的資料結構中提取有意義的見解。

它們的結合使企業能夠將基於圖的分析功能與複雜的文件處理相結合,從而建立更有效率、更具洞察力的資料處理工作流程。 此次整合使充分利用 PDF 格式中包含的數據又向前邁出了一大步,並在截然不同的領域開闢了創新和優化的新途徑。 Iron Software也利用多種函式庫,讓在 Windows、Android、MAC 和 Linux 等多種平台和作業系統上建立應用程式成為可能。

Curtis Chau
技術作家

Curtis Chau 擁有卡爾頓大學計算機科學學士學位,專注於前端開發,擅長於 Node.js、TypeScript、JavaScript 和 React。Curtis 熱衷於創建直觀且美觀的用戶界面,喜歡使用現代框架並打造結構良好、視覺吸引人的手冊。

除了開發之外,Curtis 對物聯網 (IoT) 有著濃厚的興趣,探索將硬體和軟體結合的創新方式。在閒暇時間,他喜愛遊戲並構建 Discord 機器人,結合科技與創意的樂趣。