common.h
Go to the documentation of this file.
1 /*
2  * SPDX-FileCopyrightText: Copyright (c) 2021, NVIDIA CORPORATION.
3  * SPDX-License-Identifier: Apache-2.0
4  */
5 
6 #pragma once
7 
8 #include "node.h"
9 
10 #include <cstdint>
11 #include <map>
12 #include <string>
13 #include <vector>
14 
15 namespace cuml {
16 namespace genetic {
17 
19 enum class metric_t : uint32_t {
21  mae,
22 
24  mse,
25 
27  rmse,
28 
30  pearson,
31 
33  spearman,
34 
36  logloss,
37 }; // enum class metric_t
38 
40 enum class init_method_t : uint32_t {
42  grow,
43 
45  full,
46 
49 }; // enum class init_method_t
50 
51 enum class transformer_t : uint32_t {
53  sigmoid,
54 }; // enum class transformer_t
55 
57 enum class mutation_t : uint32_t {
59  none,
60 
62  crossover,
63 
65  subtree,
66 
68  hoist,
69 
71  point,
72 
74  reproduce
75 }; // enum class mutation_t
76 
83 struct param {
85  int population_size = 1000;
86 
91  int hall_of_fame = 100;
92 
97  int n_components = 10;
98 
100  int generations = 20;
101 
106  int tournament_size = 20;
107 
109  float stopping_criteria = 0.0f;
110 
112  float const_range[2] = {-1.0f, 1.0f};
113 
115  int init_depth[2] = {2, 6};
116 
119 
121  std::vector<node::type> function_set{
123 
125  std::map<int, std::vector<node::type>> arity_set{
132  float parsimony_coefficient = 0.001f;
134  float p_crossover = 0.9f;
136  float p_subtree_mutation = 0.01f;
138  float p_hoist_mutation = 0.01f;
139 
141  float p_point_mutation = 0.01f;
142 
144  float p_point_replace = 0.05f;
145 
147  float max_samples = 1.0f;
148 
150  float terminalRatio = 0.0f;
151 
153  std::vector<std::string> feature_names;
154 
159 
161  uint64_t random_state = 0UL;
162 
164  int num_epochs = 0;
165 
167  bool low_memory = false;
168 
170  float p_reproduce() const;
171 
173  int max_programs() const;
174 
176  int criterion() const;
177 }; // struct param
178 
179 } // namespace genetic
180 } // namespace cuml
metric_t
Definition: common.h:19
transformer_t
Definition: common.h:51
mutation_t
Definition: common.h:57
init_method_t
Definition: common.h:40
Definition: common.h:15
contains all the hyper-parameters for training
Definition: common.h:83
int population_size
Definition: common.h:85
int generations
Definition: common.h:100
bool low_memory
Definition: common.h:167
float p_crossover
Definition: common.h:134
int num_epochs
Definition: common.h:164
float p_point_replace
Definition: common.h:144
float max_samples
Definition: common.h:147
float p_subtree_mutation
Definition: common.h:136
int n_components
Definition: common.h:97
float stopping_criteria
Definition: common.h:109
uint64_t random_state
Definition: common.h:161
float const_range[2]
Definition: common.h:112
std::vector< std::string > feature_names
Definition: common.h:153
float p_hoist_mutation
Definition: common.h:138
std::map< int, std::vector< node::type > > arity_set
Definition: common.h:125
float terminalRatio
Definition: common.h:150
int num_features
Definition: common.h:156
metric_t metric
Definition: common.h:130
int tournament_size
Definition: common.h:106
int max_programs() const
float p_point_mutation
Definition: common.h:141
float p_reproduce() const
int init_depth[2]
Definition: common.h:115
transformer_t transformer
Definition: common.h:128
int hall_of_fame
Definition: common.h:91
float parsimony_coefficient
Definition: common.h:132
int criterion() const
init_method_t init_method
Definition: common.h:118
std::vector< node::type > function_set
Definition: common.h:121