|
Grail (C++)
1.2.0
A multi-platform, modular, universal engine for embedding advanced AI in games.
|
3 #ifndef GRAIL_DATASET_H
4 #define GRAIL_DATASET_H
7 #include <initializer_list>
11 #include "DatasetSample.hh"
12 #include "../DecisionTree/DecisionNode.h"
13 #include "../DecisionTree/DTConsiderationType.hh"
19 class ISimulatedGameAction;
45 Dataset(std::initializer_list<dt::DTConsiderationType> considerationTypes);
51 Dataset(
const std::vector<dt::DTConsiderationType>& considerationTypes);
54 void AddSample(std::unique_ptr<ISimulatedGameAction> decision, std::initializer_list<float> data);
57 void AddSample(std::unique_ptr<ISimulatedGameAction> decision,
const std::vector<float>& data);
60 void AddSample(std::unique_ptr<DatasetSample> sample);
72 std::vector<std::unique_ptr<DatasetSample>>
Samples;
96 bool CheckDataCompatibility(
const Dataset& other)
const;
98 double CalculateDecisionEntropy()
const;
100 std::unique_ptr<Dataset> SplitByFilter(std::function<
bool(std::vector<float>&)> filter)
const;
101 std::vector<std::unique_ptr<Dataset>> SplitContinuous(
size_t column,
float splitValue)
const;
102 std::vector<std::pair<std::unique_ptr<Dataset>,
float>> SplitNominal(
int column)
const;
104 std::vector<dt::DTConsiderationType> considerationTypes;
112 #endif //GRAIL_DATASET_H
size_t DecisionVariablesCount() const
Gets the number of measures (also know as considerations / decisions / columns in dataset).
Definition: Dataset.cpp:25
std::vector< std::unique_ptr< DatasetSample > > Samples
Data stored in Dataset.
Definition: Dataset.hh:72
void AddSample(std::unique_ptr< ISimulatedGameAction > decision, std::initializer_list< float > data)
Constructs and insert new sample to the dataset. The sample is constructed using the @decision and va...
Definition: Dataset.cpp:40
Class for internal usage. Decision tree node base type.
Definition: DecisionNode.h:24
const std::vector< dt::DTConsiderationType > & GetConsiderationTypes() const
Gets types of the respective consideration, in order of appearance. The types are either NUMERIC or N...
Definition: Dataset.cpp:30
bool CopyFromOther(Dataset &sourceDataset)
Adds samples from another dataset to the dataset this function was called on. It performs a basic che...
Definition: Dataset.cpp:119
Definition: Dataset.hh:23
bool MoveFromOther(Dataset &sourceDataset)
Moves samples from another dataset to the dataset this function was called on. It performs a basic ch...
Definition: Dataset.cpp:105
This class encapsulates the C4.5 Algorithm used to generate a decision tree (see Grail....
Definition: C45Algorithm.h:25
Dataset(std::initializer_list< dt::DTConsiderationType > considerationTypes)
Creates a new dataset.
Definition: Dataset.cpp:15
dt::DTConsiderationType GetConsiderationType(int columnIndex) const
Returns the type of the i-th consideration; i = columnIndex.
Definition: Dataset.cpp:35
double ValidateBinary(dt::DecisionNode< ISimulatedGameAction > &decisionTreeNodeRoot)
Tests a decision tree (represented by the root node) against a dataset. Returns the accuracy of decis...
Definition: Dataset.cpp:161