Python implementations of metric learning algorithms
Project description
metriclearn
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, scikitlearn
(for running the examples only: matplotlib)
Installation/Setup
Run pip install metriclearn 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 ddimensional points, foo.metric() returns a d x d matrix M such that the distance between vectors x and y is expressed sqrt((xy).dot(M).dot(xy)). 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
Release history Release notifications  RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for metric_learn0.4.0py2.py3noneany.whl
Algorithm  Hash digest  

SHA256  3f3ccd61b6fd09ef780becab1f56a31c434d1d4ae9fc8b6386540ed91a0ba917 

MD5  55e0ab15961abf812195409f5e43f6b9 

BLAKE2b256  64a0ae37bc19263370abf7548e386abb9b74916716ce1d7d0a4713ae42e6ab6d 