Free cookie consent management tool by TermsFeed Policy Generator

source: trunk/sources/HeuristicLab.Modeling/3.2/DefaultTimeSeriesOperators.cs @ 2370

Last change on this file since 2370 was 2370, checked in by gkronber, 15 years ago

Added enumerable type for model results and changed analyzer model, the database backend and the model analysis operators to use the enumerable type instead of hard-coded strings. #755 (Hard-coded strings for variable names of data-modeling results)

File size: 3.6 KB
Line 
1#region License Information
2/* HeuristicLab
3 * Copyright (C) 2002-2008 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
4 *
5 * This file is part of HeuristicLab.
6 *
7 * HeuristicLab is free software: you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation, either version 3 of the License, or
10 * (at your option) any later version.
11 *
12 * HeuristicLab is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
19 */
20#endregion
21
22using HeuristicLab.Core;
23using HeuristicLab.DataAnalysis;
24using HeuristicLab.Operators;
25using HeuristicLab.Modeling;
26using HeuristicLab.Data;
27
28namespace HeuristicLab.Modeling {
29  public static class DefaultTimeSeriesOperators {
30    public static IOperator CreateProblemInjector() {
31      CombinedOperator op = new CombinedOperator();
32      op.Name = "ProblemInjector";
33      SequentialProcessor seq = new SequentialProcessor();
34      seq.AddSubOperator(new ProblemInjector());
35      op.OperatorGraph.AddOperator(seq);
36      op.OperatorGraph.InitialOperator = seq;
37      return op;
38    }
39
40    public static IOperator CreatePostProcessingOperator() {
41      CombinedOperator op = new CombinedOperator();
42      op.Name = "Time series prognosis model analyzer";
43
44      SequentialProcessor seq = new SequentialProcessor();
45      seq.AddSubOperator(DefaultRegressionOperators.CreatePostProcessingOperator());
46
47      SimpleTheilInequalityCoefficientEvaluator trainingTheil = new SimpleTheilInequalityCoefficientEvaluator();
48      trainingTheil.Name = "TrainingTheilInequalityEvaluator";
49      trainingTheil.GetVariableInfo("Values").ActualName = "TrainingValues";
50      trainingTheil.GetVariableInfo("TheilInequalityCoefficient").ActualName = ModelingResult.TrainingTheilInequality.ToString();
51      SimpleTheilInequalityCoefficientEvaluator validationTheil = new SimpleTheilInequalityCoefficientEvaluator();
52      validationTheil.Name = "ValidationTheilInequalityEvaluator";
53      validationTheil.GetVariableInfo("Values").ActualName = "ValidationValues";
54      validationTheil.GetVariableInfo("TheilInequalityCoefficient").ActualName = ModelingResult.ValidationTheilInequality.ToString();
55      SimpleTheilInequalityCoefficientEvaluator testTheil = new SimpleTheilInequalityCoefficientEvaluator();
56      testTheil.Name = "TestTheilInequalityEvaluator";
57      testTheil.GetVariableInfo("Values").ActualName = "TestValues";
58      testTheil.GetVariableInfo("TheilInequalityCoefficient").ActualName = ModelingResult.TestTheilInequality.ToString();
59
60      seq.AddSubOperator(trainingTheil);
61      seq.AddSubOperator(validationTheil);
62      seq.AddSubOperator(testTheil);
63
64      op.OperatorGraph.AddOperator(seq);
65      op.OperatorGraph.InitialOperator = seq;
66      return op;
67    }
68
69    public static IAnalyzerModel PopulateAnalyzerModel(IScope modelScope, IAnalyzerModel model) {
70      DefaultRegressionOperators.PopulateAnalyzerModel(modelScope, model);
71      model.ExtractResult(modelScope, ModelingResult.TrainingTheilInequality);
72      model.ExtractResult(modelScope, ModelingResult.ValidationTheilInequality);
73      model.ExtractResult(modelScope, ModelingResult.TestTheilInequality);
74      model.Type = ModelType.TimeSeriesPrognosis;
75      return model;
76    }
77  }
78}
Note: See TracBrowser for help on using the repository browser.