Ejemplo n.º 1
0
        public static BasicMLDataSet CreateEvaluationSetAndLoad(string @fileName, int startLine, int HowMany, int WindowSize, int outputsize)
        {
            List <double> Opens = QuickCSVUtils.QuickParseCSV(fileName, "Open", startLine, HowMany);
            List <double> High  = QuickCSVUtils.QuickParseCSV(fileName, "High", startLine, HowMany);
            // List<double> Low = QuickCSVUtils.QuickParseCSV(fileName, "Low", startLine, HowMany);
            List <double> Close  = QuickCSVUtils.QuickParseCSV(fileName, "Close", startLine, HowMany);
            List <double> Volume = QuickCSVUtils.QuickParseCSV(fileName, 5, startLine, HowMany);

            double[]           Ranges      = NetworkUtility.CalculateRanges(Opens.ToArray(), Close.ToArray());
            IMLDataPair        aPairInput  = TrainerHelper.ProcessPairs(NetworkUtility.CalculatePercents(Opens.ToArray()), NetworkUtility.CalculatePercents(Opens.ToArray()), WindowSize, outputsize);
            IMLDataPair        aPairInput3 = TrainerHelper.ProcessPairs(NetworkUtility.CalculatePercents(Close.ToArray()), NetworkUtility.CalculatePercents(Close.ToArray()), WindowSize, outputsize);
            IMLDataPair        aPairInput2 = TrainerHelper.ProcessPairs(NetworkUtility.CalculatePercents(High.ToArray()), NetworkUtility.CalculatePercents(High.ToArray()), WindowSize, outputsize);
            IMLDataPair        aPairInput4 = TrainerHelper.ProcessPairs(NetworkUtility.CalculatePercents(Volume.ToArray()), NetworkUtility.CalculatePercents(Volume.ToArray()), WindowSize, outputsize);
            IMLDataPair        aPairInput5 = TrainerHelper.ProcessPairs(NetworkUtility.CalculatePercents(Ranges.ToArray()), NetworkUtility.CalculatePercents(Ranges.ToArray()), WindowSize, outputsize);
            List <IMLDataPair> listData    = new List <IMLDataPair>();

            listData.Add(aPairInput);
            listData.Add(aPairInput2);
            listData.Add(aPairInput3);
            listData.Add(aPairInput4);
            listData.Add((aPairInput5));


            var minitrainning = new BasicMLDataSet(listData);

            return(minitrainning);
        }
Ejemplo n.º 2
0
// ReSharper disable UnusedMember.Local
        private static void CreateEvaluationSet(string @fileName)
