The function of the data loader is to load both training and testing data, convert it into an object form which can then be consumed by a population of, or individual chromosomes. Currently, there
is only one data loader created, and that loads csv files. However, there is nothing to stop you writing loaders for other formats such as XML or other delimited data files.
To create your own data loader, you must create 6 classes, that implement the interfaces below, and load the data and represent that data in an object format that NEAT4J understands. These are detailed below.
Interface
Explanation
Example
org.neat4j.neat.data.core.DataLoader
This class is responsible for controlling the data load and creating the data objects that are used within NEAT4J.
org.neat4j.neat.data.csv.CSVDataLoader
org.neat4j.neat.data.core.NetworkDataSet
This class is responsible for holding the the immutable input and expected output data sets.
org.neat4j.neat.data.csv.CSVDataSet
org.neat4j.neat.data.core.NetworkOutput
This class holds the expected output values (one for each output node) for a given input set.
org.neat4j.neat.data.csv.CSVExpectedOutput
org.neat4j.neat.data.core.ExpectedOutputSet
This class holds all the expected output values as described in the data file, essentially an array of NetworkOutput objects.
org.neat4j.neat.data.csv.CSVExpectedOutputSet
org.neat4j.neat.data.core.NetworkInput
This class holds the input values (one for each input node) that will be presented to the neural network.
org.neat4j.neat.data.csv.CSVInput
org.neat4j.neat.data.core.NetworkInputSet
This class holds all the input values as described in the data file, essentially an array of NetworkInput objects.