# Error function errorFun = metrics.MeanSquareError() # Number of iterations iterations = 1 reservoirSize = 256 # Run Classic ESN classicESNError = 0 print("\n Running Classic ESN Tuner..") for i in range(iterations): predictedOutputData, error = util.tuneTrainPredict(trainingInputData=trainingInputData, trainingOutputData=trainingOutputData, validationOutputData=validationData, initialInputSeedForValidation=initialSeedForValidation, reservoirTopology=topology.ClassicReservoirTopology(size=reservoirSize), testingData=testingData ) classicESNPredicted = minMax.inverse_transform(predictedOutputData) classicESNError += error classicESNError = classicESNError/iterations # Run random ESN Tuner randomESNError = 0 connectivityOptimum = 0.72999999999999998 print("\n Running Random ESN Tuner..") for i in range(iterations): predictedOutputData, error = util.tuneTrainPredict(trainingInputData=trainingInputData, trainingOutputData=trainingOutputData, validationOutputData=validationData,
# Split the data into training, validation and testing trainingData, validationData, testingData = util.splitData(data, 0.5, 0.25, 0.25) nValidation = validationData.shape[0] nTesting = testingData.shape[0] # Form feature vectors for training data trainingInputData, trainingOutputData = util.formFeatureVectors(trainingData) #actualOutputData = minMax.inverse_transform(np.vstack((validationData[:nValidation],testingData[:nTesting])))[:,0] actualOutputData = minMax.inverse_transform(testingData)[:,0] # Initial seed initialSeedForValidation = trainingData[-1] predictedOutputData = util.tuneTrainPredict(trainingInputData=trainingInputData, trainingOutputData=trainingOutputData, validationOutputData=validationData, initialInputSeedForValidation=initialSeedForValidation, horizon=nTesting ) predictedOutputData = minMax.inverse_transform(predictedOutputData) #Plotting of the prediction output and error outputFolderName = "Outputs/Outputs" + datetime.now().strftime("%Y_%m_%d_%H_%M_%S") os.mkdir(outputFolderName) outplot = outputPlot.OutputPlot(outputFolderName + "/Prediction.html", "Mackey-Glass Time Series - Differential Evolution Optimization", "Predicted vs Actual", "Time", "Output") outplot.setXSeries(np.arange(1, nTesting + 1)) outplot.setYSeries('Actual Output', actualOutputData) outplot.setYSeries('Predicted Output', predictedOutputData) outplot.createOutput()
trainingData, validationData, testingData = util.splitData(data, 0.5, 0.25, 0.25) nValidation = validationData.shape[0] nTesting = testingData.shape[0] # Form feature vectors for training data trainingInputData, trainingOutputData = util.formFeatureVectors(trainingData) #actualOutputData = minMax.inverse_transform(np.vstack((validationData[:nValidation],testingData[:nTesting])))[:,0] actualOutputData = minMax.inverse_transform(testingData)[:,0] # Initial seed initialSeedForValidation = trainingData[-1] predictedOutputData, error = util.tuneTrainPredict(trainingInputData=trainingInputData, trainingOutputData=trainingOutputData, validationOutputData=validationData, initialInputSeedForValidation=initialSeedForValidation, testingData=actualOutputData, size=500 ) predictedOutputData = minMax.inverse_transform(predictedOutputData) #Plotting of the prediction output and error outputFolderName = "Outputs/Outputs" + datetime.now().strftime("%Y_%m_%d_%H_%M_%S") os.mkdir(outputFolderName) outplot = outputPlot.OutputPlot(outputFolderName + "/Prediction.html", "Mackey-Glass Time Series - Differential Evolution Optimization", "Predicted vs Actual", "Time", "Output") outplot.setXSeries(np.arange(1, nTesting + 1)) outplot.setYSeries('Actual Output', actualOutputData) outplot.setYSeries('Predicted Output', predictedOutputData) outplot.createOutput()
# Error function errorFun = metrics.MeanSquareError() # Number of iterations iterations = 1 reservoirSize = 256 # Run Classic ESN classicESNError = 0 print("\n Running Classic ESN Tuner..") for i in range(iterations): predictedOutputData, error = util.tuneTrainPredict( trainingInputData=trainingInputData, trainingOutputData=trainingOutputData, validationOutputData=validationData, initialInputSeedForValidation=initialSeedForValidation, reservoirTopology=topology.ClassicReservoirTopology( size=reservoirSize), testingData=testingData) classicESNPredicted = minMax.inverse_transform(predictedOutputData) classicESNError += error classicESNError = classicESNError / iterations # Run random ESN Tuner randomESNError = 0 connectivityOptimum = 0.72999999999999998 print("\n Running Random ESN Tuner..") for i in range(iterations): predictedOutputData, error = util.tuneTrainPredict( trainingInputData=trainingInputData, trainingOutputData=trainingOutputData,