An implementation of Neighborhood Components Analysis, both a linear dimensionality reduction technique and a distance learning technique.
More...
|
| NCA (const arma::mat &dataset, const arma::Row< size_t > &labels, MetricType metric=MetricType()) |
| Construct the Neighborhood Components Analysis object. More...
|
|
const arma::mat & | Dataset () const |
| Get the dataset reference. More...
|
|
const arma::Row< size_t > & | Labels () const |
| Get the labels reference. More...
|
|
template<typename... CallbackTypes> |
void | LearnDistance (arma::mat &outputMatrix, CallbackTypes &&... callbacks) |
| Perform Neighborhood Components Analysis. More...
|
|
const OptimizerType & | Optimizer () const |
| Get the optimizer. More...
|
|
OptimizerType & | Optimizer () |
|
template
<
typename
MetricType
=
metric::SquaredEuclideanDistance
,
class mlpack::nca::NCA< MetricType, OptimizerType >
An implementation of Neighborhood Components Analysis, both a linear dimensionality reduction technique and a distance learning technique.
The method seeks to improve k-nearest-neighbor classification on a dataset by scaling the dimensions. The method is nonparametric, and does not require a value of k. It works by using stochastic ("soft") neighbor assignments and using optimization techniques over the gradient of the accuracy of the neighbor assignments.
For more details, see the following published paper:
@inproceedings{Goldberger2004,
author = {Goldberger, Jacob and Roweis, Sam and Hinton, Geoff and
Salakhutdinov, Ruslan},
booktitle = {Advances in Neural Information Processing Systems 17},
pages = {513--520},
publisher = {MIT Press},
title = {{Neighbourhood Components Analysis}},
year = {2004}
}
Definition at line 49 of file nca.hpp.