Skip to main content

Python implementations of metric learning algorithms

Project description

Travis-CI Build Status License

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)

Dependencies

  • Python 2.6+
  • numpy, scipy, scikit-learn
  • (for running the examples only: matplotlib)

Installation/Setup

Run python setup.py install for default installation.

Run python setup.py test to run all tests.

Usage

For full usage examples, see the test and examples directories.

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 by d matrix M such that a distance between vectors x and y is expressed (x-y).dot(M).dot(x-y).

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

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.

TODO

  • implement the rest of the methods on this site

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for metric-learn, version 0.1.0
Filename, size File type Python version Upload date Hashes
Filename, size metric-learn-0.1.0.tar.gz (8.4 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page