This Python library offers a comprehensive suite of graph-based machine learning algorithms, designed for ease of use and versatility.
- 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.
pip install machine_learning_with_graph
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:
Run tests using pytest:
pytest
Contributions are welcome! See CONTRIBUTING.md for guidelines.
To contribute to the project, follow these steps to set up a local development environment:
- Clone the Repository:
git clone https://github.com/susheelg1197/machine-learning-with-graphs-lib.git
cd machine-learning-with-graphs-lib
- Create and Activate a Virtual Environment (optional but recommended):
python -m venv venv
source venv/bin/activate # On Windows use venv\Scripts\activate
- Install Dependencies:
pip install -r requirements.txt
- Make Changes:
- Implement new features or fix bugs.
- Write tests to ensure functionality.
- Testing: Add test cases within the testing folder
pytest
In case pytest is not in your system's PATH, but is installed in your Python environment.
python -m pytest
- Commit Your Changes:
git add .
git commit -m "Your detailed description of changes"
- Push to Your Fork and Create a Pull Request.
Please ensure your code adheres to the project's coding standards and includes tests for new features.