public void ActivationTemporal() { var temporal = new TemporalMLDataSet(5, 1); temporal.AddDescription(new TemporalDataDescription(new ActivationTANH(), TemporalDataDescription.Type.Raw, true, false)); temporal.AddDescription(new TemporalDataDescription(new ActivationTANH(), TemporalDataDescription.Type.Raw, true, false)); temporal.AddDescription(new TemporalDataDescription(new ActivationTANH(), TemporalDataDescription.Type.Raw, false, true)); for (int i = 0; i < 10; i++) { TemporalPoint tp = temporal.CreatePoint(i); tp[0] = 1.0 + (i*3); tp[1] = 2.0 + (i*3); tp[2] = 3.0 + (i*3); } temporal.Generate(); IEnumerator<IMLDataPair> itr = temporal.GetEnumerator(); // set 0 itr.MoveNext(); IMLDataPair pair = itr.Current; Assert.AreEqual(10, pair.Input.Count); Assert.AreEqual(1, pair.Ideal.Count); Assert.AreEqual(0.75, Math.Round(pair.Input[0]*4.0)/4.0); Assert.AreEqual(1.0, Math.Round(pair.Input[1]*4.0)/4.0); Assert.AreEqual(1.0, Math.Round(pair.Input[2]*4.0)/4.0); Assert.AreEqual(1.0, Math.Round(pair.Input[3]*4.0)/4.0); }
public void ActivationTemporal() { var temporal = new TemporalMLDataSet(5, 1); temporal.AddDescription(new TemporalDataDescription(new ActivationTANH(), TemporalDataDescription.Type.Raw, true, false)); temporal.AddDescription(new TemporalDataDescription(new ActivationTANH(), TemporalDataDescription.Type.Raw, true, false)); temporal.AddDescription(new TemporalDataDescription(new ActivationTANH(), TemporalDataDescription.Type.Raw, false, true)); for (int i = 0; i < 10; i++) { TemporalPoint tp = temporal.CreatePoint(i); tp[0] = 1.0 + (i * 3); tp[1] = 2.0 + (i * 3); tp[2] = 3.0 + (i * 3); } temporal.Generate(); IEnumerator <IMLDataPair> itr = temporal.GetEnumerator(); // set 0 itr.MoveNext(); IMLDataPair pair = itr.Current; Assert.AreEqual(10, pair.Input.Count); Assert.AreEqual(1, pair.Ideal.Count); Assert.AreEqual(0.75, Math.Round(pair.Input[0] * 4.0) / 4.0); Assert.AreEqual(1.0, Math.Round(pair.Input[1] * 4.0) / 4.0); Assert.AreEqual(1.0, Math.Round(pair.Input[2] * 4.0) / 4.0); Assert.AreEqual(1.0, Math.Round(pair.Input[3] * 4.0) / 4.0); }
public void HiLowTemporal() { var temporal = new TemporalMLDataSet(5, 1); temporal.AddDescription(new TemporalDataDescription(TemporalDataDescription.Type.Raw, true, false)); temporal.AddDescription(new TemporalDataDescription(TemporalDataDescription.Type.Raw, true, false)); temporal.AddDescription(new TemporalDataDescription(TemporalDataDescription.Type.Raw, false, true)); for (int i = 0; i < 10; i++) { TemporalPoint tp = temporal.CreatePoint(i); tp[0] = 1.0 + (i * 3); tp[1] = 2.0 + (i * 3); tp[2] = 3.0 + (i * 3); } temporal.HighSequence = 8; temporal.LowSequence = 2; temporal.Generate(); Assert.AreEqual(10, temporal.InputNeuronCount); Assert.AreEqual(1, temporal.OutputNeuronCount); Assert.AreEqual(7, temporal.CalculateActualSetSize()); IEnumerator <IMLDataPair> itr = temporal.GetEnumerator(); itr.MoveNext(); // set 0 IMLDataPair pair = itr.Current; Assert.AreEqual(10, pair.Input.Count); Assert.AreEqual(1, pair.Ideal.Count); Assert.AreEqual(7.0, pair.Input[0]); Assert.AreEqual(8.0, pair.Input[1]); Assert.AreEqual(10.0, pair.Input[2]); Assert.AreEqual(11.0, pair.Input[3]); Assert.AreEqual(13.0, pair.Input[4]); Assert.AreEqual(14.0, pair.Input[5]); Assert.AreEqual(16.0, pair.Input[6]); Assert.AreEqual(17.0, pair.Input[7]); Assert.AreEqual(19.0, pair.Input[8]); Assert.AreEqual(20.0, pair.Input[9]); Assert.AreEqual(24.0, pair.Ideal[0]); }
public void FormatTemporal() { var temporal = new TemporalMLDataSet(5, 1); temporal.AddDescription(new TemporalDataDescription(TemporalDataDescription.Type.DeltaChange, true, false)); temporal.AddDescription(new TemporalDataDescription(TemporalDataDescription.Type.PercentChange, true, false)); temporal.AddDescription(new TemporalDataDescription(TemporalDataDescription.Type.Raw, false, true)); for (int i = 0; i < 10; i++) { TemporalPoint tp = temporal.CreatePoint(i); tp[0] = 1.0 + (i * 3); tp[1] = 2.0 + (i * 3); tp[2] = 3.0 + (i * 3); } temporal.Generate(); IEnumerator <IMLDataPair> itr = temporal.GetEnumerator(); itr.MoveNext(); // set 0 IMLDataPair pair = itr.Current; Assert.AreEqual(10, pair.Input.Count); Assert.AreEqual(1, pair.Ideal.Count); Assert.AreEqual(3.0, pair.Input[0]); Assert.AreEqual(1.5, pair.Input[1]); Assert.AreEqual(3.0, pair.Input[2]); Assert.AreEqual(0.6, pair.Input[3]); Assert.AreEqual(3.0, pair.Input[4]); Assert.AreEqual(0.375, pair.Input[5]); Assert.AreEqual(3.0, pair.Input[6]); Assert.AreEqual(0.25, Math.Round(pair.Input[7] * 4.0) / 4.0); Assert.AreEqual(3.0, pair.Input[8]); Assert.AreEqual(0.25, Math.Round(pair.Input[9] * 4.0) / 4.0); Assert.AreEqual(18.0, pair.Ideal[0]); }
/// <summary> /// Generates a temporal data set with a given double serie. /// uses Type percent change. /// </summary> /// <param name="inputserie">The inputserie.</param> /// <param name="windowsize">The windowsize.</param> /// <param name="predictsize">The predictsize.</param> /// <returns></returns> public static TemporalMLDataSet GenerateTrainingWithPercentChangeOnSerie(double[] inputserie, int windowsize, int predictsize) { var result = new TemporalMLDataSet(windowsize, predictsize); var desc = new TemporalDataDescription(TemporalDataDescription.Type.PercentChange, true, true); result.AddDescription(desc); for (int index = 0; index < inputserie.Length - 1; index++) { var point = new TemporalPoint(1) {Sequence = index}; point.Data[0] = inputserie[index]; result.Points.Add(point); } result.Generate(); return result; }
public IMLDataSet GenerateTraining() { var result = new TemporalMLDataSet(WindowSize, 1); var desc = new TemporalDataDescription(TemporalDataDescription.Type.Raw, true, true); result.AddDescription(desc); for (int year = TrainStart; year < TrainEnd; year++) { var point = new TemporalPoint(1) { Sequence = year }; point.Data[0] = _normalizedSunspots[year]; result.Points.Add(point); } result.Generate(); return result; }
/// <summary> /// Generates a temporal data set with a given double serie or a any number of double series , making your inputs. /// uses Type percent change. /// </summary> /// <param name="windowsize">The windowsize.</param> /// <param name="predictsize">The predictsize.</param> /// <param name="inputserie">The inputserie.</param> /// <returns></returns> public static TemporalMLDataSet GenerateTrainingWithPercentChangeOnSerie(int windowsize, int predictsize, params double[][] inputserie) { TemporalMLDataSet result = new TemporalMLDataSet(windowsize, predictsize); TemporalDataDescription desc = new TemporalDataDescription(TemporalDataDescription.Type.PercentChange, true, true); result.AddDescription(desc); foreach (double[] t in inputserie) { for (int j = 0; j < t.Length; j++) { TemporalPoint point = new TemporalPoint(1); point.Sequence = j; point.Data[0] = t[j]; result.Points.Add(point); } result.Generate(); return result; } return null; }
public void BasicTemporal() { var temporal = new TemporalMLDataSet(5, 1); temporal.AddDescription(new TemporalDataDescription(TemporalDataDescription.Type.Raw, true, false)); temporal.AddDescription(new TemporalDataDescription(TemporalDataDescription.Type.Raw, true, false)); temporal.AddDescription(new TemporalDataDescription(TemporalDataDescription.Type.Raw, false, true)); for (int i = 0; i < 10; i++) { TemporalPoint tp = temporal.CreatePoint(i); tp[0] = 1.0 + (i*3); tp[1] = 2.0 + (i*3); tp[2] = 3.0 + (i*3); } temporal.Generate(); Assert.AreEqual(10, temporal.InputNeuronCount); Assert.AreEqual(1, temporal.OutputNeuronCount); Assert.AreEqual(10, temporal.CalculateActualSetSize()); IEnumerator<IMLDataPair> itr = temporal.GetEnumerator(); itr.MoveNext(); // set 0 IMLDataPair pair = itr.Current; Assert.AreEqual(10, pair.Input.Count); Assert.AreEqual(1, pair.Ideal.Count); Assert.AreEqual(1.0, pair.Input[0]); Assert.AreEqual(2.0, pair.Input[1]); Assert.AreEqual(4.0, pair.Input[2]); Assert.AreEqual(5.0, pair.Input[3]); Assert.AreEqual(7.0, pair.Input[4]); Assert.AreEqual(8.0, pair.Input[5]); Assert.AreEqual(10.0, pair.Input[6]); Assert.AreEqual(11.0, pair.Input[7]); Assert.AreEqual(13.0, pair.Input[8]); Assert.AreEqual(14.0, pair.Input[9]); Assert.AreEqual(18.0, pair.Ideal[0]); // set 1 itr.MoveNext(); pair = itr.Current; Assert.AreEqual(10, pair.Input.Count); Assert.AreEqual(1, pair.Ideal.Count); Assert.AreEqual(4.0, pair.Input[0]); Assert.AreEqual(5.0, pair.Input[1]); Assert.AreEqual(7.0, pair.Input[2]); Assert.AreEqual(8.0, pair.Input[3]); Assert.AreEqual(10.0, pair.Input[4]); Assert.AreEqual(11.0, pair.Input[5]); Assert.AreEqual(13.0, pair.Input[6]); Assert.AreEqual(14.0, pair.Input[7]); Assert.AreEqual(16.0, pair.Input[8]); Assert.AreEqual(17.0, pair.Input[9]); Assert.AreEqual(21.0, pair.Ideal[0]); // set 2 itr.MoveNext(); pair = itr.Current; Assert.AreEqual(10, pair.Input.Count); Assert.AreEqual(1, pair.Ideal.Count); Assert.AreEqual(7.0, pair.Input[0]); Assert.AreEqual(8.0, pair.Input[1]); Assert.AreEqual(10.0, pair.Input[2]); Assert.AreEqual(11.0, pair.Input[3]); Assert.AreEqual(13.0, pair.Input[4]); Assert.AreEqual(14.0, pair.Input[5]); Assert.AreEqual(16.0, pair.Input[6]); Assert.AreEqual(17.0, pair.Input[7]); Assert.AreEqual(19.0, pair.Input[8]); Assert.AreEqual(20.0, pair.Input[9]); Assert.AreEqual(24.0, pair.Ideal[0]); // set 3 itr.MoveNext(); pair = itr.Current; Assert.AreEqual(10, pair.Input.Count); Assert.AreEqual(1, pair.Ideal.Count); Assert.AreEqual(10.0, pair.Input[0]); Assert.AreEqual(11.0, pair.Input[1]); Assert.AreEqual(13.0, pair.Input[2]); Assert.AreEqual(14.0, pair.Input[3]); Assert.AreEqual(16.0, pair.Input[4]); Assert.AreEqual(17.0, pair.Input[5]); Assert.AreEqual(19.0, pair.Input[6]); Assert.AreEqual(20.0, pair.Input[7]); Assert.AreEqual(22.0, pair.Input[8]); Assert.AreEqual(23.0, pair.Input[9]); Assert.AreEqual(27.0, pair.Ideal[0]); }
public void FormatTemporal() { var temporal = new TemporalMLDataSet(5, 1); temporal.AddDescription(new TemporalDataDescription(TemporalDataDescription.Type.DeltaChange, true, false)); temporal.AddDescription(new TemporalDataDescription(TemporalDataDescription.Type.PercentChange, true, false)); temporal.AddDescription(new TemporalDataDescription(TemporalDataDescription.Type.Raw, false, true)); for (int i = 0; i < 10; i++) { TemporalPoint tp = temporal.CreatePoint(i); tp[0] = 1.0 + (i*3); tp[1] = 2.0 + (i*3); tp[2] = 3.0 + (i*3); } temporal.Generate(); IEnumerator<IMLDataPair> itr = temporal.GetEnumerator(); itr.MoveNext(); // set 0 IMLDataPair pair = itr.Current; Assert.AreEqual(10, pair.Input.Count); Assert.AreEqual(1, pair.Ideal.Count); Assert.AreEqual(3.0, pair.Input[0]); Assert.AreEqual(1.5, pair.Input[1]); Assert.AreEqual(3.0, pair.Input[2]); Assert.AreEqual(0.6, pair.Input[3]); Assert.AreEqual(3.0, pair.Input[4]); Assert.AreEqual(0.375, pair.Input[5]); Assert.AreEqual(3.0, pair.Input[6]); Assert.AreEqual(0.25, Math.Round(pair.Input[7]*4.0)/4.0); Assert.AreEqual(3.0, pair.Input[8]); Assert.AreEqual(0.25, Math.Round(pair.Input[9]*4.0)/4.0); Assert.AreEqual(18.0, pair.Ideal[0]); }
public void HiLowTemporal() { var temporal = new TemporalMLDataSet(5, 1); temporal.AddDescription(new TemporalDataDescription(TemporalDataDescription.Type.Raw, true, false)); temporal.AddDescription(new TemporalDataDescription(TemporalDataDescription.Type.Raw, true, false)); temporal.AddDescription(new TemporalDataDescription(TemporalDataDescription.Type.Raw, false, true)); for (int i = 0; i < 10; i++) { TemporalPoint tp = temporal.CreatePoint(i); tp.Data[0] = 1.0 + (i*3); tp.Data[1] = 2.0 + (i*3); tp.Data[2] = 3.0 + (i*3); } temporal.HighSequence = 8; temporal.LowSequence = 2; temporal.Generate(); Assert.AreEqual(10, temporal.InputNeuronCount); Assert.AreEqual(1, temporal.OutputNeuronCount); Assert.AreEqual(7, temporal.CalculateActualSetSize()); IEnumerator<IMLDataPair> itr = temporal.GetEnumerator(); itr.MoveNext(); // set 0 IMLDataPair pair = itr.Current; Assert.AreEqual(10, pair.Input.Count); Assert.AreEqual(1, pair.Ideal.Count); Assert.AreEqual(7.0, pair.Input.Data[0]); Assert.AreEqual(8.0, pair.Input.Data[1]); Assert.AreEqual(10.0, pair.Input.Data[2]); Assert.AreEqual(11.0, pair.Input.Data[3]); Assert.AreEqual(13.0, pair.Input.Data[4]); Assert.AreEqual(14.0, pair.Input.Data[5]); Assert.AreEqual(16.0, pair.Input.Data[6]); Assert.AreEqual(17.0, pair.Input.Data[7]); Assert.AreEqual(19.0, pair.Input.Data[8]); Assert.AreEqual(20.0, pair.Input.Data[9]); Assert.AreEqual(24.0, pair.Ideal.Data[0]); }
public IMLDataSet GenerateTraining() { var result = new TemporalMLDataSet(WindowSize, 1); var desc = new TemporalDataDescription(TemporalDataDescription.Type.Raw, true, true); result.AddDescription(desc); for (int i = WindowSize; i < _normalizedTrainingData.Length; i++) { var point = new TemporalPoint(1) {Sequence = i}; point.Data[0] = _normalizedTrainingData[i]; result.Points.Add(point); } result.Generate(); return result; }
public void BasicTemporal() { var temporal = new TemporalMLDataSet(5, 1); temporal.AddDescription(new TemporalDataDescription(TemporalDataDescription.Type.Raw, true, false)); temporal.AddDescription(new TemporalDataDescription(TemporalDataDescription.Type.Raw, true, false)); temporal.AddDescription(new TemporalDataDescription(TemporalDataDescription.Type.Raw, false, true)); for (int i = 0; i < 10; i++) { TemporalPoint tp = temporal.CreatePoint(i); tp.Data[0] = 1.0 + (i * 3); tp.Data[1] = 2.0 + (i * 3); tp.Data[2] = 3.0 + (i * 3); } temporal.Generate(); Assert.AreEqual(10, temporal.InputNeuronCount); Assert.AreEqual(1, temporal.OutputNeuronCount); Assert.AreEqual(10, temporal.CalculateActualSetSize()); IEnumerator <IMLDataPair> itr = temporal.GetEnumerator(); itr.MoveNext(); // set 0 IMLDataPair pair = itr.Current; Assert.AreEqual(10, pair.Input.Count); Assert.AreEqual(1, pair.Ideal.Count); Assert.AreEqual(1.0, pair.Input.Data[0]); Assert.AreEqual(2.0, pair.Input.Data[1]); Assert.AreEqual(4.0, pair.Input.Data[2]); Assert.AreEqual(5.0, pair.Input.Data[3]); Assert.AreEqual(7.0, pair.Input.Data[4]); Assert.AreEqual(8.0, pair.Input.Data[5]); Assert.AreEqual(10.0, pair.Input.Data[6]); Assert.AreEqual(11.0, pair.Input.Data[7]); Assert.AreEqual(13.0, pair.Input.Data[8]); Assert.AreEqual(14.0, pair.Input.Data[9]); Assert.AreEqual(18.0, pair.Ideal[0]); // set 1 itr.MoveNext(); pair = itr.Current; Assert.AreEqual(10, pair.Input.Count); Assert.AreEqual(1, pair.Ideal.Count); Assert.AreEqual(4.0, pair.Input.Data[0]); Assert.AreEqual(5.0, pair.Input.Data[1]); Assert.AreEqual(7.0, pair.Input.Data[2]); Assert.AreEqual(8.0, pair.Input.Data[3]); Assert.AreEqual(10.0, pair.Input.Data[4]); Assert.AreEqual(11.0, pair.Input.Data[5]); Assert.AreEqual(13.0, pair.Input.Data[6]); Assert.AreEqual(14.0, pair.Input.Data[7]); Assert.AreEqual(16.0, pair.Input.Data[8]); Assert.AreEqual(17.0, pair.Input.Data[9]); Assert.AreEqual(21.0, pair.Ideal.Data[0]); // set 2 itr.MoveNext(); pair = itr.Current; Assert.AreEqual(10, pair.Input.Count); Assert.AreEqual(1, pair.Ideal.Count); Assert.AreEqual(7.0, pair.Input.Data[0]); Assert.AreEqual(8.0, pair.Input.Data[1]); Assert.AreEqual(10.0, pair.Input.Data[2]); Assert.AreEqual(11.0, pair.Input.Data[3]); Assert.AreEqual(13.0, pair.Input.Data[4]); Assert.AreEqual(14.0, pair.Input.Data[5]); Assert.AreEqual(16.0, pair.Input.Data[6]); Assert.AreEqual(17.0, pair.Input.Data[7]); Assert.AreEqual(19.0, pair.Input.Data[8]); Assert.AreEqual(20.0, pair.Input.Data[9]); Assert.AreEqual(24.0, pair.Ideal.Data[0]); // set 3 itr.MoveNext(); pair = itr.Current; Assert.AreEqual(10, pair.Input.Count); Assert.AreEqual(1, pair.Ideal.Count); Assert.AreEqual(10.0, pair.Input.Data[0]); Assert.AreEqual(11.0, pair.Input.Data[1]); Assert.AreEqual(13.0, pair.Input.Data[2]); Assert.AreEqual(14.0, pair.Input.Data[3]); Assert.AreEqual(16.0, pair.Input.Data[4]); Assert.AreEqual(17.0, pair.Input.Data[5]); Assert.AreEqual(19.0, pair.Input.Data[6]); Assert.AreEqual(20.0, pair.Input.Data[7]); Assert.AreEqual(22.0, pair.Input.Data[8]); Assert.AreEqual(23.0, pair.Input.Data[9]); Assert.AreEqual(27.0, pair.Ideal.Data[0]); }