//Methods /// <summary> /// Runs the example code. /// </summary> public void Run() { //Create StateMachine configuration //Simplified input configuration InputEncoderSettings inputCfg = StateMachineDesigner.CreateInputCfg(new FeedingContinuousSettings(FeedingContinuousSettings.AutoBootCyclesNum), new InputSpikesCoderSettings(), true, new ExternalFieldSettings("High", new RealFeatureFilterSettings()), new ExternalFieldSettings("Low", new RealFeatureFilterSettings()), new ExternalFieldSettings("Adj Close", new RealFeatureFilterSettings()) ); //Simplified readout layer configuration ReadoutLayerSettings readoutCfg = StateMachineDesigner.CreateForecastReadoutCfg(new CrossvalidationSettings(0.1d, 0, 1), StateMachineDesigner.CreateSingleLayerFFNetCfg(new AFAnalogIdentitySettings(), 2, 1000), 1, "High", "Low" ); //Create designer instance StateMachineDesigner smd = new StateMachineDesigner(inputCfg, readoutCfg); //Create pure ESN fashioned StateMachine configuration StateMachineSettings stateMachineCfg = smd.CreatePureESNCfg(250, //Total size of the reservoir (number of hidden neurons within the reservoir). 2.5, //Maximum stimulation strength through hidden neuron's input synapses. 1d, //Connection density of an input field. 1 means that each input field will be synaptically connected to all neurons. 0, //Maximum delay on an input synapse. 0 means no delay. 0.1d, //Interconnection density. 0.1 means that each hidden neuron will be synaptically internally connected to 10% of other hidden neurons. 0, //Maximum delay on an internal synapse. 0 means no delay. 0d, //Maximum absolute value of the hidden neuron bias. 0 means no bias. 0d, //Maximum retainment on an hidden neuron. 0 means no retainment. new PredictorsProviderSettings(new PredictorActivationSettings(), new PredictorActivationPowerSettings(2d, true), new PredictorFiringTraceSettings(0.05, 30) ) ); //Display StateMachine xml configuration string xmlConfig = stateMachineCfg.GetXml(true).ToString(); _log.Write("StateMachine configuration xml:"); _log.Write("-------------------------------"); _log.Write(xmlConfig); _log.Write(string.Empty); _log.Write("Press Enter to continue (StateMachine training)..."); _log.Write(string.Empty); Console.ReadLine(); //Instantiation and training _log.Write("StateMachine training:"); _log.Write("----------------------"); _log.Write(string.Empty); //StateMachine instance StateMachine stateMachine = new StateMachine(stateMachineCfg); //StateMachine training TrainStateMachine(stateMachine, "./Data/TTOO.csv", out double[] predictionInputVector); //Forecasting double[] outputVector = stateMachine.Compute(predictionInputVector, out ReadoutLayer.ReadoutData readoutData); _log.Write(" Forecasted next High and Low TTOO prices (real prices were High = 3.61$ and Low=3.10$):", false); _log.Write(stateMachine.RL.GetForecastReport(readoutData.NatDataVector, 6)); _log.Write(string.Empty); return; }
//Methods /// <summary> /// Runs the example code. /// </summary> public void Run() { //Create StateMachine configuration //Simplified input configuration InputEncoderSettings inputCfg = StateMachineDesigner.CreateInputCfg(new FeedingPatternedSettings(1, NeuralPreprocessor.BidirProcessing.WithReset, RCNet.Neural.Data.InputPattern.VariablesSchema.Groupped), new InputSpikesCoderSettings(), false, new ExternalFieldSettings("coord_abcissa", new RealFeatureFilterSettings()), new ExternalFieldSettings("coord_ordinate", new RealFeatureFilterSettings()) ); //Simplified readout layer configuration ReadoutLayerSettings readoutCfg = StateMachineDesigner.CreateClassificationReadoutCfg(new CrossvalidationSettings(0.0825d, CrossvalidationSettings.AutoFolds, 1), StateMachineDesigner.CreateSingleLayerFFNetCfg(new AFAnalogIdentitySettings(), 5, 400), 1, "Hand movement", "curved swing", "horizontal swing", "vertical swing", "anti-clockwise arc", "clockwise arc", "circle", "horizontal straight-line", "vertical straight-line", "horizontal zigzag", "vertical zigzag", "horizontal wavy", "vertical wavy", "face-up curve", "face-down curve", "tremble" ); //Create designer instance StateMachineDesigner smd = new StateMachineDesigner(inputCfg, readoutCfg); //Create pure ESN fashioned StateMachine configuration StateMachineSettings stateMachineCfg = smd.CreatePureESNCfg(150, //Size StateMachineDesigner.DefaultAnalogMaxInputStrength, //Max input strength 0.25d, //Input connection density 5, //Max input delay 0.1d, //Interconnection density 0, //Max internal delay 0, //Max absolute value of bias 0, //Max retainment strength new PredictorsProviderSettings(new PredictorFiringTraceSettings(0.05, 45)) ); //Display StateMachine xml configuration string xmlConfig = stateMachineCfg.GetXml(true).ToString(); _log.Write("StateMachine configuration xml:"); _log.Write("-------------------------------"); _log.Write(xmlConfig); _log.Write(string.Empty); _log.Write("Press Enter to continue (StateMachine training and verification)..."); _log.Write(string.Empty); Console.ReadLine(); //Instantiation and training _log.Write("StateMachine training:"); _log.Write("----------------------"); _log.Write(string.Empty); //StateMachine instance StateMachine stateMachine = new StateMachine(stateMachineCfg); //StateMachine training TrainStateMachine(stateMachine, "./Data/LibrasMovement_train.csv", out _); _log.Write(string.Empty); //StateMachine verification _log.Write("StateMachine verification:"); _log.Write("--------------------------"); _log.Write(string.Empty); VerifyStateMachine(stateMachine, "./Data/LibrasMovement_verify.csv", null, out _); _log.Write(string.Empty); return; }