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(),
147 KDE& operator=(
KDE other);
162 void Train(MatType referenceSet);
174 void Train(Tree* referenceTree, std::vector<size_t>* oldFromNewReferences);
190 void Evaluate(MatType querySet, arma::vec& estimations);
207 void Evaluate(Tree* queryTree,
208 const std::vector<size_t>& oldFromNewQueries,
209 arma::vec& estimations);
221 void Evaluate(arma::vec& estimations);
224 const KernelType&
Kernel()
const {
return kernel; }
230 const MetricType&
Metric()
const {
return metric; }
242 void RelativeError(
const double newError);
248 void AbsoluteError(
const double newError);
273 void MCProb(
const double newProb);
285 void MCEntryCoef(
const double newCoef);
291 void MCBreakCoef(
const double newCoef);
294 template<
typename Archive>
295 void serialize(Archive& ar,
const unsigned int version);
308 std::vector<size_t>* oldFromNewReferences;
317 bool ownsReferenceTree;
345 static void CheckErrorValues(
const double relError,
const double absError);
348 static void RearrangeEstimations(
const std::vector<size_t>& oldFromNew,
349 arma::vec& estimations);
363 namespace serialization{
365 template<
typename KernelType,
368 template<
typename TreeMetricType,
369 typename TreeStatType,
370 typename TreeMatType>
class TreeType,
371 template<typename RuleType> class DualTreeTraversalType,
372 template<typename RuleType> class SingleTreeTraversalType>
373 struct version<
mlpack::kde::KDE<KernelType,
377 DualTreeTraversalType,
378 SingleTreeTraversalType>>
381 typedef mpl::integral_c_tag
tag;
382 BOOST_STATIC_CONSTANT(
int, value = version::type::value);
383 BOOST_MPL_ASSERT((boost::mpl::less<boost::mpl::int_<1>,
384 boost::mpl::int_<256>>));
391 #include "kde_impl.hpp" 393 #endif // MLPACK_METHODS_KDE_KDE_HPP KernelType & Kernel()
Modify the kernel.
static constexpr double relError
Relative error tolerance.
Set the serialization version of the adaboost class.
bool & MonteCarlo()
Modify whether Monte Carlo estimations are being used or not.
double MCProb() const
Get Monte Carlo probability of error being bounded by relative error.
KDEMode
KDEMode represents the ways in which KDE algorithm can be executed.
bool IsTrained() const
Check whether KDE model is trained or not.
static constexpr double mcBreakCoef
Monte Carlo break coefficient.
const KernelType & Kernel() const
Get the kernel.
The core includes that mlpack expects; standard C++ includes and Armadillo.
const MetricType & Metric() const
Get the metric.
size_t MCInitialSampleSize() const
Get Monte Carlo initial sample size.
Extra data for each node in the tree for the task of kernel density estimation.
KDEMode & Mode()
Modify the mode of KDE.
KDEMode Mode() const
Get the mode of KDE.
TreeType< MetricType, kde::KDEStat, MatType > Tree
Convenience typedef.
static constexpr KDEMode mode
KDE algorithm mode.
MetricType & Metric()
Modify the metric.
static constexpr double absError
Absolute error tolerance.
double RelativeError() const
Get relative error tolerance.
The KDE class is a template class for performing Kernel Density Estimations.
static constexpr bool monteCarlo
Whether to use Monte Carlo estimations when possible.
bool MonteCarlo() const
Get whether Monte Carlo estimations are being used or not.
static constexpr size_t initialSampleSize
Initial sample size for Monte Carlo estimations.
static constexpr double mcEntryCoef
Monte Carlo entry coefficient.
KDEDefaultParams contains the default input parameter values for KDE.
static constexpr double mcProb
Probability of a Monte Carlo estimation to be bounded by the relative error tolerance.
double MCEntryCoef() const
Get Monte Carlo entry coefficient.
size_t & MCInitialSampleSize()
Modify Monte Carlo initial sample size.
The standard Gaussian kernel.
double MCBreakCoef() const
Get Monte Carlo break coefficient.
BinarySpaceTree< MetricType, StatisticType, MatType, bound::HRectBound, MidpointSplit > KDTree
The standard midpoint-split kd-tree.
LMetric< 2, true > EuclideanDistance
The Euclidean (L2) distance.
Tree * ReferenceTree()
Get the reference tree.
bool OwnsReferenceTree() const
Check whether reference tree is owned by the KDE model.
double AbsoluteError() const
Get absolute error tolerance.