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.5.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.5-cp310-cp310-win_amd64.whl (74.3 kB view details)

Uploaded CPython 3.10Windows x86-64

graphlearning-1.0.5-cp310-cp310-macosx_10_15_x86_64.whl (81.8 kB view details)

Uploaded CPython 3.10macOS 10.15+ x86-64

File details

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

File metadata

  • Download URL: graphlearning-1.0.5.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.5.tar.gz
Algorithm Hash digest
SHA256 78eadaffe44e9d772b2c6646c69b6dec0e6739ae4280aac6c1f3510fbbc361cd
MD5 5fd6320d0d459c661139d093f8724106
BLAKE2b-256 e71f98274a3581f72141e0bd71d30366a7f2897a178e4271427cc2f8938a6521

See more details on using hashes here.

File details

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

File metadata

  • Download URL: graphlearning-1.0.5-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 74.3 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.5-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 c5455ec04f66569f412a93661d696f201c868b05494234a26bf7097ba0f57480
MD5 ee014155ed11145a2bf57e1e9e504578
BLAKE2b-256 b24676965abac7ff5d248481494cf536f3a30e88fd686f5928f9045c6c059d6f

See more details on using hashes here.

File details

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

File metadata

  • Download URL: graphlearning-1.0.5-cp310-cp310-macosx_10_15_x86_64.whl
  • Upload date:
  • Size: 81.8 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.5-cp310-cp310-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 0bfd7e3c4fa02c767d9ecc6337d8d5d42ee1298bdd35edf3875915fe1c26f64b
MD5 206daa47feaa53cfc480cf7500828c4c
BLAKE2b-256 878c671b8a2f1a1cff531ff3a8b2006a269590ecd311f4e59a017a6b51f6c7f7

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