Vita
gp/src/evaluator.h
Go to the documentation of this file.
1
13#if !defined(VITA_SRC_EVALUATOR_H)
14#define VITA_SRC_EVALUATOR_H
15
16#include "kernel/evaluator.h"
17#include "kernel/gp/src/detail/evaluator.h"
18
19namespace vita
20{
21
32template<class T, class DAT = dataframe>
33class src_evaluator : public evaluator<T>
34{
35public:
36 static_assert(detail::is_iterable_v<DAT>);
37
38 explicit src_evaluator(DAT &);
39
40protected:
41 DAT *dat_;
42};
43
58template<class T, class ERRF, class DAT = dataframe>
60{
61public:
62 static_assert(std::is_class_v<ERRF>);
63 static_assert(detail::is_iterable_v<DAT>);
64 static_assert(detail::is_error_functor_v<ERRF, DAT>);
65
66 explicit sum_of_errors_evaluator(DAT &);
67
68 fitness_t operator()(const T &) override;
69 fitness_t fast(const T &) override;
70 std::unique_ptr<basic_lambda_f> lambdify(const T &) const override;
71
72private:
73 fitness_t sum_of_errors_impl(const T &, unsigned);
74};
75
87template<class T>
89{
90public:
91 mae_error_functor(const T &);
92
93 double operator()(const dataframe::example &) const;
94
95private:
97};
98
104template<class T, class ERRF = mae_error_functor<T>>
106{
107public:
109};
110
129template<class T>
131{
132public:
133 explicit rmae_error_functor(const T &);
134
135 double operator()(const dataframe::example &) const;
136
137private:
139};
140
146template<class T, class ERRF = rmae_error_functor<T>>
148{
149public:
151};
152
177template<class T>
179{
180public:
181 explicit mse_error_functor(const T &);
182
183 double operator()(const dataframe::example &) const;
184
185private:
187};
188
194template<class T, class ERRF = mse_error_functor<T>>
196{
197public:
199};
200
210template<class T>
212{
213public:
214 explicit count_error_functor(const T &);
215
216 double operator()(const dataframe::example &) const;
217
218private:
220};
221
227template<class T, class ERRF = count_error_functor<T>>
229{
230public:
232};
233
238template<class T>
240{
241public:
243};
244
256template<class T>
258{
259public:
260 explicit dyn_slot_evaluator(dataframe &, unsigned = 10);
261
262 fitness_t operator()(const T &) override;
263 std::unique_ptr<basic_lambda_f> lambdify(const T &) const override;
264
265private:
267 unsigned x_slot_;
268};
269
281template<class T>
283{
284public:
286
287 fitness_t operator()(const T &) override;
288 std::unique_ptr<basic_lambda_f> lambdify(const T &) const override;
289};
290
294template<class T>
296{
297public:
299
300 fitness_t operator()(const T &) override;
301 std::unique_ptr<basic_lambda_f> lambdify(const T &) const override;
302};
303
304#include "kernel/gp/src/evaluator.tcc"
305} // namespace vita
306
307#endif // include guard
Single class evaluator for classification problems.
fitness_t operator()(const T &) override
This class is used to factorized out some code of the classification evaluators.
Number of matches functor.
Evaluator based on the number of matches.
A 2-dimensional labeled data structure with columns of potentially different types.
Definition: dataframe.h:48
Slotted Dynamic Class Boundary Determination.
fitness_t operator()(const T &) override
Calculates the fitness of an individual.
Definition: evaluator.h:54
Gaussian distribution for multiclass object classification.
fitness_t operator()(const T &) override
Mean Absolute Error.
Evaluator based on the mean absolute error.
Mean Squared Error.
Evaluator based on the mean squared error.
Mean of Relative Differences.
Evaluator based on the mean of relative differences.
An evaluator specialized for symbolic regression / classification problems.
An evaluator to minimize the sum of some sort of error.
fitness_t operator()(const T &) override
The main namespace for the project.
Stores a single element (row) of the dataset.
Definition: dataframe.h:194