Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
11/29/11 20:05:38 (13 years ago)
Author:
gkronber
Message:

#1081 worked on multi-variate time series prognosis

Location:
branches/HeuristicLab.TimeSeries/HeuristicLab.Problems.DataAnalysis.Symbolic.TimeSeriesPrognosis/3.4
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/HeuristicLab.TimeSeries/HeuristicLab.Problems.DataAnalysis.Symbolic.TimeSeriesPrognosis/3.4

    • Property svn:ignore
      •  

        old new  
        33HeuristicLabProblemsDataAnalysisSymbolicTimeSeriesPrognosisPlugin.cs
        44obj
         5Plugin.cs
  • branches/HeuristicLab.TimeSeries/HeuristicLab.Problems.DataAnalysis.Symbolic.TimeSeriesPrognosis/3.4/SingleObjective/SymbolicTimeSeriesPrognosisSingleObjectivePearsonRSquaredEvaluator.cs

    r6802 r7100  
    4848      IEnumerable<int> rows = GenerateRowsToEvaluate();
    4949
    50       double quality = Calculate(SymbolicDataAnalysisTreeInterpreterParameter.ActualValue, solution, EstimationLimitsParameter.ActualValue.Lower, EstimationLimitsParameter.ActualValue.Upper, ProblemDataParameter.ActualValue, rows);
     50      double quality = Calculate(SymbolicTimeSeriesPrognosisInterpreterParameter.ActualValue, solution, EstimationLimitsParameter.ActualValue.Lower, EstimationLimitsParameter.ActualValue.Upper, ProblemDataParameter.ActualValue, rows);
    5151      QualityParameter.ActualValue = new DoubleValue(quality);
    5252
     
    5656    public static double Calculate(ISymbolicDataAnalysisExpressionTreeInterpreter interpreter, ISymbolicExpressionTree solution, double lowerEstimationLimit, double upperEstimationLimit, ITimeSeriesPrognosisProblemData problemData, IEnumerable<int> rows) {
    5757      IEnumerable<double> estimatedValues = interpreter.GetSymbolicExpressionTreeValues(solution, problemData.Dataset, rows);
    58       IEnumerable<double> originalValues = problemData.Dataset.GetDoubleValues(problemData.TargetVariable, rows);
    59       OnlineCalculatorError errorState;
    60       double r2 = OnlinePearsonsRSquaredCalculator.Calculate(estimatedValues, originalValues, out errorState);
    61       if (errorState != OnlineCalculatorError.None) return 0.0;
    62       else return r2;
     58      var meanCalculator = new OnlineMeanAndVarianceCalculator();
     59      foreach (var targetVariable in problemData.TargetVariables) {
     60        IEnumerable<double> originalValues = problemData.Dataset.GetDoubleValues(targetVariable, rows);
     61        OnlineCalculatorError errorState;
     62        meanCalculator.Add(OnlinePearsonsRSquaredCalculator.Calculate(estimatedValues, originalValues, out errorState));
     63        if (errorState != OnlineCalculatorError.None) return 0.0;
     64      }
     65      return meanCalculator.Mean;
    6366    }
    6467
    6568    public override double Evaluate(IExecutionContext context, ISymbolicExpressionTree tree, ITimeSeriesPrognosisProblemData problemData, IEnumerable<int> rows) {
    66       SymbolicDataAnalysisTreeInterpreterParameter.ExecutionContext = context;
     69      SymbolicTimeSeriesPrognosisInterpreterParameter.ExecutionContext = context;
    6770      EstimationLimitsParameter.ExecutionContext = context;
    6871
    69       double r2 = Calculate(SymbolicDataAnalysisTreeInterpreterParameter.ActualValue, tree, EstimationLimitsParameter.ActualValue.Lower, EstimationLimitsParameter.ActualValue.Upper, problemData, rows);
     72      double r2 = Calculate(SymbolicTimeSeriesPrognosisInterpreterParameter.ActualValue, tree, EstimationLimitsParameter.ActualValue.Lower, EstimationLimitsParameter.ActualValue.Upper, problemData, rows);
    7073
    71       SymbolicDataAnalysisTreeInterpreterParameter.ExecutionContext = null;
     74      SymbolicTimeSeriesPrognosisInterpreterParameter.ExecutionContext = null;
    7275      EstimationLimitsParameter.ExecutionContext = null;
    7376
Note: See TracChangeset for help on using the changeset viewer.