Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
11/29/11 20:05:38 (12 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/SymbolicTimeSeriesPrognosisSingleObjectiveMeanSquaredErrorEvaluator.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       IEnumerable<double> boundedEstimationValues = estimatedValues.LimitToRange(lowerEstimationLimit, upperEstimationLimit);
    60       OnlineCalculatorError errorState;
    61       double mse = OnlineMeanSquaredErrorCalculator.Calculate(originalValues, boundedEstimationValues, out errorState);
    62       if (errorState != OnlineCalculatorError.None) return double.NaN;
    63       else return mse;
     58      OnlineMeanAndVarianceCalculator meanCalculator = new OnlineMeanAndVarianceCalculator();
     59      foreach (var targetVariable in problemData.TargetVariables) {
     60        IEnumerable<double> originalValues = problemData.Dataset.GetDoubleValues(targetVariable, rows);
     61        IEnumerable<double> boundedEstimationValues = estimatedValues.LimitToRange(lowerEstimationLimit,
     62                                                                                   upperEstimationLimit);
     63        OnlineCalculatorError errorState;
     64        meanCalculator.Add(OnlineMeanSquaredErrorCalculator.Calculate(originalValues, boundedEstimationValues, out errorState));
     65        if (errorState != OnlineCalculatorError.None) return double.NaN;
     66      }
     67      return meanCalculator.Mean;
    6468    }
    6569
    6670    public override double Evaluate(IExecutionContext context, ISymbolicExpressionTree tree, ITimeSeriesPrognosisProblemData problemData, IEnumerable<int> rows) {
    67       SymbolicDataAnalysisTreeInterpreterParameter.ExecutionContext = context;
     71      SymbolicTimeSeriesPrognosisInterpreterParameter.ExecutionContext = context;
    6872      EstimationLimitsParameter.ExecutionContext = context;
    6973
    70       double mse = Calculate(SymbolicDataAnalysisTreeInterpreterParameter.ActualValue, tree, EstimationLimitsParameter.ActualValue.Lower, EstimationLimitsParameter.ActualValue.Upper, problemData, rows);
     74      double mse = Calculate(SymbolicTimeSeriesPrognosisInterpreterParameter.ActualValue, tree, EstimationLimitsParameter.ActualValue.Lower, EstimationLimitsParameter.ActualValue.Upper, problemData, rows);
    7175
    7276
    73       SymbolicDataAnalysisTreeInterpreterParameter.ExecutionContext = null;
     77      SymbolicTimeSeriesPrognosisInterpreterParameter.ExecutionContext = null;
    7478      EstimationLimitsParameter.ExecutionContext = null;
    7579
Note: See TracChangeset for help on using the changeset viewer.