Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
12/13/11 13:52:22 (13 years ago)
Author:
gkronber
Message:

#1081 implemented remaining metrics for time series prognosis solutions, added estimation limits fixed training and validation best solution analyzers, implemented overfitting analyzer.

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

Legend:

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

    r7154 r7183  
    9393        meanCalculator.Add(calc.MeanSquaredError);
    9494      }
    95       //int i = 0;
    96       //foreach (var targetVariable in problemData.TargetVariables) {
    97       //  var predictedContinuations = allPredictedContinuations.Select(v => v.ElementAt(i));
    98       //  for (int h = 0; h < horizon; h++) {
    99       //    OnlineCalculatorError errorState;
    100       //    meanCalculator.Add(OnlineMeanSquaredErrorCalculator.Calculate(predictedContinuations
    101       //                                                                    .Select(x => x.ElementAt(h))
    102       //                                                                    .LimitToRange(lowerEstimationLimit,
    103       //                                                                                  upperEstimationLimit),
    104       //                                                                  actualContinuations.Select(x => x.ElementAt(h)),
    105       //                                                                  out errorState));
    106       //    if (errorState != OnlineCalculatorError.None) return double.NaN;
    107       //  }
    108       //}
     95
    10996      return meanCalculator.MeanErrorState == OnlineCalculatorError.None ? meanCalculator.Mean : double.MaxValue;
    11097    }
  • branches/HeuristicLab.TimeSeries/HeuristicLab.Problems.DataAnalysis.Symbolic.TimeSeriesPrognosis/3.4/SingleObjective/SymbolicTimeSeriesPrognosisSingleObjectiveProblem.cs

    r7154 r7183  
    7676    private void InitializeOperators() {
    7777      Operators.Add(new SymbolicTimeSeriesPrognosisSingleObjectiveTrainingBestSolutionAnalyzer());
    78       //Operators.Add(new SymbolicTimeSeriesPrognosisSingleObjectiveValidationBestSolutionAnalyzer());
    79       //Operators.Add(new SymbolicTimeSeriesPrognosisSingleObjectiveOverfittingAnalyzer());
     78      Operators.Add(new SymbolicTimeSeriesPrognosisSingleObjectiveValidationBestSolutionAnalyzer());
     79      Operators.Add(new SymbolicTimeSeriesPrognosisSingleObjectiveOverfittingAnalyzer());
    8080      ParameterizeOperators();
    8181    }
    8282
    8383    private void UpdateEstimationLimits() {
    84       //if (ProblemData.TrainingIndizes.Any()) {
    85       //  var targetValues = ProblemData.Dataset.GetDoubleValues(ProblemData.TargetVariables, ProblemData.TrainingIndizes).ToList();
    86       //  var mean = targetValues.Average();
    87       //  var range = targetValues.Max() - targetValues.Min();
    88       //  EstimationLimits.Upper = mean + PunishmentFactor * range;
    89       //  EstimationLimits.Lower = mean - PunishmentFactor * range;
    90       //} else {
    9184      EstimationLimits.Upper = double.MaxValue;
    9285      EstimationLimits.Lower = double.MinValue;
    93       //}
    9486    }
    9587
     
    10698          op.EstimationLimitsParameter.ActualName = EstimationLimitsParameter.Name;
    10799        }
    108         foreach (var op in operators.OfType<SymbolicTimeSeriesPrognosisSingleObjectiveTrainingBestSolutionAnalyzer>())
    109         {
     100        foreach (var op in operators.OfType<SymbolicTimeSeriesPrognosisSingleObjectiveTrainingBestSolutionAnalyzer>()) {
    110101          op.MaximizationParameter.ActualName = MaximizationParameter.Name;
    111102          op.ProblemDataParameter.ActualName = ProblemDataParameter.Name;
  • branches/HeuristicLab.TimeSeries/HeuristicLab.Problems.DataAnalysis.Symbolic.TimeSeriesPrognosis/3.4/SingleObjective/SymbolicTimeSeriesPrognosisSingleObjectiveTrainingBestSolutionAnalyzer.cs

    r7120 r7183  
    7676
    7777    protected override ISymbolicTimeSeriesPrognosisSolution CreateSolution(ISymbolicExpressionTree bestTree, double bestQuality) {
    78       var model = new SymbolicTimeSeriesPrognosisModel((ISymbolicExpressionTree)bestTree.Clone(), SymbolicDataAnalysisTreeInterpreterParameter.ActualValue, ProblemDataParameter.ActualValue.TargetVariables.ToArray());
     78      var model = new SymbolicTimeSeriesPrognosisModel((ISymbolicExpressionTree)bestTree.Clone(), SymbolicDataAnalysisTreeInterpreterParameter.ActualValue, ProblemDataParameter.ActualValue.TargetVariables.ToArray(), EstimationLimitsParameter.ActualValue.Lower, EstimationLimitsParameter.ActualValue.Upper);
    7979      if (ApplyLinearScaling.Value)
    8080        SymbolicTimeSeriesPrognosisModel.Scale(model, ProblemDataParameter.ActualValue);
  • branches/HeuristicLab.TimeSeries/HeuristicLab.Problems.DataAnalysis.Symbolic.TimeSeriesPrognosis/3.4/SingleObjective/SymbolicTimeSeriesPrognosisSingleObjectiveValidationBestSolutionAnalyzer.cs

    r7100 r7183  
    2020#endregion
    2121
     22using System.Linq;
    2223using HeuristicLab.Common;
    2324using HeuristicLab.Core;
     
    3334  [Item("SymbolicTimeSeriesPrognosisSingleObjectiveValidationBestSolutionAnalyzer", "An operator that analyzes the validation best symbolic time-series prognosis solution for single objective symbolic time-series prognosis problems.")]
    3435  [StorableClass]
    35   public sealed class SymbolicTimeSeriesPrognosisSingleObjectiveValidationBestSolutionAnalyzer : SymbolicDataAnalysisSingleObjectiveValidationBestSolutionAnalyzer<ISymbolicTimeSeriesPrognosisSolution, ISymbolicTimeSeriesPrognosisSingleObjectiveEvaluator, ITimeSeriesPrognosisProblemData>,
    36     ISymbolicDataAnalysisBoundedOperator {
     36  public sealed class SymbolicTimeSeriesPrognosisSingleObjectiveValidationBestSolutionAnalyzer : SymbolicDataAnalysisSingleObjectiveValidationBestSolutionAnalyzer<ISymbolicTimeSeriesPrognosisSolution, ISymbolicTimeSeriesPrognosisSingleObjectiveEvaluator, ITimeSeriesPrognosisProblemData>, ISymbolicDataAnalysisBoundedOperator {
    3737    private const string EstimationLimitsParameterName = "EstimationLimits";
    3838    private const string ApplyLinearScalingParameterName = "ApplyLinearScaling";
    39 
    4039    #region parameter properties
    4140    public IValueLookupParameter<DoubleLimit> EstimationLimitsParameter {
     
    6160      Parameters.Add(new ValueParameter<BoolValue>(ApplyLinearScalingParameterName, "Flag that indicates if the produced symbolic regression solution should be linearly scaled.", new BoolValue(true)));
    6261    }
    63 
    6462    public override IDeepCloneable Clone(Cloner cloner) {
    6563      return new SymbolicTimeSeriesPrognosisSingleObjectiveValidationBestSolutionAnalyzer(this, cloner);
     
    6765
    6866    protected override ISymbolicTimeSeriesPrognosisSolution CreateSolution(ISymbolicExpressionTree bestTree, double bestQuality) {
    69       var model = new SymbolicTimeSeriesPrognosisModel((ISymbolicExpressionTree)bestTree.Clone(), SymbolicTimeSeriesPrognosisInterpreterParameter.ActualValue);
     67      var model = new SymbolicTimeSeriesPrognosisModel((ISymbolicExpressionTree)bestTree.Clone(), SymbolicDataAnalysisTreeInterpreterParameter.ActualValue, ProblemDataParameter.ActualValue.TargetVariables.ToArray(), EstimationLimitsParameter.ActualValue.Lower, EstimationLimitsParameter.ActualValue.Upper);
    7068      if (ApplyLinearScaling.Value)
    7169        SymbolicTimeSeriesPrognosisModel.Scale(model, ProblemDataParameter.ActualValue);
Note: See TracChangeset for help on using the changeset viewer.