Skip to main content

Python package for graph-based clustering and semi-supervised learning

Project description

Graph-based Clustering and Semi-Supervised Learning

Clustering

This python package is devoted to efficient implementations of modern graph-based learning algorithms for both semi-supervised learning and clustering. The package implements many popular datasets (currently MNIST, FashionMNIST, and CIFAR-10) in a way that makes it simple for users to test out new algorithms and rapidly compare against existing methods. Full documentation is available, including detailed example scripts.

This package also reproduces experiments from the paper

J. Calder, B. Cook, M. Thorpe, D. Slepcev. Poisson Learning: Graph Based Semi-Supervised Learning at Very Low Label Rates., Proceedings of the 37th International Conference on Machine Learning, PMLR 119:1306-1316, 2020.

Installation

Install with

pip install graphlearning

Required packages will be installed automatically, and include numpy, scipy, sklearn, and matplotlib. Some features in the package rely on other packages, including annoy for approximate nearest neighbor searches, and torch for GPU acceleration. You will have to install these manually, if needed, with

pip install annoy torch

It can be difficult to install annoy, depending on your operating system.

To install the most recent version of GraphLearning from the github source, which is updated more frequently, run

git clone https://github.com/jwcalder/GraphLearning
cd GraphLearning
python setup.py install --user

If you prefer to use ssh swap the first line with

git clone git@github.com:jwcalder/GraphLearning.git

Documentation and Examples

Full documentation for the package is available here. The documentation includes examples of how to use the package. All example scripts linked from the documentation can be found in the examples folder.

Older versions of GraphLearning

This repository hosts the current version of the package, which is numbered >=1.0.0. This version is not backwards compatible with earlier versions of the package. The old version is archived here and can be installed with

pip install graphlearning==0.0.3

To make sure you will load the old version when running import graphlearning, it may be necessary to uninstall all existing versions pip uninstall graphlearning before running the installation command above.

Citations

If you use this package in your research, please cite the package with the bibtex entry below.

@software{graphlearning,
  author       = {Jeff Calder},
  title        = {GraphLearning Python Package},
  month        = jan,
  year         = 2022,
  publisher    = {Zenodo},
  doi          = {10.5281/zenodo.5850940},
  url          = {https://doi.org/10.5281/zenodo.5850940}
}

Contact and questions

Email jwcalder@umn.edu with any questions or comments.

Acknowledgments

Several people have contributed to the development of this software:

  1. Mauricio Rios Flores (Machine Learning Researcher, Amazon)
  2. Brendan Cook (PhD Candidate in Mathematics, University of Minnesota)
  3. Matt Jacobs (Postdoc, UCLA)
  4. Mahmood Ettehad (Postdoc, IMA)

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

graphlearning-1.0.6.tar.gz (65.2 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

graphlearning-1.0.6-cp310-cp310-win_amd64.whl (74.4 kB view details)

Uploaded CPython 3.10Windows x86-64

graphlearning-1.0.6-cp310-cp310-macosx_10_15_x86_64.whl (81.9 kB view details)

Uploaded CPython 3.10macOS 10.15+ x86-64

File details

Details for the file graphlearning-1.0.6.tar.gz.

File metadata

  • Download URL: graphlearning-1.0.6.tar.gz
  • Upload date:
  • Size: 65.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.10.1 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.10.2

File hashes

Hashes for graphlearning-1.0.6.tar.gz
Algorithm Hash digest
SHA256 58cdc9f7070a07f597e39b1440644a4787399d3055835f5c267f7e4dad27fbda
MD5 40243f943d3553362085e3e1116a162e
BLAKE2b-256 725228ded45d195619929e18452dccd4bcf9e47d6448a5c31253b4323dd2edab

See more details on using hashes here.

File details

Details for the file graphlearning-1.0.6-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: graphlearning-1.0.6-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 74.4 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.10.1 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.10.1

File hashes

Hashes for graphlearning-1.0.6-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 ef548a53f0c32b6a7b7bcadd193e78d9823bf812cbd17c9759b26865a8196e91
MD5 485416f553e954148b18563ad5a37aaa
BLAKE2b-256 43bbc6c93af0acd28edc97deb806e2d755260848eea7a45f7850b29f2a1d61dc

See more details on using hashes here.

File details

Details for the file graphlearning-1.0.6-cp310-cp310-macosx_10_15_x86_64.whl.

File metadata

  • Download URL: graphlearning-1.0.6-cp310-cp310-macosx_10_15_x86_64.whl
  • Upload date:
  • Size: 81.9 kB
  • Tags: CPython 3.10, macOS 10.15+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.10.1 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.10.2

File hashes

Hashes for graphlearning-1.0.6-cp310-cp310-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 747bb03bab113b3ad2e63fedb3889d05237df842bd00902f83e29fb800b486f8
MD5 7bb975c1f87e2ef714850319bd31579f
BLAKE2b-256 6eaa2a3ebe3912f443b39936c526ab7b8fb90fe336a2018b075b4f4865927317

See more details on using hashes here.

Supported by

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