All Projects → jlsuarezdiaz → Pydml

jlsuarezdiaz / Pydml

Licence: gpl-3.0
Distance Metric Learning Algorithms for Python

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Pydml

Tlaplus
TLC is an explicit state model checker for specifications written in TLA+. The TLA+Toolbox is an IDE for TLA+.
Stars: ✭ 1,618 (+1306.96%)
Mutual labels:  algorithms
Acm Icpc Library
Stars: ✭ 111 (-3.48%)
Mutual labels:  algorithms
Perspectivetransform
Calculate CATransform3D between two Perspectives
Stars: ✭ 113 (-1.74%)
Mutual labels:  matrix
Mygo
Leetcode、剑指offer(第二版)的Go实现😀 Come join us!🤝❤️👻
Stars: ✭ 109 (-5.22%)
Mutual labels:  algorithms
Sage
Mirror of the Sage source tree -- please do not submit PRs here -- everything must be submitted via https://trac.sagemath.org/
Stars: ✭ 1,656 (+1340%)
Mutual labels:  algorithms
Hackerrank
Efficient HackerRank solutions in JavaScript (⬡.js)
Stars: ✭ 111 (-3.48%)
Mutual labels:  algorithms
Opencvjs
Complete opencvjs (With the lastest OpenCV 4.0.0+)
Stars: ✭ 108 (-6.09%)
Mutual labels:  matrix
Foundational Knowledge For Programmers
List of resources about foundational knowledge for programmers (supposed to last a few decades)
Stars: ✭ 115 (+0%)
Mutual labels:  algorithms
Graphav
A Graph Algorithms Visualizer built using React, Typescript and Styled Components.
Stars: ✭ 111 (-3.48%)
Mutual labels:  algorithms
Dailycodingproblem
Stars: ✭ 113 (-1.74%)
Mutual labels:  algorithms
Matrix Puppet Imessage
A two-way puppeted Matrix bridge for Apple iMessage / Messages
Stars: ✭ 109 (-5.22%)
Mutual labels:  matrix
Index
Metarhia educational program index 📖
Stars: ✭ 2,045 (+1678.26%)
Mutual labels:  algorithms
Ultimate Go
This repo contains my notes on working with Go and computer systems.
Stars: ✭ 1,530 (+1230.43%)
Mutual labels:  algorithms
The Matrix Effect
The incredible effect of rain of letters in the style of the Matrix trilogy.
Stars: ✭ 109 (-5.22%)
Mutual labels:  matrix
Competitive Programming
Hello Programmers 💻 , A one-stop Destination✏️✏️ for all your Competitive Programming Resources.📗📕 Refer CONTRIBUTING.md for contributions
Stars: ✭ 113 (-1.74%)
Mutual labels:  algorithms
Indoor Navigation Algorithms
This is a public repository of a Navigine company that develops different kinds of indoor positioning algorithms with the main focus on indoor navigation. Here we will step by step publish the source code of our algorithm starting with trilateration.
Stars: ✭ 108 (-6.09%)
Mutual labels:  algorithms
Syntaxmeets
Syntaxmeets. Create rooms 🏠 Call your friends 👬🏼 Sip Chai, ☕ Chat, Create, and Code👨‍💻. A coding platform to code simultaneously 🚀 with your friends and design your algorithms on SyntaxPad.💫✨
Stars: ✭ 110 (-4.35%)
Mutual labels:  algorithms
Functional Way
Write small programs (eg -algorithms) in a functional way.
Stars: ✭ 115 (+0%)
Mutual labels:  algorithms
Scriptsdump
The biggest dump of scripts ever!
Stars: ✭ 114 (-0.87%)
Mutual labels:  algorithms
Jortsort
the official website for jortSorting
Stars: ✭ 112 (-2.61%)
Mutual labels:  algorithms

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.

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

  • 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

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].