Ir para o conteúdo do rodapé
AJUDA DO PYTHON

Stellargraph em Python (Como funciona para desenvolvedores)

Qual é o fenômeno mais próximo da clarividência na realidade? É a capacidade de fazer previsões com base em dados estruturados em grafos. Essencialmente, isso envolve interpretar informações como nós e arestas, onde os relacionamentos e interações dentro do grafo fornecem insights valiosos. Ao contrário dos métodos tradicionais que se concentram em representações de dados tabulares ou sequenciais, os fluxos de trabalho de aprendizado de máquina em grafos aproveitam essas conexões para descobrir padrões ocultos.

É por isso que as redes neurais convolucionais gráficas (GCNs) e os métodos baseados em atenção gráfica foram adaptados para dados gráficos, permitindo que os modelos de aprendizado de máquina lidem com tarefas como classificação de nós, previsão de sequências, previsão de links e categorização de grafos. Essas técnicas são especialmente benéficas em domínios que exigem uma compreensão refinada de relações complexas, permitindo que os sistemas façam previsões precisas ou obtenham insights profundos, particularmente em áreas como redes sociais e sistemas de recomendação.

Neste artigo, vamos usar o StellarGraph para gerar um gráfico e, em seguida, convertê-lo em um arquivo PDF com a ajuda do IronPDF.

O que é StellarGraph?

StellarGraph é uma biblioteca Python projetada para aprendizado de máquina com dados estruturados em grafos. A plataforma oferece um conjunto abrangente de ferramentas para criar, manipular e visualizar grafos. Além disso, o StellarGraph disponibiliza algoritmos avançados de aprendizado de máquina baseados em grafos, projetados para aprender e analisar dados complexos de grafos, incluindo o preenchimento de grafos de conhecimento.

O StellarGraph oferece suporte a tarefas como classificação de nós, previsão de links e classificação de grafos por meio da implementação de modelos como Redes Neurais Convolucionais em Grafos e Redes de Atenção em Grafos.

Stellargraph Python (Como funciona para desenvolvedores): Figura 1 - Site do StellarGraph

Também é integrado a diversos fluxos de trabalho populares de aprendizado de máquina em grafos, como TensorFlow e Keras, tornando-se uma boa solução para a análise e descoberta de insights em redes complexas na maioria das áreas, como redes sociais, bioinformática e sistemas de recomendação.

Principais características

  • Fluxo de trabalho simplificado para aprendizado de máquina em grafos: O StellarGraph simplifica o pipeline de aprendizado de máquina em grafos, guiando os usuários desde o carregamento de dados até a computação de vetores de incorporação e previsões neurais. Ele suporta diversas técnicas de convolução gráfica, incluindo Deep Graph CNN e Inductive Graph Convolutional Networks, para aprimorar as características dos nós e permitir uma classificação de nós mais robusta.
  • Técnicas e Modelos Avançados: A biblioteca inclui modelos sofisticados, como uma Rede de Atenção de Grafos de Sequência e Redes de Atenção de Grafos Temporais, projetados para lidar eficazmente com dados espaço-temporais e previsão de sequências. Esses modelos melhoram a precisão e a relevância das previsões, aproveitando atributos temporais dos nós e pesos heterogêneos das arestas direcionadas.
  • Documentação completa e demonstrações locais: O StellarGraph oferece artigos extensos sobre a documentação do algoritmo e notebooks de demonstração que podem ser executados localmente, proporcionando informações práticas sobre a implementação de diversos algoritmos. Esses recursos facilitam uma compreensão mais profunda do aprendizado de máquina baseado em grafos e suas aplicações.

Primeiros passos com o StellarGraph

Para gerar um grafo usando o StellarGraph, você será guiado pela instalação das bibliotecas, criação do grafo, definição de características de nós e arestas e, finalmente, pela configuração de um modelo de aprendizado de máquina. Aqui está um guia passo a passo para você começar:

Instalando o StellarGraph e outras bibliotecas relevantes

Primeiramente, certifique-se de que as seguintes bibliotecas estejam instaladas corretamente. Abaixo, você também encontrará os comandos para instalá-las, caso ainda não o tenha feito:

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

Usando StellarGraph em Python

Um exemplo simples de como definir um grafo, adicionando características de arestas e nós com a ajuda dos inúmeros algoritmos incluídos no 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

O exemplo apresentado ilustra como construir um gráfico e sua visualização simples usando a biblioteca StellarGraph em conjunto com as bibliotecas Matplotlib e NetworkX. O exemplo começa com a importação das bibliotecas necessárias: pandas e Numpy para manipulação de dados; StellarGraph para criar a própria estrutura do grafo; e Matplotlib e NetworkX para visualização.

Primeiro, são gerados dados gráficos de amostra. Neste exemplo, temos o DataFrame nodes com valores de características aleatórios para cinco nós com identificadores de node0 a node4. O DataFrame edges descreve as arestas; Contém pares de origem-destino que descrevem os nós conectados.

