Changeset 3462 for trunk/sources/HeuristicLab.Problems.DataAnalysis.Regression/3.3/Symbolic/SymbolicRegressionEvaluator.cs
- Timestamp:
- 04/21/10 15:21:34 (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/sources/HeuristicLab.Problems.DataAnalysis.Regression/3.3/Symbolic/SymbolicRegressionEvaluator.cs
r3452 r3462 34 34 using HeuristicLab.Problems.DataAnalysis; 35 35 using HeuristicLab.Operators; 36 using HeuristicLab.Problems.DataAnalysis.Symbolic; 36 37 37 38 namespace HeuristicLab.Problems.DataAnalysis.Regression.Symbolic { … … 40 41 public abstract class SymbolicRegressionEvaluator : SingleSuccessorOperator, ISymbolicRegressionEvaluator { 41 42 private const string QualityParameterName = "Quality"; 43 private const string SymbolicExpressionTreeInterpreterParameterName = "SymbolicExpressionTreeInterpreter"; 42 44 private const string FunctionTreeParameterName = "FunctionTree"; 43 45 private const string RegressionProblemDataParameterName = "RegressionProblemData"; … … 49 51 public ILookupParameter<DoubleValue> QualityParameter { 50 52 get { return (ILookupParameter<DoubleValue>)Parameters[QualityParameterName]; } 53 } 54 55 public ILookupParameter<ISymbolicExpressionTreeInterpreter> SymbolicExpressionTreeInterpreterParameter { 56 get { return (ILookupParameter<ISymbolicExpressionTreeInterpreter>)Parameters[SymbolicExpressionTreeInterpreterParameterName]; } 51 57 } 52 58 … … 72 78 #endregion 73 79 #region properties 80 public ISymbolicExpressionTreeInterpreter SymbolicExpressionTreeInterpreter { 81 get { return SymbolicExpressionTreeInterpreterParameter.ActualValue; } 82 } 74 83 public SymbolicExpressionTree SymbolicExpressionTree { 75 84 get { return SymbolicExpressionTreeParameter.ActualValue; } … … 89 98 : base() { 90 99 Parameters.Add(new LookupParameter<DoubleValue>(QualityParameterName, "The quality of the evaluated symbolic regression solution.")); 100 Parameters.Add(new LookupParameter<ISymbolicExpressionTreeInterpreter>(SymbolicExpressionTreeInterpreterParameterName, "The interpreter that should be used to calculate the output values of the symbolic expression tree.")); 91 101 Parameters.Add(new LookupParameter<SymbolicExpressionTree>(FunctionTreeParameterName, "The symbolic regression solution encoded as a symbolic expression tree.")); 92 102 Parameters.Add(new LookupParameter<DataAnalysisProblemData>(RegressionProblemDataParameterName, "The problem data on which the symbolic regression solution should be evaluated.")); … … 98 108 public override IOperation Apply() { 99 109 DoubleValue numberOfEvaluatedNodes = NumberOfEvaluatedNodesParameter.ActualValue; 100 QualityParameter.ActualValue = new DoubleValue(Evaluate(SymbolicExpressionTree , RegressionProblemData.Dataset,110 QualityParameter.ActualValue = new DoubleValue(Evaluate(SymbolicExpressionTreeInterpreter, SymbolicExpressionTree, RegressionProblemData.Dataset, 101 111 RegressionProblemData.TargetVariable, SamplesStart, SamplesEnd, numberOfEvaluatedNodes)); 102 112 return null; 103 113 } 104 114 105 protected abstract double Evaluate(SymbolicExpressionTree solution, Dataset dataset, StringValue targetVariable, IntValue samplesStart, IntValue samplesEnd, DoubleValue numberOfEvaluatedNodes); 115 protected abstract double Evaluate(ISymbolicExpressionTreeInterpreter interpreter, 116 SymbolicExpressionTree solution, 117 Dataset dataset, 118 StringValue targetVariable, 119 IntValue samplesStart, IntValue samplesEnd, 120 DoubleValue numberOfEvaluatedNodes); 106 121 } 107 122 }
Note: See TracChangeset
for help on using the changeset viewer.