// ReSharper restore UnusedMember.Local
        {
            List <double> Opens  = QuickCSVUtils.QuickParseCSV(fileName, "Open", 1200, 1200);
            List <double> High   = QuickCSVUtils.QuickParseCSV(fileName, "High", 1200, 1200);
            List <double> Low    = QuickCSVUtils.QuickParseCSV(fileName, "Low", 1200, 1200);
            List <double> Close  = QuickCSVUtils.QuickParseCSV(fileName, "Close", 1200, 1200);
            List <double> Volume = QuickCSVUtils.QuickParseCSV(fileName, 5, 1200, 1200);


            double[] Ranges = NetworkUtility.CalculateRanges(Opens.ToArray(), Close.ToArray());

            TemporalMLDataSet superTemportal = TrainerHelper.GenerateTrainingWithPercentChangeOnSerie(100, 1, Opens.ToArray(),
                                                                                                      Close.ToArray(), High.ToArray(), Low.ToArray(), Volume.ToArray());

            IMLDataPair        aPairInput  = TrainerHelper.ProcessPairs(NetworkUtility.CalculatePercents(Opens.ToArray()), NetworkUtility.CalculatePercents(Opens.ToArray()), 100, 1);
            IMLDataPair        aPairInput3 = TrainerHelper.ProcessPairs(NetworkUtility.CalculatePercents(Close.ToArray()), NetworkUtility.CalculatePercents(Close.ToArray()), 100, 1);
            IMLDataPair        aPairInput2 = TrainerHelper.ProcessPairs(NetworkUtility.CalculatePercents(High.ToArray()), NetworkUtility.CalculatePercents(High.ToArray()), 100, 1);
            IMLDataPair        aPairInput4 = TrainerHelper.ProcessPairs(NetworkUtility.CalculatePercents(Volume.ToArray()), NetworkUtility.CalculatePercents(Volume.ToArray()), 100, 1);
            IMLDataPair        aPairInput5 = TrainerHelper.ProcessPairs(NetworkUtility.CalculatePercents(Ranges.ToArray()), NetworkUtility.CalculatePercents(Ranges.ToArray()), 100, 1);
            List <IMLDataPair> listData    = new List <IMLDataPair>();

            listData.Add(aPairInput);
            listData.Add(aPairInput2);
            listData.Add(aPairInput3);
            listData.Add(aPairInput4);
            listData.Add((aPairInput5));


            var minitrainning = new BasicMLDataSet(listData);

            var    network           = (BasicNetwork)CreateElmanNetwork(100, 1);
            double normalCorrectRate = EvaluateNetworks(network, minitrainning);

            double temporalErrorRate = EvaluateNetworks(network, superTemportal);

            Console.WriteLine(@"Percent Correct with normal Data Set:" + normalCorrectRate + @" Percent Correct with temporal Dataset:" +
                              temporalErrorRate);



            Console.WriteLine(@"Paused , Press a key to continue to evaluation");
            Console.ReadKey();
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Trains a random trainer.
        /// </summary>
        /// <param name="inputs">The inputs.</param>
        /// <param name="predictWindow">The predict window.</param>
        public static double RandomTrainerMethod(int inputs, int predictWindow)
        {
            double[] firstinput   = MakeInputs(inputs);
            double[] SecondInput  = MakeInputs(inputs);
            double[] ThirdInputs  = MakeInputs(inputs);
            double[] FourthInputs = MakeInputs(inputs);
            double[] inp5         = MakeInputs(inputs);
            double[] inp6         = MakeInputs(inputs);

            var            pair     = TrainerHelper.ProcessPairs(firstinput, firstinput, inputs, predictWindow);
            var            pair2    = TrainerHelper.ProcessPairs(SecondInput, firstinput, inputs, predictWindow);
            var            pair3    = TrainerHelper.ProcessPairs(ThirdInputs, firstinput, inputs, predictWindow);
            var            pair4    = TrainerHelper.ProcessPairs(FourthInputs, firstinput, inputs, predictWindow);
            var            pair5    = TrainerHelper.ProcessPairs(inp5, firstinput, inputs, predictWindow);
            var            pair6    = TrainerHelper.ProcessPairs(inp6, firstinput, inputs, predictWindow);
            BasicMLDataSet SuperSet = new BasicMLDataSet();

            SuperSet.Add(pair);
            SuperSet.Add(pair2);

            SuperSet.Add(pair3);
            SuperSet.Add(pair4);
            var network = new BasicNetwork();

            network.AddLayer(new BasicLayer(new ActivationTANH(), true, SuperSet.InputSize));
            network.AddLayer(new BasicLayer(new ActivationTANH(), false, 20));
            network.AddLayer(new BasicLayer(new ActivationTANH(), true, 0));
            network.AddLayer(new BasicLayer(new ActivationLinear(), true, predictWindow));

            //var layer = new BasicLayer(new ActivationTANH(), true, SuperSet.InputSize);
            //layer.Network = network;


            network.Structure.FinalizeStructure();
            network.Reset();


            // var network = (BasicNetwork)CreateEval.CreateElmanNetwork(SuperSet.InputSize, SuperSet.IdealSize);
            return(CreateEval.TrainNetworks(network, SuperSet));
            //Lets create an evaluation.
            //Console.WriteLine(@"Last error rate on random trainer:" + error);
        }