mlpack 3.4.2
dt_utils.hpp
Go to the documentation of this file.
1
13#ifndef MLPACK_METHODS_DET_DT_UTILS_HPP
14#define MLPACK_METHODS_DET_DT_UTILS_HPP
15
16#include <mlpack/prereqs.hpp>
17#include "dtree.hpp"
18
19namespace mlpack {
20namespace det {
21
33template <typename MatType, typename TagType>
35 const MatType& data,
36 const arma::Mat<size_t>& labels,
37 const size_t numClasses,
38 const std::string& leafClassMembershipFile = "");
39
48template <typename MatType, typename TagType>
50 const std::string viFile = "");
51
65template <typename MatType, typename TagType>
67 const size_t folds,
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);
73
81{
82 public:
87 {
94 };
95
102 template<typename MatType>
104
108 template<typename MatType>
109 void Enter(const DTree<MatType, int>* node,
110 const DTree<MatType, int>* parent);
111
115 template<typename MatType>
116 void Leave(const DTree<MatType, int>* node,
117 const DTree<MatType, int>* parent);
118
122 inline const std::string& PathFor(int tag) const;
123
127 inline int ParentOf(int tag) const;
128
132 size_t NumNodes() const { return pathCache.size(); }
133
134 protected:
135 typedef std::list<std::pair<bool, int>> PathType;
136 typedef std::vector<std::pair<int, std::string>> PathCacheType;
137
141
142 inline std::string BuildString();
143};
144
145} // namespace det
146} // namespace mlpack
147
148#include "dt_utils_impl.hpp"
149
150#endif // MLPACK_METHODS_DET_DT_UTILS_HPP
A density estimation tree is similar to both a decision tree and a space partitioning tree (like a kd...
Definition: dtree.hpp:47
This class is responsible for caching the path to each node of the tree.
Definition: dt_utils.hpp:81
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
Definition: dt_utils.hpp:136
size_t NumNodes() const
Get the number of nodes in the path cache.
Definition: dt_utils.hpp:132
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.
Definition: dt_utils.hpp:87
@ FormatID_LR
Print the tag of the node, then the direction.
Definition: dt_utils.hpp:93
@ FormatLR
Print only whether we went left or right.
Definition: dt_utils.hpp:89
@ FormatLR_ID
Print the direction, then the tag of the node.
Definition: dt_utils.hpp:91
std::string BuildString()
std::list< std::pair< bool, int > > PathType
Definition: dt_utils.hpp:135
PathCacheType pathCache
Definition: dt_utils.hpp:140
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.
Definition: cv.hpp:1
The core includes that mlpack expects; standard C++ includes and Armadillo.