Loading...
Searching...
No Matches
input_selection.h
Go to the documentation of this file.
1// SPDX-License-Identifier: AGPL-3.0-only
2// Copyright (C) 2026 Artificial Intelligence Techniques, S.L. and Roberto López González
3
4#pragma once
5
8
9namespace opennn
10{
11
12class Training;
13class Network;
14class Dataset;
15
16struct TrainingResult;
18struct Descriptives;
19
21{
22public:
23
31
32 explicit InputSelection(Training* = nullptr);
33 virtual ~InputSelection() = default;
34
35 virtual Index get_minimum_inputs_number() const = 0;
36 virtual Index get_maximum_inputs_number() const = 0;
37
39
40 string get_name() const { return name; }
41
42 virtual void from_JSON(const JsonDocument&) = 0;
43
44 virtual void to_JSON(JsonWriter&) const = 0;
45
46 void save(const filesystem::path&) const;
47 void load(const filesystem::path&);
48
49protected:
50
52
54 Dataset*,
55 const vector<Index>& optimal_input_indices,
56 const vector<Index>& target_indices,
57 const vector<Index>& time_indices) const;
58
59 string name;
60};
61
98
99unique_ptr<InputSelection> create_input_selection(const string& name);
100
101}
Definition dataset.h:48
string get_name() const
Definition input_selection.h:40
virtual Index get_minimum_inputs_number() const =0
virtual ~InputSelection()=default
void load(const filesystem::path &)
void save(const filesystem::path &) const
virtual Index get_maximum_inputs_number() const =0
InputSelection(Training *=nullptr)
virtual void to_JSON(JsonWriter &) const =0
virtual void from_JSON(const JsonDocument &)=0
void configure_network_inputs(Network *, Dataset *, Index) const
string name
Definition input_selection.h:59
void install_optimal_inputs(Network *, Dataset *, const vector< Index > &optimal_input_indices, const vector< Index > &target_indices, const vector< Index > &time_indices) const
virtual InputSelectionResult perform_input_selection()=0
StoppingCondition
Definition input_selection.h:24
@ MaximumInputs
Definition input_selection.h:27
@ ValidationErrorGoal
Definition input_selection.h:26
@ MaximumEpochs
Definition input_selection.h:28
@ MaximumTime
Definition input_selection.h:25
@ MaximumValidationFailures
Definition input_selection.h:29
Definition json.h:75
Definition json.h:92
Definition network.h:87
SelectionAlgorithm(Training *new_training=nullptr)
Definition selection_algorithm.h:17
Definition training.h:13
Definition configuration.h:10
constexpr float MAX
Definition opennn_types.h:309
unique_ptr< InputSelection > create_input_selection(const string &name)
Eigen::Matrix< float, Eigen::Dynamic, 1 > VectorR
Definition opennn_types.h:335
Eigen::Matrix< bool, Eigen::Dynamic, 1 > VectorB
Definition opennn_types.h:337
Definition statistics.h:12
Definition input_selection.h:63
string elapsed_time
Definition input_selection.h:96
InputSelectionResult(const Index=0)
VectorR training_error_history
Definition input_selection.h:76
float optimum_training_error
Definition input_selection.h:84
vector< Index > optimal_input_variables_indices
Definition input_selection.h:90
float optimum_validation_error
Definition input_selection.h:86
VectorB optimal_inputs
Definition input_selection.h:92
VectorR validation_error_history
Definition input_selection.h:78
void resize_history(const Index)
optional< InputSelection::StoppingCondition > stopping_condition
Definition input_selection.h:94
vector< string > optimal_input_variable_names
Definition input_selection.h:88
VectorR mean_training_error_history
Definition input_selection.h:82
VectorR mean_validation_error_history
Definition input_selection.h:80
void set(const Index=0)
Index get_epochs_number() const
Definition input_selection.h:66
VectorR optimal_parameters
Definition input_selection.h:74
Definition training_result.h:20