Zum Fußzeileninhalt springen
PYTHON-HILFE

Stellargraph Python (Wie es für Entwickler funktioniert)

Was ist das in der Realität dem Superkraft Hellsehen am nächsten kommende? Es ist die Fähigkeit, Vorhersagen auf Basis von Daten zu machen, die in Grafiken strukturiert sind. Im Kern geht es dabei um die Interpretation von Informationen als Knoten und Kanten, wobei die Beziehungen und Interaktionen innerhalb des Graphen wertvolle Einsichten liefern. Im Gegensatz zu traditionellen Methoden, die sich auf tabellarische oder sequenzielle Datenrepräsentationen konzentrieren, nutzen Workflows des maschinellen Lernens für Graphen diese Verbindungen, um verborgene Muster zu entdecken.

Deshalb wurden graphfaltungsbasierte neuronale Netzwerke (GCNs) und graphaufmerksamkeitsbasierte Methoden zur Anpassung an Graphdaten entwickelt, wodurch maschinelle Lernmodelle Aufgaben wie Knotenklassifizierung, Sequenzvorhersage, Link-Prädiktion und Graphkategorisierung angehen können. Diese Techniken sind besonders vorteilhaft in Bereichen, die ein differenziertes Verständnis komplexer Beziehungen erfordern. Sie ermöglichen Systeme, genaue Vorhersagen zu treffen oder tiefgehende Einsichten zu gewinnen, insbesondere in Bereichen wie sozialen Netzwerken und Empfehlungssystemen.

In diesem Artikel werden wir StellarGraph verwenden, um einen Graphen zu erzeugen und diesen anschließend mit Hilfe von IronPDF in eine PDF-Datei umzuwandeln.

Was ist StellarGraph?

StellarGraph ist eine Python-Bibliothek, die für maschinelles Lernen mit graphstrukturierten Daten konzipiert wurde. Sie bietet eine umfassende Sammlung von Werkzeugen zum Erstellen, Bearbeiten und Visualisieren von Graphen. Zusätzlich bietet StellarGraph fortschrittliche graphbasierte maschinelle Lernalgorithmen, die auf das Lernen von und die Analyse komplexer Graphendaten abgestimmt sind, einschließlich der Vervollständigung von Wissensgraphen.

StellarGraph unterstützt Aufgaben wie Knotenklassifizierung, Link-Prädiktion und Graphklassifizierung durch die Implementierung von Modellen wie Graph Convolutional Networks und Graph Attention Networks.

Stellargraph Python (Wie es für Entwickler funktioniert): Abbildung 1 - StellarGraph-Website

Es ist auch in mehrere beliebte Workflows des maschinellen Lernens für Graphen integriert, wie TensorFlow und Keras, wodurch es eine gute Lösung für die Analyse und das Auffinden von Einsichten aus komplexen Netzwerken in meisten Bereichen wie sozialen Netzwerken, Bioinformatik und Empfehlungssystemen darstellt.

Wichtige Merkmale

  • Vereinfachter Workflow für maschinelles Lernen mit Graphen: StellarGraph vereinfacht die Pipeline für maschinelles Lernen mit Graphen, indem die Benutzer vom Laden der Daten bis zur Einbettungsvektorberechnung und neuronalen Vorhersagen geführt werden. Es unterstützt verschiedene graphfaltungsbasierte Techniken, einschließlich Deep Graph CNN und Inductive Graph Convolutional Networks, um Knotenmerkmale zu verbessern und leistungsstarke Knotenklassifizierungen zu ermöglichen.
  • Fortgeschrittene Techniken und Modelle: Die Bibliothek beinhaltet ausgeklügelte Modelle wie ein Sequence Graph Attention Network und Temporale GCNs, die entwickelt wurden, um mit raumzeitlichen Daten und Sequenzvorhersagen effektiv umzugehen. Diese Modelle verbessern die Vorhersagegenauigkeit und Relevanz, indem sie zeitbedingte Knoteneigenschaften und heterogene gerichtete Kantengewichte nutzen.
  • Umfassende Dokumentation und lokale Demos: StellarGraph bietet umfangreiche Artikel zur Dokumentation des Algorithmus und Demobücher, die lokal ausgeführt werden können und praktische Einblicke in die Implementierung zahlreicher Algorithmen bieten. Diese Ressourcen erleichtern ein tieferes Verständnis des graphbasierten maschinellen Lernens und seiner Anwendungen.

