Skip to main content

Machine Learning with Graphs Library

This Python library offers a comprehensive suite of graph-based machine learning algorithms, designed for ease of use and versatility.

Features

  • Graph Neural Networks (GNNs): Includes GCNs, GATs, and more.
  • Graph Clustering Algorithms: Features Spectral Clustering, Louvain method, and others.
  • Graph Embedding Methods: Implements Node2Vec, DeepWalk, etc.
  • Diverse Range of Algorithms: For various graph-based learning tasks.

Installation

pip install machine_learning_with_graph

Usage

Scripts in the examples folder demonstrate various algorithms' usage.

Example to integrate spectral clustering method

import networkx as nx
from networkx.generators.community import stochastic_block_model
from ml_wg.clustering.spectral import SpectralClustering
import numpy as np

# Create a Stochastic Block Model graph
sizes = [15, 15, 15]  # Sizes of each block
p_matrix = [[0.5, 0.1, 0.05],
            [0.1, 0.5, 0.1],
            [0.05, 0.1, 0.5]]  # Probability matrix
G = stochastic_block_model(sizes, p_matrix)

# Get the adjacency matrix
adj_matrix = nx.to_numpy_array(G)

# Apply our spectral clustering library
sc = SpectralClustering(n_clusters=3)
clusters = sc.fit_predict(adj_matrix)

# Create a color map based on cluster labels
color_map = ['red' if clusters[node] == 0 else 'blue' if clusters[node] == 1 else 'green' for node in G.nodes()]

# Draw the network
nx.draw(G, node_color=color_map, with_labels=True, node_size=500, font_size=10)
plt.title("Stochastic Block model Graph Visualization")
plt.show()

Output:

Clusters using spectral clustering on graph dataset

Testing

Run tests using pytest:

pytest

Contributing

Contributions are welcome! See CONTRIBUTING.md for guidelines.

Developer Guide

To contribute to the project, follow these steps to set up a local development environment:

  1. Clone the Repository:
git clone https://github.com/susheelg1197/machine-learning-with-graphs-lib.git
cd machine-learning-with-graphs-lib
  1. Create and Activate a Virtual Environment (optional but recommended):
python -m venv venv
source venv/bin/activate # On Windows use venv\Scripts\activate
  1. Install Dependencies:
pip install -r requirements.txt
  1. Make Changes:
  • Implement new features or fix bugs.
  • Write tests to ensure functionality.
  1. Testing: Add test cases within testing folder
pytest
  1. Commit Your Changes:
git add .
git commit -m "Your detailed description of changes"
  1. Push to Your Fork and Create a Pull Request.

Please ensure your code adheres to the project's coding standards and include tests for new features.

Release files for machine-learning-with-graph 0.0.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for machine-learning-with-graph 0.0.3
File Size Uploaded
machine_learning_with_graph-0.0.3.tar.gz 7.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for machine-learning-with-graph 0.0.3
File Interpreter ABI Platform
machine_learning_with_graph-0.0.3-py3-none-any.whl Python 3 none any Details

Total release size: 22.9 kB

Release files / machine_learning_with_graph-0.0.3.tar.gz

Download URL machine_learning_with_graph-0.0.3.tar.gz
Size 7.6 kB
Tags Source
SHA-256 checksum
How to use checksums
b85664144ad098bbf3ddbe046b4ede9f5b2bcac28354b727fd1757d18b80bb21
BLAKE2b-256 checksum
How to use checksums
d6a565ec775046e7ae00d5e72b9e6646ca5d29fe603e9f0394142d31753ea89a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.11.7

Release files / machine_learning_with_graph-0.0.3-py3-none-any.whl

Download URL machine_learning_with_graph-0.0.3-py3-none-any.whl
Size 15.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8161ad7b5b4568b697378780601098d21deb8872d704398271f3bf9f7f6ae539
BLAKE2b-256 checksum
How to use checksums
e5dfffa5279d6954337c32c2a08957dc5c5fd9e64e988194baa71cb82d2a195b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.11.7

Release history Release notifications | RSS feed

This release

0.0.3 This release

2 release files

0.0.2

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page