Em seguida, é criada uma instância da classe StellarGraph com os dados dos nós e arestas, que armazena essa estrutura de dados no grafo.

Por fim, ele visualiza esse gráfico. Ela fornece uma função para calcular um layout circular para o posicionamento de nós, onde cada nó é posicionado de acordo com coordenadas polares. A biblioteca NetworkX converte esse objeto StellarGraph em um gráfico NetworkX, que é então plotado pelo Matplotlib. Os nós são azul-claros, as arestas são cinza, o gráfico é rotulado e, por fim, personalizado em termos de tamanho e fonte. Por fim, o gráfico é salvo como um arquivo de imagem chamado graph.png e a janela de plotagem é fechada.

Saída

Stellargraph Python (Como funciona para desenvolvedores): Figura 2 - A visualização do gráfico de saída

Este fluxo de trabalho permite a criação, a aprendizagem de representações e a visualização de um grafo. Isso torna muito mais fácil realizar análises e apresentar dados com base em gráficos.

Apresentando o IronPDF

Stellargraph Python (Como funciona para desenvolvedores): Figura 3 - Página web do IronPDF

O módulo IronPDF for Python permite a criação e edição programática de PDFs. Você poderá gerar PDFs a partir de HTML, mesclar vários arquivos PDF em um só e até mesmo usar PDFs existentes que contenham texto, fotos e anotações adicionadas. Em contrapartida, o IronPDF permite a produção de PDFs de alta qualidade a partir de qualquer website escrito em HTML ou outro conteúdo da Internet gerado na criação de relatórios, faturas ou outros documentos previamente formatados.

Algumas de suas funcionalidades avançadas incluem edição de layout de página, criptografia de documentos, extração de conteúdo de um PDF e muito mais. Melhorar a forma como seus produtos lidam com PDFs permitirá que os desenvolvedores aprimorem sua utilidade geral.

Instalando a biblioteca IronPDF

Abaixo está o comando de instalação do pacote que permite ao Python habilitar o uso do IronPDF em seus projetos:

pip install ironpdf
pip install ironpdf
SHELL

Combine o StellarGraph com o IronPDF

Abaixo está o código para gerar um PDF a partir da imagem do gráfico criada pelo 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

Este é um trecho de código para a criação e visualização de um gráfico através da biblioteca StellarGraph, e posteriormente para converter a visualização gerada em um PDF utilizando o IronPDF. O processo começa com a importação das bibliotecas necessárias e a configuração de uma chave de licença do IronPDF . Os dados do gráfico de exemplo são gerados com características aleatórias para nós e arestas específicas. Utilizando esses dados, o objeto StellarGraph é criado. A biblioteca NetworkX visualiza o gráfico em um layout circular e o salva como uma imagem PNG. Em seguida, essa imagem PNG é convertida em um documento PDF pelo ImageToPdfConverter do IronPDF.

Saída

Stellargraph Python (Como funciona para desenvolvedores): Figura 4 - PDF gerado com visualização de grafo

Licenciamento

É necessária uma chave de licença para que o código funcione sem marca d'água. Você pode se cadastrar para uma licença de avaliação gratuita neste link . Note que podemos registrar uma conta sem precisar revelar nossa identidade. Precisamos apenas do seu endereço de e-mail para que você possa se cadastrar e obter a versão de avaliação gratuita.

Stellargraph Python (Como funciona para desenvolvedores): Figura 5 - Plano de licenciamento do IronPDF

Conclusão

A integração do StellarGraph com o IronPDF abre um caminho avançado e robusto para avaliar dados e processar documentos. O StellarGraph contribuirá com poderosas técnicas de aprendizado de máquina em grafos para a análise de dados interconectados, e o IronPDF oferecerá ferramentas completas para lidar e manipular documentos PDF. A interação desses elementos permitirá extrair informações relevantes de estruturas de dados complexas dentro de um documento PDF.

A combinação dessas tecnologias permite que as empresas unam o poder da análise baseada em grafos com o sofisticado processamento de documentos, estabelecendo assim um fluxo de trabalho de processamento de dados muito mais eficiente e perspicaz. Essa integração representou mais um enorme passo rumo à plena exploração dos dados contidos no formato PDF e abriu novos caminhos de inovação e otimização em domínios bastante distintos. A Iron Software também possibilita a criação de aplicativos para diversas plataformas e sistemas operacionais, como Windows, Android, MAC e Linux, entre outros, utilizando várias bibliotecas.

Curtis Chau
Redator Técnico

Curtis Chau é bacharel em Ciência da Computação (Universidade Carleton) e se especializa em desenvolvimento front-end, com experiência em Node.js, TypeScript, JavaScript e React. Apaixonado por criar interfaces de usuário intuitivas e esteticamente agradáveis, Curtis gosta de trabalhar com frameworks modernos e criar manuais ...

Leia mais

Equipe de suporte de ferro

Estamos online 24 horas por dia, 5 dias por semana.
Bater papo
E-mail
Liga para mim