12 #ifndef MLPACK_METHODS_LMNN_CONSTRAINTS_HPP 13 #define MLPACK_METHODS_LMNN_CONSTRAINTS_HPP 30 template<
typename MetricType = metric::SquaredEucl
ideanDistance>
46 const arma::Row<size_t>& labels,
58 const arma::mat& dataset,
59 const arma::Row<size_t>& labels,
60 const arma::vec& norms);
73 const arma::mat& dataset,
74 const arma::Row<size_t>& labels,
75 const arma::vec& norms,
77 const size_t batchSize);
87 void Impostors(arma::Mat<size_t>& outputMatrix,
88 const arma::mat& dataset,
89 const arma::Row<size_t>& labels,
90 const arma::vec& norms);
101 void Impostors(arma::Mat<size_t>& outputNeighbors,
102 arma::mat& outputDistance,
103 const arma::mat& dataset,
104 const arma::Row<size_t>& labels,
105 const arma::vec& norms);
117 void Impostors(arma::Mat<size_t>& outputMatrix,
118 const arma::mat& dataset,
119 const arma::Row<size_t>& labels,
120 const arma::vec& norms,
122 const size_t batchSize);
135 void Impostors(arma::Mat<size_t>& outputNeighbors,
136 arma::mat& outputDistance,
137 const arma::mat& dataset,
138 const arma::Row<size_t>& labels,
139 const arma::vec& norms,
141 const size_t batchSize);
155 void Impostors(arma::Mat<size_t>& outputNeighbors,
156 arma::mat& outputDistance,
157 const arma::mat& dataset,
158 const arma::Row<size_t>& labels,
159 const arma::vec& norms,
160 const arma::uvec& points,
161 const size_t numPoints);
171 void Triplets(arma::Mat<size_t>& outputMatrix,
172 const arma::mat& dataset,
173 const arma::Row<size_t>& labels,
174 const arma::vec& norms);
177 const size_t&
K()
const {
return k; }
179 size_t&
K() {
return k; }
191 arma::Row<size_t> uniqueLabels;
194 std::vector<arma::uvec> indexSame;
197 std::vector<arma::uvec> indexDiff;
206 inline void Precalculate(
const arma::Row<size_t>& labels);
212 inline void ReorderResults(
const arma::mat& distances,
213 arma::Mat<size_t>& neighbors,
214 const arma::vec& norms);
221 #include "constraints_impl.hpp"
The core includes that mlpack expects; standard C++ includes and Armadillo.
The NeighborSearch class is a template class for performing distance-based neighbor searches...
const size_t & K() const
Get the number of target neighbors (k).
void Impostors(arma::Mat< size_t > &outputMatrix, const arma::mat &dataset, const arma::Row< size_t > &labels, const arma::vec &norms)
Calculates k differently labeled nearest neighbors for each datapoint and writes them back to passed ...
Interface for generating distance based constraints on a given dataset, provided corresponding true l...
neighbor::NeighborSearch< neighbor::NearestNeighborSort, MetricType > KNN
Convenience typedef.
bool & PreCalulated()
Modify the value of precalculated.
void Triplets(arma::Mat< size_t > &outputMatrix, const arma::mat &dataset, const arma::Row< size_t > &labels, const arma::vec &norms)
Generate triplets {i, j, l} for each datapoint i and writes back generated triplets to matrix passed...
void TargetNeighbors(arma::Mat< size_t > &outputMatrix, const arma::mat &dataset, const arma::Row< size_t > &labels, const arma::vec &norms)
Calculates k similar labeled nearest neighbors and stores them into the passed matrix.
Constraints(const arma::mat &dataset, const arma::Row< size_t > &labels, const size_t k)
Constructor for creating a Constraints instance.
size_t & K()
Modify the number of target neighbors (k).
const bool & PreCalulated() const
Access the boolean value of precalculated.