예제 #1
0
        private void tests()
        {
            //using (var writer = new StreamWriter("1hidelayer.txt"))
            //{
            //    Init = new RandomInitializer();
            //    Activ = new BipolarSigmoid((double)2.0);
            //    LearnerRate = 0.3;
            //    LearnerMomentum = 0.0;

            //    string column = "window|hide layer 1|teach error|predic error 30%|10 values|5 |1|predic error 30%|10 values|5 |1";
            //    writer.WriteLine(column);
            //    for (int j = 2; j < 10; j++)
            //    {
            //        for (int i = 1; i < 21; i++)
            //        {

            //            string toFile = j + "|" + i + "|";
            //            Layer = new List<int> { j };
            //            Layer.Add(i);
            //            Layer.Add(1);
            //            var a = this.Owner as MainForm;
            //            if (a != null)
            //            {
            //                a.SetSettings();
            //                toFile += a.Teach(false).ToString("F6") + "|";
            //                toFile += a.Predict(false, true).ToString("F6") + "|";
            //                toFile += a.Predict(false, true, 10).ToString("F6") + "|";
            //                toFile += a.Predict(false, true, 5).ToString("F6") + "|";
            //                toFile += a.Predict(false, true, 1).ToString("F6") + "|";
            //                toFile += a.Predict(false, false).ToString("F6") + "|";
            //                toFile += a.Predict(false, false, 10).ToString("F6") + "|";
            //                toFile += a.Predict(false, false, 5).ToString("F6") + "|";
            //                toFile += a.Predict(false, false, 1).ToString("F6");
            //            }
            //            writer.WriteLine(toFile);

            //        }
            //    }
            //}

            using (var writer = new StreamWriter("2hidelayer100.txt"))
            {
                Init = new OptimalRangeRandomInitializer(Activ = new BipolarSigmoid(2.0));
                LearnerRate = 0.3;
                LearnerMomentum = 0.0;
                IterationsCount = 100;
                string column = "window|hide layer 1|hide layer 2|teach error|predic error 30%|10 values|5 |1|predic error 30%|10 values|5 |1";
                writer.WriteLine(column);
                for (int j = 2; j < 10; j++)
                {
                    for (int i = 1; i < 21; i++)
                    {
                        for (int k = 1; k < 21; k++)
                        {
                            string toFile = j + "|" + i + "|" + k + "|";
                            Layer = new List<int> { j };
                            Layer.Add(i);
                            Layer.Add(k);
                            Layer.Add(1);
                            var a = this.Owner as MainForm;
                            if (a != null)
                            {
                                a.SetSettings();
                                toFile += a.Teach(false).ToString("F6") + "|";
                                toFile += a.Predict(false, true).ToString("F6") + "|";
                                toFile += a.Predict(false, true, 10).ToString("F6") + "|";
                                toFile += a.Predict(false, true, 5).ToString("F6") + "|";
                                toFile += a.Predict(false, true, 1).ToString("F6") + "|";
                                toFile += a.Predict(false, false).ToString("F6") + "|";
                                toFile += a.Predict(false, false, 10).ToString("F6") + "|";
                                toFile += a.Predict(false, false, 5).ToString("F6") + "|";
                                toFile += a.Predict(false, false, 1).ToString("F6");
                            }
                            writer.WriteLine(toFile);
                        }
                    }
                }
            }

            using (var writer = new StreamWriter("2hidelayer200.txt"))
            {
                Init = new OptimalRangeRandomInitializer(Activ = new BipolarSigmoid(2.0));
                LearnerRate = 0.3;
                LearnerMomentum = 0.0;
                IterationsCount = 500;
                string column = "window|hide layer 1|hide layer 2|teach error|predic error 30%|10 values|5 |1|predic error 30%|10 values|5 |1";
                writer.WriteLine(column);
                for (int j = 2; j < 10; j++)
                {
                    for (int i = 1; i < 21; i++)
                    {
                        for (int k = 1; k < 21; k++)
                        {
                            string toFile = j + "|" + i + "|" + k + "|";
                            Layer = new List<int> { j };
                            Layer.Add(i);
                            Layer.Add(k);
                            Layer.Add(1);
                            var a = this.Owner as MainForm;
                            if (a != null)
                            {
                                a.SetSettings();
                                toFile += a.Teach(false).ToString("F6") + "|";
                                toFile += a.Predict(false, true).ToString("F6") + "|";
                                toFile += a.Predict(false, true, 10).ToString("F6") + "|";
                                toFile += a.Predict(false, true, 5).ToString("F6") + "|";
                                toFile += a.Predict(false, true, 1).ToString("F6") + "|";
                                toFile += a.Predict(false, false).ToString("F6") + "|";
                                toFile += a.Predict(false, false, 10).ToString("F6") + "|";
                                toFile += a.Predict(false, false, 5).ToString("F6") + "|";
                                toFile += a.Predict(false, false, 1).ToString("F6");
                            }
                            writer.WriteLine(toFile);
                        }
                    }
                }
            }

            //using (var writer = new StreamWriter("1hidelayerRandomInit.txt"))
            //{
            //    Init = new RandomInitializer();
            //    Activ = new BipolarSigmoid((double)2.0);
            //    LearnerRate = 0.3;
            //    LearnerMomentum = 0.0;
            //    IterationsCount = 500;
            //    writer.WriteLine("func activ -BipolarSigmoid((double)2.0) , init - RandomInitializer()  500 iteracji");
            //    string column = "window|hide layer 1|teach error|predic error 30%|10 values|5 |1|predic error 30%|10 values|5 |1";
            //    writer.WriteLine(column);
            //    for (int j = 2; j < 10; j++)
            //    {
            //        for (int i = 1; i < 21; i++)
            //        {

            //                string toFile = j + "|" + i + "|";
            //                Layer = new List<int> { j };
            //                Layer.Add(i);
            //                Layer.Add(1);
            //                var a = this.Owner as MainForm;
            //                if (a != null)
            //                {
            //                    a.SetSettings();
            //                    toFile += a.Teach(false).ToString("F6") + "|";
            //                    toFile += a.Predict(false, true).ToString("F6") + "|";
            //                    toFile += a.Predict(false, true, 10).ToString("F6") + "|";
            //                    toFile += a.Predict(false, true, 5).ToString("F6") + "|";
            //                    toFile += a.Predict(false, true, 1).ToString("F6") + "|";
            //                    toFile += a.Predict(false, false).ToString("F6") + "|";
            //                    toFile += a.Predict(false, false, 10).ToString("F6") + "|";
            //                    toFile += a.Predict(false, false, 5).ToString("F6") + "|";
            //                    toFile += a.Predict(false, false, 1).ToString("F6");
            //                }
            //                writer.WriteLine(toFile);

            //        }
            //    }
            //}
            //using (var writer = new StreamWriter("1hidelayerConstInit.txt"))
            //{
            //    Init = new ConstInitializer(5);
            //    Activ = new BipolarSigmoid((double)2.0);
            //    LearnerRate = 0.3;
            //    LearnerMomentum = 0.0;
            //    IterationsCount = 500;
            //    string column = "window|hide layer 1|teach error|predic error 30%|10 values|5 |1|predic error 30%|10 values|5 |1";
            //    writer.WriteLine("func activ -BipolarSigmoid((double)2.0) , init - ConstInitializer(5) 500 iteracji");
            //    writer.WriteLine(column);
            //    for (int j = 2; j < 10; j++)
            //    {
            //        for (int i = 1; i < 21; i++)
            //        {
            //            string toFile = j + "|" + i + "|";
            //            Layer = new List<int> { j };
            //            Layer.Add(i);
            //            Layer.Add(1);
            //            var a = this.Owner as MainForm;
            //            if (a != null)
            //            {
            //                a.SetSettings();
            //                toFile += a.Teach(false).ToString("F6") + "|";
            //                toFile += a.Predict(false, true).ToString("F6") + "|";
            //                toFile += a.Predict(false, true, 10).ToString("F6") + "|";
            //                toFile += a.Predict(false, true, 5).ToString("F6") + "|";
            //                toFile += a.Predict(false, true, 1).ToString("F6") + "|";
            //                toFile += a.Predict(false, false).ToString("F6") + "|";
            //                toFile += a.Predict(false, false, 10).ToString("F6") + "|";
            //                toFile += a.Predict(false, false, 5).ToString("F6") + "|";
            //                toFile += a.Predict(false, false, 1).ToString("F6");
            //            }
            //            writer.WriteLine(toFile);

            //        }
            //    }
            //}
            //using (var writer = new StreamWriter("1hidelayerSigmoid.txt"))
            //{
            //    Init = new RandomInitializer();
            //    Activ = new Sigmoid(2.0);
            //    LearnerRate = 0.3;
            //    LearnerMomentum = 0.0;
            //    IterationsCount = 500;
            //    string column = "window|hide layer 1|teach error|predic error 30%|10 values|5 |1|predic error 30%|10 values|5 |1";
            //    writer.WriteLine("func activ -Sigmoid(2.0) , init - RandomInitializer() 500 iteracji");
            //    writer.WriteLine(column);
            //    for (int j = 2; j < 10; j++)
            //    {
            //        for (int i = 1; i < 21; i++)
            //        {
            //            string toFile = j + "|" + i + "|";
            //            Layer = new List<int> { j };
            //            Layer.Add(i);
            //            Layer.Add(1);
            //            var a = this.Owner as MainForm;
            //            if (a != null)
            //            {
            //                a.SetSettings();
            //                toFile += a.Teach(false).ToString("F6") + "|";
            //                toFile += a.Predict(false, true).ToString("F6") + "|";
            //                toFile += a.Predict(false, true, 10).ToString("F6") + "|";
            //                toFile += a.Predict(false, true, 5).ToString("F6") + "|";
            //                toFile += a.Predict(false, true, 1).ToString("F6") + "|";
            //                toFile += a.Predict(false, false).ToString("F6") + "|";
            //                toFile += a.Predict(false, false, 10).ToString("F6") + "|";
            //                toFile += a.Predict(false, false, 5).ToString("F6") + "|";
            //                toFile += a.Predict(false, false, 1).ToString("F6");
            //            }
            //            writer.WriteLine(toFile);

            //        }
            //    }
            //}
            //    using (var writer = new StreamWriter("wskazniki.txt"))
            //    {
            //        Init = new OptimalRangeRandomInitializer(Activ = new BipolarSigmoid(2.0));
            //        ////Activ = new BipolarSigmoid((double)2.0);
            //        LearnerRate = 0.3;
            //        LearnerMomentum = 0.0;
            //        IterationsCount = 100;
            //        writer.WriteLine("indicators|argument|teach error|predic error 30%|10 values|5 |1|predic error 30%|10 values|5 |1");

            //        for (int j = 0; j < 6; j++)
            //        {
            //            for (int i = 0; i < 30; i++)
            //            {
            //                string toFile = "";
            //                switch (j)
            //                {
            //                    case 0:
            //                        Indicator.Clear();
            //                        Indicator.Add(new KeyValuePair<Indi, int>(Indicators.Indicators.SMA, i));
            //                        toFile += "sma|";
            //                        break;
            //                    case 1:
            //                        Indicator.Clear();
            //                        Indicator.Add(new KeyValuePair<Indi, int>(Indicators.Indicators.WMA, i));
            //                        toFile += "wma|";
            //                        break;
            //                    case 2:
            //                        Indicator.Clear();
            //                        Indicator.Add(new KeyValuePair<Indi, int>(Indicators.Indicators.EMA, i));
            //                        toFile += "ema|";
            //                        break;
            //                    case 3:
            //                        Indicator.Clear();
            //                        Indicator.Add(new KeyValuePair<Indi, int>(Indicators.Indicators.ROC, i));
            //                        toFile += "roc|";
            //                        break;
            //                    case 4:
            //                        Indicator.Clear();
            //                        Indicator.Add(new KeyValuePair<Indi, int>(Indicators.Indicators.MACD, i));
            //                        toFile += "macd|";
            //                        break;
            //                    case 5:
            //                        Indicator.Clear();
            //                        Indicator.Add(new KeyValuePair<Indi, int>(Indicators.Indicators.Oscillator, 3 + i));
            //                        toFile += "oscil|";
            //                        break;
            //                }
            //                toFile += i + "|";
            //                Layer = new List<int> { 4 };
            //                Layer.Add(12);
            //                Layer.Add(1);
            //                var a = this.Owner as MainForm;
            //                if (a != null)
            //                {
            //                    a.SetSettings();
            //                    toFile += a.Teach(false).ToString("F6") + "|";
            //                    toFile += a.Predict(false, true).ToString("F6") + "|";
            //                    toFile += a.Predict(false, true, 10).ToString("F6") + "|";
            //                    toFile += a.Predict(false, true, 5).ToString("F6") + "|";
            //                    toFile += a.Predict(false, true, 1).ToString("F6") + "|";
            //                    toFile += a.Predict(false, false).ToString("F6") + "|";
            //                    toFile += a.Predict(false, false, 10).ToString("F6") + "|";
            //                    toFile += a.Predict(false, false, 5).ToString("F6") + "|";
            //                    toFile += a.Predict(false, false, 1).ToString("F6");
            //                }
            //                writer.WriteLine(toFile);
            //            }

            //        }
            //    }
            //    using (var writer = new StreamWriter("parametry.txt"))
            //    {
            //        writer.WriteLine("rate|momentum|alpha|teach error|predic error 30%|10 values|5 |1|predic error 30%|10 values|5 |1");
            //        double alpha = 0;
            //        LearnerRate = 0.0;
            //        LearnerMomentum = 0.0;
            //        IterationsCount = 100;
            //        for (int j = 0; j < 50; j++)
            //        {
            //            Init = new OptimalRangeRandomInitializer(Activ = new BipolarSigmoid(2.0));
            //            //Activ = new BipolarSigmoid((double)2.0);

            //            string toFile = LearnerRate + "|" + LearnerMomentum + "|2.0|";
            //            Layer = new List<int> { 3 };
            //            Layer.Add(12);
            //            Layer.Add(1);
            //            var a = this.Owner as MainForm;
            //            if (a != null)
            //            {
            //                a.SetSettings();
            //                toFile += a.Teach(false).ToString("F6") + "|";
            //                toFile += a.Predict(false, true).ToString("F6") + "|";
            //                toFile += a.Predict(false, true, 10).ToString("F6") + "|";
            //                toFile += a.Predict(false, true, 5).ToString("F6") + "|";
            //                toFile += a.Predict(false, true, 1).ToString("F6") + "|";
            //                toFile += a.Predict(false, false).ToString("F6") + "|";
            //                toFile += a.Predict(false, false, 10).ToString("F6") + "|";
            //                toFile += a.Predict(false, false, 5).ToString("F6") + "|";
            //                toFile += a.Predict(false, false, 1).ToString("F6");
            //            }
            //            writer.WriteLine(toFile);
            //            LearnerRate += 0.05;
            //        }
            //        for (int j = 0; j < 50; j++)
            //        {
            //            Init = new OptimalRangeRandomInitializer(Activ = new BipolarSigmoid(2.0));
            //            //Activ = new BipolarSigmoid((double)2.0);
            //            LearnerRate = 0.3;
            //            string toFile = LearnerRate + "|" + LearnerMomentum + "|2.0|";
            //            Layer = new List<int> { 3 };
            //            Layer.Add(12);
            //            Layer.Add(1);
            //            var a = this.Owner as MainForm;
            //            if (a != null)
            //            {
            //                a.SetSettings();
            //                toFile += a.Teach(false).ToString("F6") + "|";
            //                toFile += a.Predict(false, true).ToString("F6") + "|";
            //                toFile += a.Predict(false, true, 10).ToString("F6") + "|";
            //                toFile += a.Predict(false, true, 5).ToString("F6") + "|";
            //                toFile += a.Predict(false, true, 1).ToString("F6") + "|";
            //                toFile += a.Predict(false, false).ToString("F6") + "|";
            //                toFile += a.Predict(false, false, 10).ToString("F6") + "|";
            //                toFile += a.Predict(false, false, 5).ToString("F6") + "|";
            //                toFile += a.Predict(false, false, 1).ToString("F6");
            //            }
            //            writer.WriteLine(toFile);

            //            LearnerMomentum += 0.05;
            //        }
            //        for (int j = 0; j < 50; j++)
            //        {
            //            Init = new OptimalRangeRandomInitializer(Activ = new BipolarSigmoid(alpha));
            //            //Activ = new BipolarSigmoid((double)2.0);
            //            LearnerRate = 0.3;
            //            LearnerMomentum = 0.0;
            //            string toFile = LearnerRate + "|" + LearnerMomentum + "|" + alpha + "|";
            //            Layer = new List<int> { 3 };
            //            Layer.Add(12);
            //            Layer.Add(1);
            //            var a = this.Owner as MainForm;
            //            if (a != null)
            //            {
            //                a.SetSettings();
            //                toFile += a.Teach(false).ToString("F6") + "|";
            //                toFile += a.Predict(false, true).ToString("F6") + "|";
            //                toFile += a.Predict(false, true, 10).ToString("F6") + "|";
            //                toFile += a.Predict(false, true, 5).ToString("F6") + "|";
            //                toFile += a.Predict(false, true, 1).ToString("F6") + "|";
            //                toFile += a.Predict(false, false).ToString("F6") + "|";
            //                toFile += a.Predict(false, false, 10).ToString("F6") + "|";
            //                toFile += a.Predict(false, false, 5).ToString("F6") + "|";
            //                toFile += a.Predict(false, false, 1).ToString("F6");
            //            }
            //            writer.WriteLine(toFile);
            //            alpha += 0.1;
            //        }
            //    }
        }