Erste Schritte mit StellarGraph

Um einen Graphen mit StellarGraph zu erzeugen, werden Sie durch die Installation der Bibliotheken, die Erstellung des Graphen, die Definition von Knoten- und Kantenmerkmalen und schließlich die Einrichtung eines maschinellen Lernmodells geführt. Hier ist eine Schritt-für-Schritt-Anleitung:

Installation von StellarGraph und anderen relevanten Bibliotheken

Zunächst sollten Sie sicherstellen, dass die folgenden Bibliotheken korrekt installiert sind. Nachfolgend werden auch die Befehle angezeigt, die zur Installation verwendet werden, wenn Sie dies noch nicht getan haben:

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

Verwendung von StellarGraph in Python

Ein einfaches Beispiel zum Definieren eines Graphen, Hinzufügen von Kanten- und Knotenmerkmalen mit Hilfe der zahlreichen Algorithmen, die in StellarGraph enthalten sind:

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

Das gezeigte Beispiel veranschaulicht, wie ein Graph erstellt wird und seine einfache Visualisierung unter Verwendung der StellarGraph-Bibliothek in Verbindung mit den Bibliotheken Matplotlib und NetworkX erfolgt. Das Beispiel beginnt mit dem Import der benötigten Bibliotheken: pandas und Numpy zur Handhabung von Daten; StellarGraph um die Graphstruktur selbst zu erstellen; und Matplotlib und NetworkX zur Visualisierung.

Zuerst werden Beispieldaten für den Graphen erstellt. In diesem Beispiel haben wir die Knoten-Dataframe mit zufälligen Merkmalswerten für fünf Knoten mit den Kennungen Knoten0 bis Knoten4. Die Kanten-Dataframe beschreibt die Kanten; sie enthält Quell-Ziel-Paare, die die verbundenen Knoten beschreiben.

Dann wird eine Instanz der StellarGraph-Klasse mit den Knoten- und Kantendaten erstellt, die diese Datenstruktur im Graphen speichert.

Schließlich wird dieser Graph visualisiert. Es bietet eine Funktion zur Berechnung eines kreisförmigen Layouts für die Platzierung von Knoten, wobei jeder Knoten gemäß den Polarkoordinaten platziert wird. Die NetworkX-Bibliothek konvertiert dieses StellarGraph-Objekt dann in einen NetworkX-Graphen, der dann von Matplotlib geplottet wird. Die Knoten sind hellblau, die Kanten grau, der Graph ist beschriftet und schließlich in Bezug auf Größe und Schriftart angepasst. Abschließend wird die Grafik als Bilddatei mit dem Namen graph.png gespeichert und das Plotfenster geschlossen.

Ausgabe

Stellargraph Python (Wie es für Entwickler funktioniert): Abbildung 2 - Die ausgegebene Graphvisualisierung

Dieser Workflow ermöglicht die Erstellung, das Lernen von Repräsentationen und die Visualisierung eines Graphen. Dies erleichtert die Durchführung von Analysen und die Präsentation von Daten, die auf Graphen basieren.

Einführung in IronPDF

Stellargraph Python (Wie es für Entwickler funktioniert): Abbildung 3 - IronPDF Webseite

Das IronPDF für Python-Modul ermöglicht die programmgesteuerte Erstellung und Bearbeitung von PDFs. Sie werden in der Lage sein, PDFs aus HTML zu generieren, mehrere PDF-Dateien in eine zu verschmelzen und sogar bestehende PDFs zu verwenden, die Texte, Fotos und Anmerkungen hinzugefügt haben. Im Gegensatz dazu ermöglicht IronPDF die Produktion von hochwertigen PDFs von jeder Website, die in HTML oder anderen Internetinhalten geschrieben wurde, die bei der Erstellung von Berichten, Rechnungen oder anderen zuvor gestalteten Dokumenten erzeugt wurden.

