protected override IEnumerable<IRegressionSolution> CreateBaselineSolutions() {
      foreach (var sol in base.CreateBaselineSolutions())
        yield return sol;

      IEnumerable<double> trainingStartValues = ProblemData.Dataset.GetDoubleValues(ProblemData.TargetVariable, ProblemData.TrainingIndices.Select(r => r - 1).Where(r => r > 0)).ToList();
      //AR1 model
      double alpha, beta;
      OnlineCalculatorError errorState;
      OnlineLinearScalingParameterCalculator.Calculate(ProblemData.Dataset.GetDoubleValues(ProblemData.TargetVariable, ProblemData.TrainingIndices.Where(x => x > 0)), trainingStartValues, out alpha, out beta, out errorState);
      var ar1Solution = new TimeSeriesPrognosisAutoRegressiveModel(ProblemData.TargetVariable, new double[] { beta }, alpha).CreateTimeSeriesPrognosisSolution(ProblemData);
      ar1Solution.Name = "AR(1)";
      yield return ar1Solution;
    }
        protected override IEnumerable <IRegressionSolution> CreateBaselineSolutions()
        {
            foreach (var sol in base.CreateBaselineSolutions())
            {
                yield return(sol);
            }

            IEnumerable <double> trainingStartValues = ProblemData.Dataset.GetDoubleValues(ProblemData.TargetVariable, ProblemData.TrainingIndices.Select(r => r - 1).Where(r => r > 0)).ToList();
            //AR1 model
            double alpha, beta;
            OnlineCalculatorError errorState;

            OnlineLinearScalingParameterCalculator.Calculate(ProblemData.Dataset.GetDoubleValues(ProblemData.TargetVariable, ProblemData.TrainingIndices.Where(x => x > 0)), trainingStartValues, out alpha, out beta, out errorState);
            var ar1Solution = new TimeSeriesPrognosisAutoRegressiveModel(ProblemData.TargetVariable, new double[] { beta }, alpha).CreateTimeSeriesPrognosisSolution(ProblemData);

            ar1Solution.Name = "AR(1)";
            yield return(ar1Solution);
        }