示例#1
0
        protected override Func <double, double> Distribution(IEnumerable <double> bugLifetimes)
        {
            ExponentialRegression expRegression = new ExponentialRegression();

            foreach (var time in bugLifetimes)
            {
                expRegression.AddTrainingData(time, (double)bugLifetimes.Where(t => t <= time).Count() / bugLifetimes.Count());
            }
            expRegression.Train();
            return(time =>
            {
                return expRegression.Predict(time);
            });
        }
示例#2
0
        /// <summary>
        /// Initializing regression list
        /// </summary>
        /// <param name="xVals"></param>
        /// <param name="yValsConv"></param>
        /// <param name="file"></param>
        /// <param name="predictDays"></param>
        /// <param name="name"></param>
        private void GetRegressionsList(double[] xVals, double[] yValsConv, CsvFile file, int predictDays, string name)
        {
            regressions.Clear();
            PlotCanvas.Children.Clear();
            AbstractRegression regression;
            Brush brush = null;

            if (ExponentialCheck.IsChecked == true)
            {
                regression = new ExponentialRegression(xVals, yValsConv);
                brush      = Brushes.Gold;
                regressions.Add(new RegressionContainer(regression, predictDays, 0, file.Fields[0], name));
                DrawPlot(regressions[regressions.Count - 1]);
            }
            if (LogarifmicCheck.IsChecked == true)
            {
                regression = new LogarifmicRegression(xVals, yValsConv);
                brush      = Brushes.Coral;
                regressions.Add(new RegressionContainer(regression, predictDays, 1, file.Fields[0], name));
                DrawPlot(regressions[regressions.Count - 1]);
            }

            if (HyperbolicCheck.IsChecked == true)
            {
                brush      = Brushes.DeepPink;
                regression = new HyperbolicRegression(xVals, yValsConv);
                regressions.Add(new RegressionContainer(regression, predictDays, 2, file.Fields[0], name));
                DrawPlot(regressions[regressions.Count - 1]);
            }
            if (SquareCheck.IsChecked == true)
            {
                brush      = Brushes.ForestGreen;
                regression = new SquareRegression(xVals, yValsConv);

                regressions.Add(new RegressionContainer(regression, predictDays, 3, file.Fields[0], name));
                DrawPlot(regressions[regressions.Count - 1]);
            }
            if (CubicCheck.IsChecked == true)
            {
                brush      = Brushes.MidnightBlue;
                regression = new CubicRegression(xVals, yValsConv);
                regressions.Add(new RegressionContainer(regression, predictDays, 4, file.Fields[0], name));
                DrawPlot(regressions[regressions.Count - 1]);
            }
        }
 protected override Func<double, double> Distribution(IEnumerable<double> bugLifetimes)
 {
     ExponentialRegression expRegression = new ExponentialRegression();
     foreach (var time in bugLifetimes)
     {
         expRegression.AddTrainingData(time, (double)bugLifetimes.Where(t => t <= time).Count() / bugLifetimes.Count());
     }
     expRegression.Train();
     return time =>
     {
         return expRegression.Predict(time);
     };
 }