예제 #2
0
        private void AssignValue()
        {
            switch (initFuncComboBox.SelectedIndex)
            {
                case (0):
                    Init = new RandomInitializer();
                    break;
                case (1):
                    Init = new OptimalRangeRandomInitializer(Activ = new BipolarSigmoid((double)alphaNumeric.Value));
                    break;
                case (2):
                    Init = new ConstInitializer(double.Parse(constValueTextBox.Text));
                    break;
                default:
                    Init = null;
                    break;
            }

            if (activFuncComboBox.SelectedIndex == 1)
            {
                Activ = new BipolarSigmoid((double)alphaNumeric.Value);
            }
            else
            {
                Activ = new Sigmoid((double)alphaNumeric.Value);
            }

            LearnerRate = (double)rateNumeric.Value;
            LearnerMomentum = (double)momentumNumeric.Value;

            int firstLayer = (int)windowSize.Value;
            firstLayer += AddIndicators();

            Layer = new List<int> { firstLayer };
            if (layerCountCheckBox.Checked)
            {
                for (int i = 0; i < (int)layersNumeric.Value - 2; i++)
                {
                    Layer.Add((int)windowSize.Value * 2);
                }
            }
            else
            {
                for (int i = 0; i < (int)layersNumeric.Value - 2; i++)
                {
                    var neuron = new NeuronCounts { Text = "Layer no. " + i + " count" };
                    DialogResult res = neuron.ShowDialog(this);
                    if (res == DialogResult.OK)
                    {
                        Layer.Add(neuron.Value);
                    }
                }
            }

            Layer.Add(1);

            int iterations;
            if (!int.TryParse(iterationsTextBox.Text, out iterations))
            {
                iterations = 1000;
            }
            IterationsCount = iterations;
        }