Exemple #1
0
 private void AutoEvent(object sender, EventArgs e)
 {
     if (Perceptron.Finish())
     {
         timer.Stop(); Foreground = System.Windows.Media.Brushes.Green; Learn = "Learned"; return;
     }
     OneStep();
 }
Exemple #2
0
 private void OneStep()
 {
     TreningData = new ObservableCollection <Item>(Perceptron.OneStep());
     Weight      = new ObservableCollection <Weight>(Perceptron.GetWeight());
     Iteration++;
     UpdateLine();
     SelectedItem = Perceptron.actual;
     Actualize();
 }
Exemple #3
0
 private bool CanStep()
 {
     if (!Perceptron.Finish())
     {
         return(true);
     }
     else
     {
         Learn      = "Learned";
         Foreground = System.Windows.Media.Brushes.Green;
         return(false);
     }
 }
Exemple #4
0
 private void Fast()
 {
     while (!Perceptron.Finish())
     {
         OneStep();
         if (Iteration > 500)
         {
             MessageBox.Show("Stagnation", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information); return;
         }
     }
     Foreground = System.Windows.Media.Brushes.Green;
     Learn      = "Learned";
 }
Exemple #5
0
        private void UpdateLine()
        {
            Controled.Clear();
            Controled.AddRange(Perceptron.GetControledItem());
            Lines = Perceptron.GetLine();
            LineSeries line = new LineSeries()
            {
                Color = OxyColors.Green, StrokeThickness = 2
            };

            foreach (var l in Lines)
            {
                line.Points.Add(new DataPoint(l.X, l.Y));
            }
            Model.Series[model.Series.Count() - 1] = line;
            Model.InvalidatePlot(true);
        }
Exemple #6
0
        private void Load()
        {
            #region TreningData

            Model.Series.Add(new LineSeries()
            {
                Title = "Trening", MarkerSize = 11, MarkerType = MarkerType.Circle, LineStyle = LineStyle.None, MarkerFill = OxyColors.Red, ItemsSource = Controled
            });

            #endregion

            var axisx = new LinearAxis()
            {
                Minimum = ax.X,
                Maximum = ax.Y,
                PositionAtZeroCrossing = true,
                AxislineStyle          = LineStyle.Solid,
            };

            var axisy = new LinearAxis()
            {
                Minimum = ay.X,
                Maximum = ay.Y,
                PositionAtZeroCrossing = true,
                AxislineStyle          = LineStyle.Solid,
                Position = AxisPosition.Top
            };

            Model.Axes.Add(axisx);
            Model.Axes.Add(axisy);


            #region TestingData

            List <DataPoint> Tested = new List <DataPoint>();
            foreach (var item in TestingData)
            {
                Tested.Add(new DataPoint(item.X, item.Y));
            }
            Model.Series.Add(new LineSeries()
            {
                Title = "Tested", MarkerSize = 11, MarkerType = MarkerType.Square, LineStyle = LineStyle.None, MarkerFill = OxyColors.Blue, ItemsSource = Tested
            });
            #endregion

            LineSeries Pos = new LineSeries()
            {
                Title = "1", MarkerSize = 8, MarkerType = MarkerType.Triangle, LineStyle = LineStyle.None, MarkerFill = OxyColors.GreenYellow, ItemsSource = Positive
            };
            LineSeries Neg = new LineSeries()
            {
                Title = "0", MarkerSize = 8, MarkerType = MarkerType.Diamond, LineStyle = LineStyle.None, MarkerFill = OxyColors.BlueViolet, ItemsSource = Negative
            };


            Model.Series.Add(Pos);
            Model.Series.Add(Neg);

            Model.Series.Add(new LineSeries());
            model.InvalidatePlot(true);

            Perceptron.Generate(TreningData, w);
            UpdateLine();

            Weight.Clear();
            Weight.AddRange(Perceptron.GetWeight());
            UpdateLine();
        }