Metadata-Version: 2.0
Name: metric-learn
Version: 0.4.0
Summary: Python implementations of metric learning algorithms
Home-page: http://github.com/metric-learn/metric-learn
Author: ['CJ Carey', 'Yuan Tang']
Author-email: ccarey@cs.umass.edu
License: MIT
Keywords: Metric Learning,Large Margin Nearest Neighbor,Information Theoretic Metric Learning,Sparse Determinant Metric Learning,Least Squares Metric Learning,Neighborhood Components Analysis,Local Fisher Discriminant Analysis,Relative Components Analysis,Mahalanobis Metric for Clustering,Metric Learning for Kernel Regression
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python
Classifier: Operating System :: OS Independent
Classifier: Intended Audience :: Science/Research
Classifier: Topic :: Scientific/Engineering
Provides-Extra: docs
Provides-Extra: demo
Requires-Dist: numpy
Requires-Dist: scikit-learn
Requires-Dist: scipy
Requires-Dist: six
Provides-Extra: demo
Requires-Dist: matplotlib; extra == 'demo'
Provides-Extra: docs
Requires-Dist: numpydoc; extra == 'docs'
Requires-Dist: shinx-rtd-theme; extra == 'docs'
Requires-Dist: sphinx; extra == 'docs'

|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.


.. _sphinx documentation: http://metric-learn.github.io/metric-learn/

.. |Travis-CI Build Status| image:: https://api.travis-ci.org/metric-learn/metric-learn.svg?branch=master
   :target: https://travis-ci.org/metric-learn/metric-learn
.. |License| image:: http://img.shields.io/:license-mit-blue.svg?style=flat
   :target: http://badges.mit-license.org
.. |PyPI version| image:: https://badge.fury.io/py/metric-learn.svg
   :target: http://badge.fury.io/py/metric-learn



