13#ifndef MLPACK_METHODS_DET_DT_UTILS_HPP
14#define MLPACK_METHODS_DET_DT_UTILS_HPP
33template <
typename MatType,
typename TagType>
36 const arma::Mat<size_t>& labels,
37 const size_t numClasses,
38 const std::string& leafClassMembershipFile =
"");
48template <
typename MatType,
typename TagType>
50 const std::string viFile =
"");
65template <
typename MatType,
typename TagType>
68 const bool useVolumeReg =
false,
69 const size_t maxLeafSize = 10,
70 const size_t minLeafSize = 5,
71 const std::string unprunedTreeOutput =
"",
72 const bool skipPruning =
false);
102 template<
typename MatType>
108 template<
typename MatType>
115 template<
typename MatType>
122 inline const std::string&
PathFor(
int tag)
const;
148#include "dt_utils_impl.hpp"
A density estimation tree is similar to both a decision tree and a space partitioning tree (like a kd...
This class is responsible for caching the path to each node of the tree.
const std::string & PathFor(int tag) const
Return the constructed path for a given tag.
void Leave(const DTree< MatType, int > *node, const DTree< MatType, int > *parent)
Leave the given node.
std::vector< std::pair< int, std::string > > PathCacheType
size_t NumNodes() const
Get the number of nodes in the path cache.
void Enter(const DTree< MatType, int > *node, const DTree< MatType, int > *parent)
Enter a given node.
int ParentOf(int tag) const
Get the parent tag of a given tag.
PathCacher(PathFormat fmt, DTree< MatType, int > *tree)
Construct a PathCacher object on the given tree with the given format.
PathFormat
Possible formats to use for output.
@ FormatID_LR
Print the tag of the node, then the direction.
@ FormatLR
Print only whether we went left or right.
@ FormatLR_ID
Print the direction, then the tag of the node.
std::string BuildString()
std::list< std::pair< bool, int > > PathType
void PrintLeafMembership(DTree< MatType, TagType > *dtree, const MatType &data, const arma::Mat< size_t > &labels, const size_t numClasses, const std::string &leafClassMembershipFile="")
Print the membership of leaves of a density estimation tree given the labels and number of classes.
void PrintVariableImportance(const DTree< MatType, TagType > *dtree, const std::string viFile="")
Print the variable importance of each dimension of a density estimation tree.
DTree< MatType, TagType > * Trainer(MatType &dataset, const size_t folds, const bool useVolumeReg=false, const size_t maxLeafSize=10, const size_t minLeafSize=5, const std::string unprunedTreeOutput="", const bool skipPruning=false)
Train the optimal decision tree using cross-validation with the given number of folds.
Linear algebra utility functions, generally performed on matrices or vectors.
The core includes that mlpack expects; standard C++ includes and Armadillo.