Canopy  1.0
The header-only random forests library
defaultParameterGenerator.hpp
Go to the documentation of this file.
1 #ifndef DEFAULTPARAMETERGENERATOR_HPP
2 #define DEFAULTPARAMETERGENERATOR_HPP
3 
10 #include <random>
11 #include <array>
12 #include <algorithm>
13 
14 namespace canopy
15 {
16 
25 template <unsigned TNumParams>
27 {
28  public:
34  defaultParameterGenerator(const int limit)
35  {
36  // Setup RNG
37  std::random_device rd{};
38  rand_engine.seed(rd());
39 
40  // Set all limits to be the same value
41  std::fill(param_limits.begin(),param_limits.end(),limit);
42  }
43 
49  defaultParameterGenerator(const std::array<int,TNumParams>& limits)
50  {
51  // Setup RNG
52  std::random_device rd{};
53  rand_engine.seed(rd());
54 
55  // Store limit values
56  std::copy(limits.cbegin(),limits.cend(),param_limits.begin());
57  }
58 
63  void operator() (std::array<int,TNumParams>& params)
64  {
65  // Generate a valid combination of parameters and store in params
66  for(unsigned p = 0; p < TNumParams; ++p)
67  {
68  params[p] = uni_int_dist(rand_engine,std::uniform_int_distribution<int>::param_type{0,param_limits[p]});
69  }
70  }
71 
72  private:
73  std::array<int,TNumParams> param_limits;
74  std::default_random_engine rand_engine;
75  std::uniform_int_distribution<int> uni_int_dist;
76 };
77 
78 } // end of namespace
79 
80 #endif // DEFAULTPARAMETERGENERATOR_HPP
defaultParameterGenerator(const std::array< int, TNumParams > &limits)
Constructor where different limits are used for each parameter.
Definition: defaultParameterGenerator.hpp:49
defaultParameterGenerator(const int limit)
Constructor where one limit is applied to all parameters.
Definition: defaultParameterGenerator.hpp:34
Namespace containing the canopy library for random forest models.
Definition: circularRegressor.hpp:13
void operator()(std::array< int, TNumParams > &params)
Function to generate random parameter combinations.
Definition: defaultParameterGenerator.hpp:63
A simple parameter generator functor for training forest models.
Definition: defaultParameterGenerator.hpp:26