Einige ihrer erweiterten Funktionen sind das Bearbeiten des Seitenlayouts, die Dokumentenverschlüsselung, das Extrahieren von Inhalten aus einem PDF und vieles mehr. Die Verbesserung, wie Ihre Produkte mit PDFs umgehen, wird Entwickler in die Lage versetzen, deren Gesamtnutzen zu verbessern.

Installation der IronPDF-Bibliothek

Nachfolgend ist der Paketinstallationsbefehl aufgeführt, der es Python ermöglicht, IronPDF in Ihren Projekten zu verwenden:

pip install ironpdf
pip install ironpdf
SHELL

Kombinieren von StellarGraph mit IronPDF

Nachfolgend sehen Sie den Code, um ein PDF aus dem von StellarGraph erstellten Graphenbild zu erzeugen.

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

Dies ist ein Code-Snippet zur Erstellung und Visualisierung eines Graphen mit der StellarGraph-Bibliothek und anschließend zur Umwandlung der gezeichneten Visualisierung in ein PDF mit IronPDF. Es beginnt mit dem Import der notwendigen Bibliotheken und dem Setzen eines IronPDF-Lizenzschlüssels. Die Beispieldaten für den Graphen werden mit zufälligen Merkmalen für Knoten und spezifischen Kanten generiert. Mit diesen Daten wird das StellarGraph-Objekt erstellt. Die NetworkX-Bibliothek visualisiert den Graphen in einem kreisförmigen Layout und speichert ihn als PNG-Bild. Danach wird dieses PNG-Bild durch den ImageToPdfConverter von IronPDF in ein PDF-Dokument umgewandelt.

Ausgabe

Stellargraph Python (Wie es für Entwickler funktioniert): Abbildung 4 - Ausgegebenes PDF mit Graphvisualisierung

Lizenzierung

Ein Lizenzschlüssel ist notwendig, damit der Code ohne Wasserzeichen funktioniert. Sie können sich über diesen Link für eine Testlizenz registrieren. Beachten Sie, dass wir uns registrieren können, ohne unsere Identität preiszugeben. Wir müssen lediglich Ihre E-Mail-Adresse eingeben, um sich registrieren zu können und die kostenlose Version zu erhalten.

Stellargraph Python (Wie es für Entwickler funktioniert): Abbildung 5 - IronPDF Lizenzierungsplan

Abschluss

Die Integration von StellarGraph mit IronPDF eröffnet einen fortgeschrittenen und starken Weg, um Daten zu bewerten und Dokumente zu verarbeiten. StellarGraph wird leistungsstarke graph-maschinelle Lerntechniken zur Analyse von vernetzten Daten beisteuern, und IronPDF wird umfassende Tools zum Umgang und Manipulieren von PDF-Dokumenten anbieten. Die Interaktion dieser beiden wird es Ihnen ermöglichen, bedeutungsvolle Erkenntnisse aus komplizierten Datenstrukturen innerhalb eines PDF-Dokuments zu extrahieren.

Ihre Kombination ermöglicht es Unternehmen, die Leistungsfähigkeit der graphbasierten Analytik mit anspruchsvolle Dokumentenverarbeitung zu kombinieren und so einen effizienteren und aufschlussreicheren Datenverarbeitungs-Workflow zu etablieren. Diese Integration hat einen weiteren großen Schritt in Richtung der vollen Nutzung der in PDF-Format eingeschlossenen Daten getan und neue Wege für Innovation und Optimierung in recht unterschiedlichen Bereichen eröffnet. Iron Software ermöglicht auch die Erstellung von Anwendungen auf vielen Plattformen und Betriebssystemen wie Windows, Android, MAC und Linux, unter anderem durch den Einsatz vieler Bibliotheken.

Curtis Chau
Technischer Autor

Curtis Chau hat einen Bachelor-Abschluss in Informatik von der Carleton University und ist spezialisiert auf Frontend-Entwicklung mit Expertise in Node.js, TypeScript, JavaScript und React. Leidenschaftlich widmet er sich der Erstellung intuitiver und ästhetisch ansprechender Benutzerschnittstellen und arbeitet gerne mit modernen Frameworks sowie der Erstellung gut strukturierter, optisch ansprechender ...

Weiterlesen