Passer au contenu du pied de page
AIDE PYTHON

Stellargraph Python (Comment ça marche pour les développeurs)

Quelle est la chose la plus proche ressemblant à la superpuissance clairvoyance dans la réalité ? C'est la capacité de faire des prédictions basées sur des données structurées en graphes. Au cœur de cela, il s'agit d'interpréter l'information comme des nœuds et des arêtes, où les relations et interactions au sein du graphe fournissent des informations précieuses. Contrairement aux méthodes traditionnelles qui se concentrent sur les représentations de données tabulaires ou séquentielles, les flux de travail d'apprentissage automatique sur les graphes exploitent ces connexions pour découvrir des motifs cachés.

C'est pourquoi les réseaux de neurones convolutifs de graphes (GCNs) et les méthodes basées sur l'attention des graphes ont été adaptées aux données des graphes, permettant aux modèles d'apprentissage automatique de s'attaquer à des tâches telles que la classification de nœuds, la prédiction de séquences, la prédiction de liens et la catégorisation de graphes. Ces techniques sont particulièrement bénéfiques dans les domaines nécessitant une compréhension nuancée des relations complexes, permettant aux systèmes de faire des prédictions précises ou de tirer des insights profonds, notamment dans des domaines comme les réseaux sociaux et les systèmes de recommandation.

Dans cet article, nous allons utiliser StellarGraph pour générer un graphe et ensuite le convertir en fichier PDF à l'aide d'IronPDF.

Qu'est-ce que StellarGraph ?

StellarGraph est une bibliothèque Python conçue pour l'apprentissage automatique avec des données structurées en graphes. Elle fournit un ensemble complet d'outils pour créer, manipuler et visualiser des graphes. De plus, StellarGraph propose des algorithmes d'apprentissage automatique avancés basés sur les graphes, adaptés à l'apprentissage à partir de données de graphe complexes et à leur analyse, ce qui inclut le complément de graphe de connaissances.

StellarGraph prend en charge des tâches telles que la classification des nœuds, la prédiction de liens et la classification de graphes grâce à son implémentation de modèles comme les réseaux de neurones convolutifs de graphes et les réseaux d'attention de graphes.

Stellargraph Python (Comment ça fonctionne pour les développeurs) : Figure 1 - Site Web de StellarGraph

Il est également intégré à plusieurs flux de travail populaires d'apprentissage automatique sur les graphes, tels que TensorFlow et Keras, ce qui en fait une bonne solution pour l'analyse et la découverte d'insights dans les réseaux complexes dans la plupart des domaines comme les réseaux sociaux, la bioinformatique et les systèmes de recommandation.

Fonctionnalités clés

  • Flux de travail d'apprentissage automatique sur les graphes rationalisé : StellarGraph simplifie le pipeline d'apprentissage automatique sur les graphes, guidant les utilisateurs depuis le chargement des données jusqu'à la calcul des vecteurs d'embedding et les prédictions neuronales. Il prend en charge diverses techniques de convolution de graphes, y compris Deep Graph CNN et les réseaux de neurones convolutionnels inductifs de graphes, pour améliorer les caractéristiques des nœuds et permettre une classification des nœuds puissante.
  • Techniques et modèles avancés : La bibliothèque inclut des modèles sophistiqués, tels qu'un réseau d'attention de graphe de séquence et des GCNs temporels, conçus pour traiter efficacement les données spatiotemporelles et la prédiction de séquences. Ces modèles améliorent la précision et la pertinence des prédictions en exploitant les attributs temporels des nœuds et les poids des arêtes dirigées hétérogènes.
  • Documentation complète et démos locales : StellarGraph offre des articles détaillés sur la documentation des algorithmes et des notebooks de démo qui peuvent être exécutés localement, offrant des insights pratiques sur l'implémentation de nombreux algorithmes. Ces ressources facilitent une compréhension plus profonde de l'apprentissage automatique basé sur les graphes et de ses applications.

Commencer avec StellarGraph

Pour générer un graphe avec StellarGraph, vous serez guidé à travers l'installation des bibliothèques, la création du graphe, la définition des caractéristiques des nœuds et des arêtes, et enfin la configuration d'un modèle d'apprentissage automatique. Voici un guide étape par étape pour vous lancer :

Installation de StellarGraph et d'autres bibliothèques pertinentes

Vous voudrez d'abord vous assurer que les bibliothèques suivantes sont correctement installées, ci-dessous montre également les commandes utilisées pour les installer si vous ne l'avez pas déjà fait :

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

Utilisation de StellarGraph en Python

Un exemple simple de définition d'un graphe, d'ajout de caractéristiques d'arêtes et de nœuds avec l'aide des nombreux algorithmes inclus dans 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

L'exemple montré illustre comment construire un graphe et sa visualisation simple en utilisant la bibliothèque StellarGraph en conjonction avec les bibliothèques Matplotlib et NetworkX. L'exemple commence par importer les bibliothèques nécessaires : pandas et Numpy pour la gestion des données ; StellarGraph pour créer la structure du graphe elle-même ; et Matplotlib et NetworkX pour la visualisation.

