Free cookie consent management tool by TermsFeed Policy Generator

source: trunk/sources/HeuristicLab.Modeling/3.2/Model.cs @ 2188

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

Added code to store variable quality impacts for each model into the CEDMA result DB. #644

File size: 4.4 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 System;
23using System.Collections.Generic;
24using System.Text;
25using HeuristicLab.Core;
26using HeuristicLab.DataAnalysis;
27
28namespace HeuristicLab.Modeling {
29  public class Model : IModel {
30    #region IModel Members
31
32    private Dataset dataset;
33    public Dataset Dataset {
34      get { return dataset; }
35      set { dataset = value; }
36    }
37
38    private string targetVariable;
39    public string TargetVariable {
40      get { return targetVariable; }
41      set { targetVariable = value; }
42    }
43
44    private double trainingMSE;
45    public double TrainingMeanSquaredError {
46      get { return trainingMSE; }
47      set { trainingMSE = value; }
48    }
49
50    private double validationMSE;
51    public double ValidationMeanSquaredError {
52      get { return validationMSE; }
53      set { validationMSE = value; }
54    }
55
56    private double testMSE;
57    public double TestMeanSquaredError {
58      get { return testMSE; }
59      set { testMSE = value; }
60    }
61
62    public double TrainingMeanAbsolutePercentageError {
63      get;
64      set;
65    }
66
67    public double ValidationMeanAbsolutePercentageError {
68      get;
69      set;
70    }
71
72    public double TestMeanAbsolutePercentageError {
73      get;
74      set;
75    }
76
77    public double TrainingMeanAbsolutePercentageOfRangeError {
78      get;
79      set;
80    }
81
82    public double ValidationMeanAbsolutePercentageOfRangeError {
83      get;
84      set;
85    }
86
87    public double TestMeanAbsolutePercentageOfRangeError {
88      get;
89      set;
90    }
91
92    public double TrainingCoefficientOfDetermination {
93      get;
94      set;
95    }
96
97    public double ValidationCoefficientOfDetermination {
98      get;
99      set;
100    }
101
102    public double TestCoefficientOfDetermination {
103      get;
104      set;
105    }
106
107    public double TrainingVarianceAccountedFor {
108      get;
109      set;
110    }
111
112    public double ValidationVarianceAccountedFor {
113      get;
114      set;
115    }
116
117    public double TestVarianceAccountedFor {
118      get;
119      set;
120    }
121
122    public double GetVariableQualityImpact(string variableName) {
123      if (variableQualityImpacts.ContainsKey(variableName)) return variableQualityImpacts[variableName];
124      else throw new ArgumentException("Impact of variable "+variableName+" is not available.");
125    }
126
127    public double GetVariableEvaluationImpact(string variableName) {
128      if (variableEvaluationImpacts.ContainsKey(variableName)) return variableEvaluationImpacts[variableName];
129      else throw new ArgumentException("Impact of variable " + variableName + " is not available.");
130    }
131
132    private IItem data;
133    public IItem Data {
134      get { return data; }
135      set { data = value; }
136    }
137
138    #endregion
139
140    private Dictionary<string, double> variableQualityImpacts = new Dictionary<string, double>();
141    public void SetVariableQualityImpact(string variableName, double impact) {
142      variableQualityImpacts[variableName] = impact;
143    }
144
145    public void SetVariableQualityImpact(int variableIndex, double impact) {
146      variableQualityImpacts[dataset.GetVariableName(variableIndex)] = impact;
147    }
148
149    private Dictionary<string, double> variableEvaluationImpacts = new Dictionary<string, double>();
150    public void SetVariableEvaluationImpact(string variableName, double impact) {
151      variableEvaluationImpacts[variableName] = impact;
152    }
153
154    public void SetVariableEvaluationImpact(int variableIndex, double impact) {
155      variableEvaluationImpacts[dataset.GetVariableName(variableIndex)] = impact;
156    }
157  }
158}
Note: See TracBrowser for help on using the repository browser.