Changeset 7183 for branches/HeuristicLab.TimeSeries/HeuristicLab.Problems.DataAnalysis.Symbolic.TimeSeriesPrognosis/3.4/SingleObjective
- Timestamp:
- 12/13/11 13:52:22 (13 years ago)
- 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 93 93 meanCalculator.Add(calc.MeanSquaredError); 94 94 } 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 109 96 return meanCalculator.MeanErrorState == OnlineCalculatorError.None ? meanCalculator.Mean : double.MaxValue; 110 97 } -
branches/HeuristicLab.TimeSeries/HeuristicLab.Problems.DataAnalysis.Symbolic.TimeSeriesPrognosis/3.4/SingleObjective/SymbolicTimeSeriesPrognosisSingleObjectiveProblem.cs
r7154 r7183 76 76 private void InitializeOperators() { 77 77 Operators.Add(new SymbolicTimeSeriesPrognosisSingleObjectiveTrainingBestSolutionAnalyzer()); 78 //Operators.Add(new SymbolicTimeSeriesPrognosisSingleObjectiveValidationBestSolutionAnalyzer());79 //Operators.Add(new SymbolicTimeSeriesPrognosisSingleObjectiveOverfittingAnalyzer());78 Operators.Add(new SymbolicTimeSeriesPrognosisSingleObjectiveValidationBestSolutionAnalyzer()); 79 Operators.Add(new SymbolicTimeSeriesPrognosisSingleObjectiveOverfittingAnalyzer()); 80 80 ParameterizeOperators(); 81 81 } 82 82 83 83 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 {91 84 EstimationLimits.Upper = double.MaxValue; 92 85 EstimationLimits.Lower = double.MinValue; 93 //}94 86 } 95 87 … … 106 98 op.EstimationLimitsParameter.ActualName = EstimationLimitsParameter.Name; 107 99 } 108 foreach (var op in operators.OfType<SymbolicTimeSeriesPrognosisSingleObjectiveTrainingBestSolutionAnalyzer>()) 109 { 100 foreach (var op in operators.OfType<SymbolicTimeSeriesPrognosisSingleObjectiveTrainingBestSolutionAnalyzer>()) { 110 101 op.MaximizationParameter.ActualName = MaximizationParameter.Name; 111 102 op.ProblemDataParameter.ActualName = ProblemDataParameter.Name; -
branches/HeuristicLab.TimeSeries/HeuristicLab.Problems.DataAnalysis.Symbolic.TimeSeriesPrognosis/3.4/SingleObjective/SymbolicTimeSeriesPrognosisSingleObjectiveTrainingBestSolutionAnalyzer.cs
r7120 r7183 76 76 77 77 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); 79 79 if (ApplyLinearScaling.Value) 80 80 SymbolicTimeSeriesPrognosisModel.Scale(model, ProblemDataParameter.ActualValue); -
branches/HeuristicLab.TimeSeries/HeuristicLab.Problems.DataAnalysis.Symbolic.TimeSeriesPrognosis/3.4/SingleObjective/SymbolicTimeSeriesPrognosisSingleObjectiveValidationBestSolutionAnalyzer.cs
r7100 r7183 20 20 #endregion 21 21 22 using System.Linq; 22 23 using HeuristicLab.Common; 23 24 using HeuristicLab.Core; … … 33 34 [Item("SymbolicTimeSeriesPrognosisSingleObjectiveValidationBestSolutionAnalyzer", "An operator that analyzes the validation best symbolic time-series prognosis solution for single objective symbolic time-series prognosis problems.")] 34 35 [StorableClass] 35 public sealed class SymbolicTimeSeriesPrognosisSingleObjectiveValidationBestSolutionAnalyzer : SymbolicDataAnalysisSingleObjectiveValidationBestSolutionAnalyzer<ISymbolicTimeSeriesPrognosisSolution, ISymbolicTimeSeriesPrognosisSingleObjectiveEvaluator, ITimeSeriesPrognosisProblemData>, 36 ISymbolicDataAnalysisBoundedOperator { 36 public sealed class SymbolicTimeSeriesPrognosisSingleObjectiveValidationBestSolutionAnalyzer : SymbolicDataAnalysisSingleObjectiveValidationBestSolutionAnalyzer<ISymbolicTimeSeriesPrognosisSolution, ISymbolicTimeSeriesPrognosisSingleObjectiveEvaluator, ITimeSeriesPrognosisProblemData>, ISymbolicDataAnalysisBoundedOperator { 37 37 private const string EstimationLimitsParameterName = "EstimationLimits"; 38 38 private const string ApplyLinearScalingParameterName = "ApplyLinearScaling"; 39 40 39 #region parameter properties 41 40 public IValueLookupParameter<DoubleLimit> EstimationLimitsParameter { … … 61 60 Parameters.Add(new ValueParameter<BoolValue>(ApplyLinearScalingParameterName, "Flag that indicates if the produced symbolic regression solution should be linearly scaled.", new BoolValue(true))); 62 61 } 63 64 62 public override IDeepCloneable Clone(Cloner cloner) { 65 63 return new SymbolicTimeSeriesPrognosisSingleObjectiveValidationBestSolutionAnalyzer(this, cloner); … … 67 65 68 66 protected override ISymbolicTimeSeriesPrognosisSolution CreateSolution(ISymbolicExpressionTree bestTree, double bestQuality) { 69 var model = new SymbolicTimeSeriesPrognosisModel((ISymbolicExpressionTree)bestTree.Clone(), Symbolic TimeSeriesPrognosisInterpreterParameter.ActualValue);67 var model = new SymbolicTimeSeriesPrognosisModel((ISymbolicExpressionTree)bestTree.Clone(), SymbolicDataAnalysisTreeInterpreterParameter.ActualValue, ProblemDataParameter.ActualValue.TargetVariables.ToArray(), EstimationLimitsParameter.ActualValue.Lower, EstimationLimitsParameter.ActualValue.Upper); 70 68 if (ApplyLinearScaling.Value) 71 69 SymbolicTimeSeriesPrognosisModel.Scale(model, ProblemDataParameter.ActualValue);
Note: See TracChangeset
for help on using the changeset viewer.