jlsuarezdiaz / pyDML

Distance Metric Learning Algorithms for Python
GNU General Public License v3.0
173 stars 31 forks source link
algorithms distance-metric-learning linear-maps matrix python

pyDML

Distance Metric Learning Algorithms for Python

What is Distance Metric Learning?

Many machine learning algorithms need a similarity measure to carry out their tasks. Usually, standard distances, like euclidean distance, are used to measure this similarity. Distance Metric Learning algorithms try to learn an optimal distance from the data.

How to learn a distance?

There are two main ways to learn a distance in Distance Metric Learning:

Every linear map defines a single metric (M = L'L), and two linear maps that define the same metric only differ in an isometry. So both approaches are equivalent.

Some applications

Improve distance based classifiers

Improving 1-NN classification.

Dimensionality reduction

Learning a projection onto a plane for the digits dataset (dimension 64).

Documentation

See the available algorithms, the additional functionalities and the full documentation here.

Citation

If you find this package useful in your research, please consider citing the software:

@article{suarez2020pydml,
  title={pyDML: A Python Library for Distance Metric Learning},
  author={Su{\'a}rez, Juan Luis and Garc{\'i}a, Salvador and Herrera, Francisco},
  journal={Journal of Machine Learning Research},
  volume={21},
  number={96},
  pages={1--7},
  year={2020}
}

Stats

The distance metric learning algorithms in pyDML are being evaluated in several datasets. The results of these experiments are available in the pyDML-Stats repository.

Installation

Authors