13 #ifndef MLPACK_METHODS_KDE_KDE_HPP 14 #define MLPACK_METHODS_KDE_KDE_HPP 48 static constexpr
double mcProb = 0.95;
76 typename MatType = arma::mat,
77 template<
typename TreeMetricType,
78 typename TreeStatType,
80 template<
typename RuleType>
class DualTreeTraversalType =
83 MatType>::template DualTreeTraverser,
84 template<
typename RuleType>
class SingleTreeTraversalType =
87 MatType>::template SingleTreeTraverser>
92 typedef TreeType<MetricType, kde::KDEStat, MatType>
Tree;
116 KernelType kernel = KernelType(),
118 MetricType metric = MetricType(),
145 KDE& operator=(
const KDE& other);
152 KDE& operator=(
KDE&& other);
167 void Train(MatType referenceSet);
179 void Train(Tree* referenceTree, std::vector<size_t>* oldFromNewReferences);
195 void Evaluate(MatType querySet, arma::vec& estimations);
212 void Evaluate(Tree* queryTree,
213 const std::vector<size_t>& oldFromNewQueries,
214 arma::vec& estimations);
226 void Evaluate(arma::vec& estimations);
229 const KernelType&
Kernel()
const {
return kernel; }
235 const MetricType&
Metric()
const {
return metric; }
247 void RelativeError(
const double newError);
253 void AbsoluteError(
const double newError);
278 void MCProb(
const double newProb);
290 void MCEntryCoef(
const double newCoef);
296 void MCBreakCoef(
const double newCoef);
299 template<
typename Archive>
300 void serialize(Archive& ar,
const uint32_t version);
313 std::vector<size_t>* oldFromNewReferences;
322 bool ownsReferenceTree;
350 static void CheckErrorValues(
const double relError,
const double absError);
353 static void RearrangeEstimations(
const std::vector<size_t>& oldFromNew,
354 arma::vec& estimations);
363 #endif // MLPACK_METHODS_KDE_KDE_HPP const KernelType & Kernel() const
Get the kernel.
Definition: kde.hpp:229
static constexpr bool monteCarlo
Whether to use Monte Carlo estimations when possible.
Definition: kde.hpp:44
BinarySpaceTree< MetricType, StatisticType, MatType, bound::HRectBound, MidpointSplit > KDTree
The standard midpoint-split kd-tree.
Definition: typedef.hpp:63
static constexpr double mcProb
Probability of a Monte Carlo estimation to be bounded by the relative error tolerance.
Definition: kde.hpp:48
bool MonteCarlo() const
Get whether Monte Carlo estimations are being used or not.
Definition: kde.hpp:268
Linear algebra utility functions, generally performed on matrices or vectors.
Definition: cv.hpp:1
bool OwnsReferenceTree() const
Check whether reference tree is owned by the KDE model.
Definition: kde.hpp:256
The core includes that mlpack expects; standard C++ includes and Armadillo.
static constexpr KDEMode mode
KDE algorithm mode.
Definition: kde.hpp:41
double AbsoluteError() const
Get absolute error tolerance.
Definition: kde.hpp:250
Extra data for each node in the tree for the task of kernel density estimation.
Definition: kde_stat.hpp:24
KernelType & Kernel()
Modify the kernel.
Definition: kde.hpp:232
size_t MCInitialSampleSize() const
Get Monte Carlo initial sample size.
Definition: kde.hpp:281
double MCProb() const
Get Monte Carlo probability of error being bounded by relative error.
Definition: kde.hpp:274
static constexpr double relError
Relative error tolerance.
Definition: kde.hpp:35
const MetricType & Metric() const
Get the metric.
Definition: kde.hpp:235
Tree * ReferenceTree()
Get the reference tree.
Definition: kde.hpp:241
double MCEntryCoef() const
Get Monte Carlo entry coefficient.
Definition: kde.hpp:287
size_t & MCInitialSampleSize()
Modify Monte Carlo initial sample size.
Definition: kde.hpp:284
KDEMode & Mode()
Modify the mode of KDE.
Definition: kde.hpp:265
double RelativeError() const
Get relative error tolerance.
Definition: kde.hpp:244
The KDE class is a template class for performing Kernel Density Estimations.
Definition: kde.hpp:88
static constexpr double mcEntryCoef
Monte Carlo entry coefficient.
Definition: kde.hpp:54
static constexpr double absError
Absolute error tolerance.
Definition: kde.hpp:38
Definition: hmm_train_main.cpp:300
bool IsTrained() const
Check whether KDE model is trained or not.
Definition: kde.hpp:259
The L_p metric for arbitrary integer p, with an option to take the root.
Definition: lmetric.hpp:63
static constexpr double mcBreakCoef
Monte Carlo break coefficient.
Definition: kde.hpp:57
MetricType & Metric()
Modify the metric.
Definition: kde.hpp:238
KDEDefaultParams contains the default input parameter values for KDE.
Definition: kde.hpp:32
The standard Gaussian kernel.
Definition: gaussian_kernel.hpp:34
KDEMode
KDEMode represents the ways in which KDE algorithm can be executed.
Definition: kde.hpp:25
bool & MonteCarlo()
Modify whether Monte Carlo estimations are being used or not.
Definition: kde.hpp:271
TreeType< MetricType, kde::KDEStat, MatType > Tree
Convenience typedef.
Definition: kde.hpp:92
double MCBreakCoef() const
Get Monte Carlo break coefficient.
Definition: kde.hpp:293
static constexpr size_t initialSampleSize
Initial sample size for Monte Carlo estimations.
Definition: kde.hpp:51
KDEMode Mode() const
Get the mode of KDE.
Definition: kde.hpp:262