Distance Metric Learning algorithms for Python
Project description
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:
-
Learning a metric matrix M, that is, a positive semidefinite matrix. In this case, the distance is measured as
-
Learning a linear map L. This map is also represented by a matrix, not necessarily definite or squared. Here, the distance between two elements is the euclidean distance after applying the transformation.
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.
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
-
PyPI latest version:
pip install pyDML
-
From GitHub: clone or download this repository and run the command
python setup.py install
on the root directory.
Authors
- Juan Luis Suárez Díaz (jlsuarezdiaz)
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
File details
Details for the file pyDML-0.1.0.tar.gz
.
File metadata
- Download URL: pyDML-0.1.0.tar.gz
- Upload date:
- Size: 54.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.20.1 setuptools/40.6.2 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.6.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8ee8af712fa2f3bc5d37494e84888af530fc5af37f48285f74003c4d6fc9ae6e |
|
MD5 | 3da74f737899cef5fe6c399b0c091b98 |
|
BLAKE2b-256 | 96202903ed13f1f5504ce35d6eb1abf0f7dd282d09d350c76f5342de55f339a0 |