## metric-learn: Metric Learning in Python

metric-learn contains efficient Python implementations of several popular supervised and weakly-supervised metric learning algorithms. As part of scikit-learn-contrib, the API of metric-learn is compatible with scikit-learn, the leading library for machine learning in Python. This allows to use all the scikit-learn routines (for pipelining, model selection, etc) with metric learning algorithms through a unified interface.

**Algorithms**

- Large Margin Nearest Neighbor (LMNN)
- Information Theoretic Metric Learning (ITML)
- Sparse Determinant Metric Learning (SDML)
- Least Squares Metric Learning (LSML)
- Sparse Compositional Metric Learning (SCML)
- 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 3.6+ (the last version supporting Python 2 and Python 3.5 was v0.5.0)
- numpy, scipy, scikit-learn>=0.20.3

**Optional dependencies**

- For SDML, using skggm will allow the algorithm to solve problematic cases (install from commit a0ed406).
`pip install 'git+https://github.com/skggm/skggm.git@a0ed406586c4364ea3297a658f415e13b5cbdaf8'`

to install the required version of skggm from GitHub. - For running the examples only: matplotlib

**Installation/Setup**

- If you use Anaconda:
`conda install -c conda-forge metric-learn`

. See more options here. - To install from PyPI:
`pip install metric-learn`

. - For a manual install of the latest code, download the source repository and run
`python setup.py install`

. You may then run`pytest test`

to run all tests (you will need to have the`pytest`

package installed).

**Usage**

See the sphinx documentation for full documentation about installation, API, usage, and examples.

**Citation**

If you use metric-learn in a scientific publication, we would appreciate citations to the following paper:

metric-learn: Metric Learning Algorithms in Python, de Vazelhes *et al.*, Journal of Machine Learning Research, 21(138):1-6, 2020.

Bibtex entry:

@article{metric-learn, title = {metric-learn: {M}etric {L}earning {A}lgorithms in {P}ython}, author = {{de Vazelhes}, William and {Carey}, CJ and {Tang}, Yuan and {Vauquier}, Nathalie and {Bellet}, Aur{\'e}lien}, journal = {Journal of Machine Learning Research}, year = {2020}, volume = {21}, number = {138}, pages = {1--6} }