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.

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.0.tar.gz (62.8 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.0-py3.8-linux-x86_64.egg (388.7 kB view details)

Uploaded Egg

graphlearning-1.0.0-cp39-cp39-macosx_11_0_x86_64.whl (79.3 kB view details)

Uploaded CPython 3.9macOS 11.0+ x86-64

graphlearning-1.0.0-cp38-cp38-win_amd64.whl (71.5 kB view details)

Uploaded CPython 3.8Windows x86-64

File details

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

File metadata

  • Download URL: graphlearning-1.0.0.tar.gz
  • Upload date:
  • Size: 62.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.6.1 requests/2.22.0 requests-toolbelt/0.9.1 tqdm/4.55.0 CPython/3.8.10

File hashes

Hashes for graphlearning-1.0.0.tar.gz
Algorithm Hash digest
SHA256 aa58035e1e36cea96690ba1641a45123ccc6e01d25228355c769060e505797e0
MD5 51759678a70050210e3d0b1eb698a23a
BLAKE2b-256 adbe882f31da4a52dbdbed93348c9ac7bce28eb9871f4fe704e24069a71d1b81

See more details on using hashes here.

File details

Details for the file graphlearning-1.0.0-py3.8-linux-x86_64.egg.

File metadata

  • Download URL: graphlearning-1.0.0-py3.8-linux-x86_64.egg
  • Upload date:
  • Size: 388.7 kB
  • Tags: Egg
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.6.1 requests/2.22.0 requests-toolbelt/0.9.1 tqdm/4.55.0 CPython/3.8.10

File hashes

Hashes for graphlearning-1.0.0-py3.8-linux-x86_64.egg
Algorithm Hash digest
SHA256 654794f968d936fb9db686eb52ee090dd9aa5e211879153bf2de93dcbfbf068c
MD5 a1d4d749f495f78f617960b9b7146a48
BLAKE2b-256 2714602d703b985640c93b62a4eb5113e00f102b604e77693d4f7aa07699dc41

See more details on using hashes here.

File details

Details for the file graphlearning-1.0.0-cp39-cp39-macosx_11_0_x86_64.whl.

File metadata

  • Download URL: graphlearning-1.0.0-cp39-cp39-macosx_11_0_x86_64.whl
  • Upload date:
  • Size: 79.3 kB
  • Tags: CPython 3.9, macOS 11.0+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.6.1 requests/2.22.0 requests-toolbelt/0.9.1 tqdm/4.55.0 CPython/3.8.10

File hashes

Hashes for graphlearning-1.0.0-cp39-cp39-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 793d112f5c6214e945accf21f439c0c5e720eed898accea7a05e34b9884d8bb4
MD5 355dd028816e378adfa2b24b1f992b9a
BLAKE2b-256 b6fed69a68e9befcaad0efe73e5a487499e3d94875ba4202141430e733f21a09

See more details on using hashes here.

File details

Details for the file graphlearning-1.0.0-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: graphlearning-1.0.0-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 71.5 kB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.6.1 requests/2.22.0 requests-toolbelt/0.9.1 tqdm/4.55.0 CPython/3.8.10

File hashes

Hashes for graphlearning-1.0.0-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 fdbdcd712a5e29b476295e9b3f5c86b3766cecd75c9df1f5067d2471f9729f1f
MD5 4295b4f717a8550443af1efdbfb5c1e8
BLAKE2b-256 963f1d421174f3f141f424d214ef932b260aa1a9f8a6eb8b1464ab52a7138d6a

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