Ultra 0.9.4
Loading...
Searching...
No Matches
evaluator.h File Reference
#include "kernel/evaluator.h"
#include "kernel/gp/src/dataframe.h"
#include "kernel/gp/src/multi_dataset.h"
#include "kernel/gp/src/oracle.h"
#include <future>
#include <optional>
#include <vector>
#include "kernel/gp/src/evaluator_internal.tcc"
#include "kernel/gp/src/evaluator.tcc"

Go to the source code of this file.

Classes

class  ultra::src::evaluator< D >
class  ultra::src::aggregate_evaluator< P, F, D, A, M >
class  ultra::src::mae_error_functor< P >
class  ultra::src::rmae_error_functor< P >
class  ultra::src::mse_error_functor< P >
class  ultra::src::count_error_functor< P >
class  ultra::src::gaussian_evaluator< P >
class  ultra::src::binary_evaluator< P >

Namespaces

namespace  ultra

Concepts

concept  ultra::src::EvaluationDataset
concept  ultra::src::ExampleEvaluator

Typedefs

template<class D>
using ultra::src::internal::dataset_example_t = typename dataset_example_impl<D>::type
template<Individual P, class F, class D = multi_dataset<dataframe>>
using ultra::src::avg_error_evaluator
template<Individual P, class F, class D = multi_dataset<dataframe>>
using ultra::src::sum_error_evaluator
template<Individual P, class F, class D = multi_dataset<dataframe>>
using ultra::src::avg_score_evaluator
template<Individual P, class F, class D = multi_dataset<dataframe>>
using ultra::src::sum_score_evaluator
template<Individual P>
using ultra::src::mae_evaluator = avg_error_evaluator<P, mae_error_functor<P>>
template<Individual P>
using ultra::src::rmae_evaluator = avg_error_evaluator<P, rmae_error_functor<P>>
template<Individual P>
using ultra::src::mse_evaluator = avg_error_evaluator<P, mse_error_functor<P>>
template<Individual P>
using ultra::src::count_error_evaluator = sum_error_evaluator<P, count_error_functor<P>>

Enumerations

enum class  aggregation_mode { sum , average }
enum class  evaluation_mode { error , score }

Variables

template<class F, class P>
constexpr bool ultra::src::internal::has_regression_predictor_v
 Convenience variable template for has_regression_predictor.
template<class F>
constexpr bool ultra::src::parallel_safe_example_evaluator = false
template<Individual P>
constexpr bool ultra::src::parallel_safe_example_evaluator< mae_error_functor< P > > = true
template<Individual P>
constexpr bool ultra::src::parallel_safe_example_evaluator< rmae_error_functor< P > > = true
template<Individual P>
constexpr bool ultra::src::parallel_safe_example_evaluator< mse_error_functor< P > > = true
template<Individual P>
constexpr bool ultra::src::parallel_safe_example_evaluator< count_error_functor< P > > = true

Detailed Description

Remarks
This file is part of ULTRA.
License

This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/

Typedef Documentation

◆ avg_error_evaluator

template<Individual P, class F, class D = multi_dataset<dataframe>>
using ultra::src::avg_error_evaluator
Initial value:
aggregation_mode::average,
evaluation_mode::error>
Definition gp/src/evaluator.h:120

Evaluator minimising the error over a dataset.

Template Parameters
Pindividual type
Ferror functor type
Ddataset type (defaults to multi_dataset<dataframe>)

This class drives the evolution towards the minimum sum of some sort of error.

Fitness values are normalised so that:

  • higher is better;
  • values are comparable between full and fast evaluation modes.
See also
mse_evaluator, mae_evaluator, rmae_evaluator, count_error_evaluator

◆ avg_score_evaluator

template<Individual P, class F, class D = multi_dataset<dataframe>>
using ultra::src::avg_score_evaluator
Initial value:
aggregation_mode::average,
evaluation_mode::score>

◆ count_error_evaluator

template<Individual P>
using ultra::src::count_error_evaluator = sum_error_evaluator<P, count_error_functor<P>>

Evaluator based on the number of matches.

See also
count_error_functor

◆ mae_evaluator

template<Individual P>
using ultra::src::mae_evaluator = avg_error_evaluator<P, mae_error_functor<P>>

Evaluator based on the mean absolute error.

See also
mae_error_functor

◆ mse_evaluator

template<Individual P>
using ultra::src::mse_evaluator = avg_error_evaluator<P, mse_error_functor<P>>

Evaluator based on the mean squared error.

See also
mse_error_functor

◆ rmae_evaluator

template<Individual P>
using ultra::src::rmae_evaluator = avg_error_evaluator<P, rmae_error_functor<P>>

Evaluator based on the mean of relative differences.

See also
rmae_error_functor

◆ sum_error_evaluator

template<Individual P, class F, class D = multi_dataset<dataframe>>
using ultra::src::sum_error_evaluator
Initial value:
aggregation_mode::sum,
evaluation_mode::error>

◆ sum_score_evaluator

template<Individual P, class F, class D = multi_dataset<dataframe>>
using ultra::src::sum_score_evaluator
Initial value:
aggregation_mode::sum,
evaluation_mode::score>

Variable Documentation

◆ has_regression_predictor_v

template<class F, class P>
bool ultra::src::internal::has_regression_predictor_v
inlineconstexpr
Initial value:
=
has_regression_predictor<F, P>::value

Convenience variable template for has_regression_predictor.

◆ parallel_safe_example_evaluator

template<class F>
bool ultra::src::parallel_safe_example_evaluator = false
inlineconstexpr

Opts an example functor into parallel evaluation.

A specialisation set to true promises that each result depends only on the current example and that separate functor instances may run concurrently.