https://github.com/scikit-learn-contrib/metric-learn
Revision 11b36a48abe6c3bf1d43eb381a105f48282ee87b authored by CJ Carey on 08 September 2014, 21:18:04 UTC, committed by CJ Carey on 08 September 2014, 21:18:04 UTC
1 parent c6853f2
Tip revision: 11b36a48abe6c3bf1d43eb381a105f48282ee87b authored by CJ Carey on 08 September 2014, 21:18:04 UTC
converting LSML
converting LSML
Tip revision: 11b36a4
README.md
# 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)
**Dependencies**
* Python 2.6+
* numpy, scipy, scikit-learn
* (for running the examples only: matplotlib)
**Installation/Setup**
Run `python setup.py install` for default installation.
Run `python setup.py test` to run all tests.
**Usage**
For full usage examples, see the `test` and `examples` directories.
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` by `d` matrix `M` such that a distance between vectors `x` and `y` is
expressed `(x-y).dot(M).dot(x-y)`.
In the same scenario, `foo.transformer()` returns a `d` by `d` matrix `L` such that a vector `x`
can be represented in the learned space as the vector `L.dot(x)`.
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.
Computing file changes ...