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 
19 namespace mlpack {
20 namespace det {
21 
33 template <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 
48 template <typename MatType, typename TagType>
50  const std::string viFile = "");
51 
65 template <typename MatType, typename TagType>
66 DTree<MatType, TagType>* Trainer(MatType& dataset,
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  util::Timers& timers = IO::GetTimers());
74 
82 {
83  public:
88  {
95  };
96 
103  template<typename MatType>
105 
109  template<typename MatType>
110  void Enter(const DTree<MatType, int>* node,
111  const DTree<MatType, int>* parent);
112 
116  template<typename MatType>
117  void Leave(const DTree<MatType, int>* node,
118  const DTree<MatType, int>* parent);
119 
123  inline const std::string& PathFor(int tag) const;
124 
128  inline int ParentOf(int tag) const;
129 
133  size_t NumNodes() const { return pathCache.size(); }
134 
135  protected:
136  typedef std::list<std::pair<bool, int>> PathType;
137  typedef std::vector<std::pair<int, std::string>> PathCacheType;
138 
139  PathType path;
141  PathCacheType pathCache;
142 
143  inline std::string BuildString();
144 };
145 
146 } // namespace det
147 } // namespace mlpack
148 
149 #include "dt_utils_impl.hpp"
150 
151 #endif // MLPACK_METHODS_DET_DT_UTILS_HPP
std::string BuildString()
Linear algebra utility functions, generally performed on matrices or vectors.
size_t NumNodes() const
Get the number of nodes in the path cache.
Definition: dt_utils.hpp:133
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.
PathCacheType pathCache
Definition: dt_utils.hpp:141
This class is responsible for caching the path to each node of the tree.
Definition: dt_utils.hpp:81
The core includes that mlpack expects; standard C++ includes and Armadillo.
std::vector< std::pair< int, std::string > > PathCacheType
Definition: dt_utils.hpp:137
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, util::Timers &timers=IO::GetTimers())
Train the optimal decision tree using cross-validation with the given number of folds.
Print only whether we went left or right.
Definition: dt_utils.hpp:90
void Leave(const DTree< MatType, int > *node, const DTree< MatType, int > *parent)
Leave the given node.
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...
PathFormat
Possible formats to use for output.
Definition: dt_utils.hpp:87
A density estimation tree is similar to both a decision tree and a space partitioning tree (like a kd...
Definition: dtree.hpp:46
const std::string & PathFor(int tag) const
Return the constructed path for a given tag.
std::list< std::pair< bool, int > > PathType
Definition: dt_utils.hpp:136
static util::Timers & GetTimers()
Retrieve the global Timers object.
PathCacher(PathFormat fmt, DTree< MatType, int > *tree)
Construct a PathCacher object on the given tree with the given format.
Print the direction, then the tag of the node.
Definition: dt_utils.hpp:92
Print the tag of the node, then the direction.
Definition: dt_utils.hpp:94
void PrintVariableImportance(const DTree< MatType, TagType > *dtree, const std::string viFile="")
Print the variable importance of each dimension of a density estimation tree.