Tout d'abord, des données de graphe échantillon sont générées. Dans cet exemple, nous avons le DataFrame de nœuds avec des valeurs de caractéristiques aléatoires pour cinq nœuds avec des identifiants node0 à node4. Le DataFrame d'arêtes décrit les arêtes ; il contient des paires source-cible décrivant les nœuds qui sont connectés.

Ensuite, une instance de la classe StellarGraph est créée avec les données de nœuds et d'arêtes, qui stocke cette structure de données dans le graphe.

Enfin, il visualise ce graphe. Il fournit une fonction pour calculer un agencement circulaire pour le placement des nœuds, où chaque nœud est placé selon des coordonnées polaires. La bibliothèque NetworkX convertit ensuite cet objet StellarGraph en un graphe NetworkX, qui est ensuite tracé par Matplotlib. Les nœuds sont bleu clair, les arêtes sont grises, le graphe est étiqueté, et enfin, personnalisé en termes de taille et de police. Enfin, le tracé est enregistré sous forme de fichier image nommé graph.png, et la fenêtre de tracé est fermée.

Sortie

Stellargraph Python (Comment ça fonctionne pour les développeurs) : Figure 2 - La visualisation du graphe produite

Ce flux de travail permet la création, l'apprentissage de représentation et la visualisation d'un graphe. Cela permet de réaliser plus facilement des analyses et de présenter des données basées sur des graphes.

Présentation d'IronPDF

Stellargraph Python (Comment ça fonctionne pour les développeurs) : Figure 3 - Page Web IronPDF

Le module IronPDF pour Python permet la création et l'édition programmatiques de PDF. Vous serez capable de générer des PDF à partir de HTML, de fusionner plusieurs fichiers PDF en un seul, et même d'utiliser des PDF existants contenant du texte, des photos et des annotations ajoutées. En revanche, IronPDF permet la production de PDF de qualité à partir de n'importe quel site Web écrit en HTML ou tout autre contenu Internet généré pour créer des rapports, des factures ou d'autres documents précédemment stylés.

Certaines de ses fonctionnalités avancées sont l'édition de mise en page de page, le cryptage de document, l'extraction de contenu d'un PDF, et bien d'autres. Améliorer la façon dont vos produits gèrent les PDF placera mieux les développeurs pour améliorer leur utilité globale.

Installation de la bibliothèque IronPDF

Ci-dessous se trouve la commande d'installation de package qui permet à Python d'activer l'utilisation d'IronPDF dans vos projets :

pip install ironpdf
pip install ironpdf
SHELL

Combiner StellarGraph avec IronPDF

Ci-dessous se trouve le code pour générer un PDF à partir de l'image du graphe créée par StellarGraph.

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

C'est un extrait de code pour la création et la visualisation d'un graphe via la bibliothèque StellarGraph, puis transformant la visualisation dessinée en PDF à l'aide d'IronPDF. Cela commence par importer les bibliothèques nécessaires et définir une clé de licence IronPDF. Les données d'échantillon graphiques sont générées avec des caractéristiques aléatoires pour les nœuds et les arêtes spécifiées. En utilisant ces données, l'objet StellarGraph est créé. La bibliothèque NetworkX visualise le graphe dans un agencement circulaire et l'enregistre sous forme d'image PNG. Par la suite, cette image PNG est convertie en document PDF par l'ImageToPdfConverter d'IronPDF.

Sortie

Stellargraph Python (Comment ça fonctionne pour les développeurs) : Figure 4 - PDF produit avec visualisation de graphe

Licences

Une clé de licence est nécessaire pour permettre au code de fonctionner sans filigrane. Vous pouvez vous inscrire à une licence d'essai gratuite à ce lien. Notez que nous pouvons nous inscrire sans avoir à divulguer notre identité. Nous devons simplement saisir votre adresse e-mail pour pouvoir s'inscrire et obtenir la version d'essai gratuite.

Stellargraph Python (Comment ça fonctionne pour les développeurs) : Figure 5 - Plan de licence IronPDF

Conclusion

L'intégration de StellarGraph avec IronPDF ouvre une voie avancée et forte pour évaluer les données et traiter les documents. StellarGraph apportera de puissantes techniques d'apprentissage automatique sur les graphes pour l'analyse de données interconnectées, et IronPDF offrira des outils complets pour la gestion et la manipulation de documents PDF. L'interaction de ces derniers vous permettra d'extraire des insights significatifs de structures de données complexes dans un document PDF.

Leur combinaison permet aux entreprises de fusionner la puissance de l'analyse basée sur les graphes avec une gestion sophistiquée des documents, établissant ainsi un flux de traitement de données beaucoup plus efficace et perspicace. Cette intégration a fait un autre grand pas vers l'exploitation complète des données contenues dans le format PDF et a ouvert de nouvelles voies d'innovation et d'optimisation dans des domaines assez distincts. Iron Software rend également possible la création d'applications sur de nombreuses plateformes et systèmes d'exploitation, tels que Windows, Android, MAC, et Linux, entre autres, en utilisant de nombreuses bibliothèques.

Curtis Chau
Rédacteur technique

Curtis Chau détient un baccalauréat en informatique (Université de Carleton) et se spécialise dans le développement front-end avec expertise en Node.js, TypeScript, JavaScript et React. Passionné par la création d'interfaces utilisateur intuitives et esthétiquement plaisantes, Curtis aime travailler avec des frameworks modernes ...

Lire la suite