Skip to main content

A comprehensive package for graph-based machine learning algorithms.

Project description

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.

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

machine_learning_with_graph-0.0.3.tar.gz (7.6 kB view hashes)

Uploaded Source

Built Distribution

machine_learning_with_graph-0.0.3-py3-none-any.whl (15.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