/// <summary>
        /// Generate random training into a training set.
        /// </summary>
        /// <param name="training">The training set to generate into.</param>
        /// <param name="seed">The seed to use.</param>
        /// <param name="count">How much data to generate.</param>
        /// <param name="min">The low random value.</param>
        /// <param name="max">The high random value.</param>
        public static void Generate(IMLDataSetAddable training,
                                    long seed,
                                    int count,
                                    double min, double max)
        {
            var rand
                = new LinearCongruentialGenerator(seed);

            int inputCount = training.InputSize;
            int idealCount = training.IdealSize;

            for (int i = 0; i < count; i++)
            {
                var inputData = new BasicMLData(inputCount);

                for (int j = 0; j < inputCount; j++)
                {
                    inputData[j] = rand.Range(min, max);
                }

                var idealData = new BasicMLData(idealCount);

                for (int j = 0; j < idealCount; j++)
                {
                    idealData[j] = rand.Range(min, max);
                }

                var pair = new BasicMLDataPair(inputData,
                                               idealData);
                training.Add(pair);
            }
        }
 /// <summary>
 /// Construct a new NeuralDataSet based on the parameters specified.
 /// </summary>
 /// <param name="inputCount">The input count.</param>
 /// <param name="idealCount">The output count.</param>
 public NormalizationStorageMLDataSet(int inputCount,
     int idealCount)
 {
     _inputCount = inputCount;
     _idealCount = idealCount;
     _dataset = new BasicMLDataSet();
 }
Exemplo n.º 3
0
 /// <summary>
 /// Construct a new NeuralDataSet based on the parameters specified.
 /// </summary>
 /// <param name="inputCount">The input count.</param>
 /// <param name="idealCount">The output count.</param>
 public NormalizationStorageMLDataSet(int inputCount,
                                      int idealCount)
 {
     _inputCount = inputCount;
     _idealCount = idealCount;
     _dataset    = new BasicMLDataSet();
 }
Exemplo n.º 4
0
        /// <summary>
        /// Copy whatever dataset type is specified into a memory dataset.
        /// </summary>
        /// <param name="set">The dataset to copy.</param>
        public BasicMLSequenceSet(IMLDataSet set)
        {
            _currentSequence = new BasicMLDataSet();
            _sequences.Add(_currentSequence);

            int inputCount = set.InputSize;
            int idealCount = set.IdealSize;

            foreach (IMLDataPair pair in set)
            {
                BasicMLData input = null;
                BasicMLData ideal = null;

                if (inputCount > 0)
                {
                    input = new BasicMLData(inputCount);
                    pair.Input.CopyTo(input.Data, 0, pair.Input.Count);
                }

                if (idealCount > 0)
                {
                    ideal = new BasicMLData(idealCount);
                    pair.Ideal.CopyTo(ideal.Data, 0, pair.Ideal.Count);
                }

                _currentSequence.Add(new BasicMLDataPair(input, ideal));
            }
        }
Exemplo n.º 5
0
 public void StartNewSequence()
 {
     if (_currentSequence.Count > 0)
     {
         _currentSequence = new BasicMLDataSet();
         _sequences.Add(_currentSequence);
     }
 }
 /// <summary>
 /// Construct a normalized neural storage class to hold data.
 /// </summary>
 /// <param name="dataset">The data set to store to. This uses an existing data set.</param>
 public NormalizationStorageMLDataSet(IMLDataSetAddable dataset)
 {
     _dataset = dataset;
     _inputCount = _dataset.InputSize;
     _idealCount = _dataset.IdealSize;
 }
Exemplo n.º 7
0
 /// <summary>
 /// Construct a data set from an already created list. Mostly used to
 /// duplicate this class.
 /// </summary>
 /// <param name="theData">The data to use.</param>
 public BasicMLSequenceSet(IList <IMLDataPair> theData)
 {
     _currentSequence = new BasicMLDataSet(theData);
     _sequences.Add(_currentSequence);
 }
Exemplo n.º 8
0
 /// <summary>
 /// Construct a data set from an input and ideal array.
 /// </summary>
 /// <param name="input">The input into the machine learning method for training.</param>
 /// <param name="ideal">The ideal output for training.</param>
 public BasicMLSequenceSet(double[][] input, double[][] ideal)
 {
     _currentSequence = new BasicMLDataSet(input, ideal);
     _sequences.Add(_currentSequence);
 }
Exemplo n.º 9
0
 public BasicMLSequenceSet(BasicMLSequenceSet other)
 {
     _sequences       = other._sequences;
     _currentSequence = other._currentSequence;
 }
Exemplo n.º 10
0
 /// <summary>
 /// Default constructor.
 /// </summary>
 public BasicMLSequenceSet()
 {
     _currentSequence = new BasicMLDataSet();
     _sequences.Add(_currentSequence);
 }
Exemplo n.º 11
0
 /// <summary>
 /// Construct a normalized neural storage class to hold data.
 /// </summary>
 /// <param name="dataset">The data set to store to. This uses an existing data set.</param>
 public NormalizationStorageMLDataSet(IMLDataSetAddable dataset)
 {
     _dataset    = dataset;
     _inputCount = _dataset.InputSize;
     _idealCount = _dataset.IdealSize;
 }
        /// <summary>
        /// Generate random training into a training set.
        /// </summary>
        /// <param name="training">The training set to generate into.</param>
        /// <param name="seed">The seed to use.</param>
        /// <param name="count">How much data to generate.</param>
        /// <param name="min">The low random value.</param>
        /// <param name="max">The high random value.</param>
        public static void Generate(IMLDataSetAddable training,
            long seed,
            int count,
            double min, double max)
        {
            var rand
                = new LinearCongruentialGenerator(seed);

            int inputCount = training.InputSize;
            int idealCount = training.IdealSize;

            for (int i = 0; i < count; i++)
            {
                var inputData = new BasicMLData(inputCount);

                for (int j = 0; j < inputCount; j++)
                {
                    inputData[j] = rand.Range(min, max);
                }

                var idealData = new BasicMLData(idealCount);

                for (int j = 0; j < idealCount; j++)
                {
                    idealData[j] = rand.Range(min, max);
                }

                var pair = new BasicMLDataPair(inputData,
                                               idealData);
                training.Add(pair);
            }
        }