Skip to main content

Python implementations of metric learning algorithms

Project description

Travis-CI Build Status License PyPI version

metric-learn

Metric Learning algorithms in Python.

Algorithms

  • Large Margin Nearest Neighbor (LMNN)

  • Information Theoretic Metric Learning (ITML)

  • Sparse Determinant Metric Learning (SDML)

  • Least Squares Metric Learning (LSML)

  • Neighborhood Components Analysis (NCA)

  • Local Fisher Discriminant Analysis (LFDA)

  • Relative Components Analysis (RCA)

  • Metric Learning for Kernel Regression (MLKR)

  • Mahalanobis Metric for Clustering (MMC)

Dependencies

  • Python 2.7+, 3.4+

  • numpy, scipy, scikit-learn

  • (for running the examples only: matplotlib)

Installation/Setup

Run pip install metric-learn to download and install from PyPI.

Run python setup.py install for default installation.

Run pytest test to run all tests (you will need to have the pytest package installed).

Usage

For full usage examples, see the sphinx documentation.

Each metric is a subclass of BaseMetricLearner, which provides default implementations for the methods metric, transformer, and transform. Subclasses must provide an implementation for either metric or transformer.

For an instance of a metric learner named foo learning from a set of d-dimensional points, foo.metric() returns a d x d matrix M such that the distance between vectors x and y is expressed sqrt((x-y).dot(M).dot(x-y)). Using scipy’s pdist function, this would look like pdist(X, metric='mahalanobis', VI=foo.metric()).

In the same scenario, foo.transformer() returns a d x d matrix L such that a vector x can be represented in the learned space as the vector x.dot(L.T).

For convenience, the function foo.transform(X) is provided for converting a matrix of points (X) into the learned space, in which standard Euclidean distance can be used.

Notes

If a recent version of the Shogun Python modular (modshogun) library is available, the LMNN implementation will use the fast C++ version from there. The two implementations differ slightly, and the C++ version is more complete.

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

metric-learn-0.4.0.tar.gz (24.6 kB view details)

Uploaded Source

Built Distribution

metric_learn-0.4.0-py2.py3-none-any.whl (32.1 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file metric-learn-0.4.0.tar.gz.

File metadata

  • Download URL: metric-learn-0.4.0.tar.gz
  • Upload date:
  • Size: 24.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.14.2 setuptools/40.2.0 requests-toolbelt/0.8.0 tqdm/4.15.0 CPython/3.6.3

File hashes

Hashes for metric-learn-0.4.0.tar.gz
Algorithm Hash digest
SHA256 697fa55bc11f97a36835cf70a7833b93bb5481a3468f503fb4da22bf0137b400
MD5 e9f5a4f911e7c7ba59d146a263be6ff1
BLAKE2b-256 73e3818f5f69ba6581df7fdc55a4940783771fcb155cf2821ba51734416c0a9f

See more details on using hashes here.

File details

Details for the file metric_learn-0.4.0-py2.py3-none-any.whl.

File metadata

  • Download URL: metric_learn-0.4.0-py2.py3-none-any.whl
  • Upload date:
  • Size: 32.1 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.14.2 setuptools/40.2.0 requests-toolbelt/0.8.0 tqdm/4.15.0 CPython/3.6.3

File hashes

Hashes for metric_learn-0.4.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 3f3ccd61b6fd09ef780becab1f56a31c434d1d4ae9fc8b6386540ed91a0ba917
MD5 55e0ab15961abf812195409f5e43f6b9
BLAKE2b-256 64a0ae37bc19263370abf7548e386abb9b74916716ce1d7d0a4713ae42e6ab6d

See more details on using hashes here.

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