Skip to main content

Read the latest Real Python tutorials

Project description

Graph Embedding

Introduction

This module provides the services and implementation for various family of graph embedding algorithms.

Graph Embedding

Introduction

This module provides the services and implementation for various family of graph embedding algorithms.

Installation

You can install the DGLL Graph Embedding version 1.0.0 from PyPI:

pip install DGLL-GE

How to utilize a code? (Tutorial)

input graph

# inputGraph = Your input graph goes here
# For example,
# Set Path to data
dataset = "cora"
dataset = "cora - Copy"
data_dir = "../cora"

# Load Data
data_dir = os.path.expanduser(data_dir)
edgelist = pd.read_csv(os.path.join(data_dir, dataset + ".cites"), sep='\t', header=None, names=["target", "source"])

# input graph
my_graph = nx.from_pandas_edgelist(edgelist)

Configurable Parameter for Graph Embedding

embedDim = 2 # embedding size
numbOfWalksPerVertex = 2 # walks per vertex
walkLength = 4 # walk lenght
lr =0.025 # learning rate
windowSize = 3 # window size

instantiating Graph Embedding Model

# choose of the following Graph embedding algorithm
# DeepWalk
dw = DeepWalk(my_graph, walkLength=walkLength, embedDim=embedDim, numbOfWalksPerVertex=numbOfWalksPerVertex, \
              windowSize=windowSize, lr = lr)
              
              
# Node2Vec
dw = Node2vec(my_graph, walkLength=walkLength, embedDim=embedDim, numbOfWalksPerVertex=numbOfWalksPerVertex, \
               windowSize=windowSize, lr=lr, p = 0.5, q = 0.8)

# Struc2Vec
dw = Struc2Vec(my_graph, walkLength=walkLength, embedDim=embedDim, numbOfWalksPerVertex=numbOfWalksPerVertex, \
              windowSize=windowSize, lr = lr)
              
# Skip Gram model
modelSkipGram = SkipGramModel(dw.totalNodes, dw.embedDim)

# Choose whether want Node embedding or edge embedding
# Learning Node Embedding
model = dw.learnNodeEmbedding(modelSkipGram)


# Learning Edge Embedding
model = dw.learnEdgeEmbedding(model_skip_gram)

# Plot Embedding
plot_2DEmbedding(dw)

# Save embedding to disk
saveEmbedding(data_dir, dataset, dw)

node1 = 35
node2 = 40
# Get Embedding for a node
emb = dw.getNodeEmbedding(node1)
print("Node Embedding", emb)
#
# Get Embedding for an edge
emb = dw.getEdgeEmbedding(node1, node2)
print("Edge Embedding", emb)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dgllge-1.0.0.tar.gz (10.4 kB view hashes)

Uploaded Source

Built Distribution

dgllge-1.0.0-py3-none-any.whl (14.3 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page