- Timestamp:
- 10/03/12 11:38:57 (12 years ago)
- Location:
- trunk/sources/HeuristicLab.Problems.DataAnalysis.Symbolic.Classification/3.4
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/sources/HeuristicLab.Problems.DataAnalysis.Symbolic.Classification/3.4/SymbolicClassificationSolution.cs
r7259 r8723 71 71 72 72 protected override void RecalculateResults() { 73 base.RecalculateResults(); 73 74 ModelLength = Model.SymbolicExpressionTree.Length; 74 75 ModelDepth = Model.SymbolicExpressionTree.Depth; 75 CalculateResults();76 76 } 77 77 } -
trunk/sources/HeuristicLab.Problems.DataAnalysis.Symbolic.Classification/3.4/SymbolicDiscriminantFunctionClassificationSolution.cs
r8684 r8723 20 20 #endregion 21 21 22 using System.Linq; 22 23 using HeuristicLab.Common; 23 24 using HeuristicLab.Core; … … 35 36 private const string ModelLengthResultName = "Model Length"; 36 37 private const string ModelDepthResultName = "Model Depth"; 38 39 private const string EstimationLimitsResultsResultName = "Estimation Limits Results"; 40 private const string EstimationLimitsResultName = "Estimation Limits"; 41 private const string TrainingUpperEstimationLimitHitsResultName = "Training Upper Estimation Limit Hits"; 42 private const string TestLowerEstimationLimitHitsResultName = "Test Lower Estimation Limit Hits"; 43 private const string TrainingLowerEstimationLimitHitsResultName = "Training Lower Estimation Limit Hits"; 44 private const string TestUpperEstimationLimitHitsResultName = "Test Upper Estimation Limit Hits"; 45 private const string TrainingNaNEvaluationsResultName = "Training NaN Evaluations"; 46 private const string TestNaNEvaluationsResultName = "Test NaN Evaluations"; 37 47 38 48 public new ISymbolicDiscriminantFunctionClassificationModel Model { … … 57 67 private set { ((IntValue)this[ModelDepthResultName].Value).Value = value; } 58 68 } 69 70 private ResultCollection EstimationLimitsResultCollection { 71 get { return (ResultCollection)this[EstimationLimitsResultsResultName].Value; } 72 } 73 public DoubleLimit EstimationLimits { 74 get { return (DoubleLimit)EstimationLimitsResultCollection[EstimationLimitsResultName].Value; } 75 } 76 77 public int TrainingUpperEstimationLimitHits { 78 get { return ((IntValue)EstimationLimitsResultCollection[TrainingUpperEstimationLimitHitsResultName].Value).Value; } 79 private set { ((IntValue)EstimationLimitsResultCollection[TrainingUpperEstimationLimitHitsResultName].Value).Value = value; } 80 } 81 public int TestUpperEstimationLimitHits { 82 get { return ((IntValue)EstimationLimitsResultCollection[TestUpperEstimationLimitHitsResultName].Value).Value; } 83 private set { ((IntValue)EstimationLimitsResultCollection[TestUpperEstimationLimitHitsResultName].Value).Value = value; } 84 } 85 public int TrainingLowerEstimationLimitHits { 86 get { return ((IntValue)EstimationLimitsResultCollection[TrainingLowerEstimationLimitHitsResultName].Value).Value; } 87 private set { ((IntValue)EstimationLimitsResultCollection[TrainingLowerEstimationLimitHitsResultName].Value).Value = value; } 88 } 89 public int TestLowerEstimationLimitHits { 90 get { return ((IntValue)EstimationLimitsResultCollection[TestLowerEstimationLimitHitsResultName].Value).Value; } 91 private set { ((IntValue)EstimationLimitsResultCollection[TestLowerEstimationLimitHitsResultName].Value).Value = value; } 92 } 93 public int TrainingNaNEvaluations { 94 get { return ((IntValue)EstimationLimitsResultCollection[TrainingNaNEvaluationsResultName].Value).Value; } 95 private set { ((IntValue)EstimationLimitsResultCollection[TrainingNaNEvaluationsResultName].Value).Value = value; } 96 } 97 public int TestNaNEvaluations { 98 get { return ((IntValue)EstimationLimitsResultCollection[TestNaNEvaluationsResultName].Value).Value; } 99 private set { ((IntValue)EstimationLimitsResultCollection[TestNaNEvaluationsResultName].Value).Value = value; } 100 } 101 59 102 [StorableConstructor] 60 103 private SymbolicDiscriminantFunctionClassificationSolution(bool deserializing) : base(deserializing) { } … … 66 109 Add(new Result(ModelLengthResultName, "Length of the symbolic classification model.", new IntValue())); 67 110 Add(new Result(ModelDepthResultName, "Depth of the symbolic classification model.", new IntValue())); 68 CalculateSymbolicDiscriminantFunctionClassificationResults(); 111 112 113 ResultCollection estimationLimitResults = new ResultCollection(); 114 estimationLimitResults.Add(new Result(EstimationLimitsResultName, "", new DoubleLimit())); 115 estimationLimitResults.Add(new Result(TrainingUpperEstimationLimitHitsResultName, "", new IntValue())); 116 estimationLimitResults.Add(new Result(TestUpperEstimationLimitHitsResultName, "", new IntValue())); 117 estimationLimitResults.Add(new Result(TrainingLowerEstimationLimitHitsResultName, "", new IntValue())); 118 estimationLimitResults.Add(new Result(TestLowerEstimationLimitHitsResultName, "", new IntValue())); 119 estimationLimitResults.Add(new Result(TrainingNaNEvaluationsResultName, "", new IntValue())); 120 estimationLimitResults.Add(new Result(TestNaNEvaluationsResultName, "", new IntValue())); 121 Add(new Result(EstimationLimitsResultsResultName, "Results concerning the estimation limits of symbolic regression solution", estimationLimitResults)); 122 123 CalculateResults(); 69 124 } 70 125 … … 73 128 } 74 129 75 private void CalculateSymbolicDiscriminantFunctionClassificationResults() { 76 CalculateResults(); 77 CalculateRegressionResults(); 130 [StorableHook(HookType.AfterDeserialization)] 131 private void AfterDeserialization() { 132 if (!ContainsKey(EstimationLimitsResultsResultName)) { 133 ResultCollection estimationLimitResults = new ResultCollection(); 134 estimationLimitResults.Add(new Result(EstimationLimitsResultName, "", new DoubleLimit())); 135 estimationLimitResults.Add(new Result(TrainingUpperEstimationLimitHitsResultName, "", new IntValue())); 136 estimationLimitResults.Add(new Result(TestUpperEstimationLimitHitsResultName, "", new IntValue())); 137 estimationLimitResults.Add(new Result(TrainingLowerEstimationLimitHitsResultName, "", new IntValue())); 138 estimationLimitResults.Add(new Result(TestLowerEstimationLimitHitsResultName, "", new IntValue())); 139 estimationLimitResults.Add(new Result(TrainingNaNEvaluationsResultName, "", new IntValue())); 140 estimationLimitResults.Add(new Result(TestNaNEvaluationsResultName, "", new IntValue())); 141 Add(new Result(EstimationLimitsResultsResultName, "Results concerning the estimation limits of symbolic regression solution", estimationLimitResults)); 142 CalculateResults(); 143 } 144 } 145 146 147 private void CalculateResults() { 78 148 ModelLength = Model.SymbolicExpressionTree.Length; 79 149 ModelDepth = Model.SymbolicExpressionTree.Depth; 150 151 EstimationLimits.Lower = Model.LowerEstimationLimit; 152 EstimationLimits.Upper = Model.UpperEstimationLimit; 153 154 TrainingUpperEstimationLimitHits = EstimatedTrainingValues.Count(x => x.IsAlmost(Model.UpperEstimationLimit)); 155 TestUpperEstimationLimitHits = EstimatedTestValues.Count(x => x.IsAlmost(Model.UpperEstimationLimit)); 156 TrainingLowerEstimationLimitHits = EstimatedTrainingValues.Count(x => x.IsAlmost(Model.LowerEstimationLimit)); 157 TestLowerEstimationLimitHits = EstimatedTestValues.Count(x => x.IsAlmost(Model.LowerEstimationLimit)); 158 TrainingNaNEvaluations = Model.Interpreter.GetSymbolicExpressionTreeValues(Model.SymbolicExpressionTree, ProblemData.Dataset, ProblemData.TrainingIndices).Count(double.IsNaN); 159 TestNaNEvaluations = Model.Interpreter.GetSymbolicExpressionTreeValues(Model.SymbolicExpressionTree, ProblemData.Dataset, ProblemData.TestIndices).Count(double.IsNaN); 80 160 } 81 161 82 162 protected override void RecalculateResults() { 83 CalculateSymbolicDiscriminantFunctionClassificationResults(); 163 base.RecalculateResults(); 164 CalculateResults(); 84 165 } 85 166 }
Note: See TracChangeset
for help on using the changeset viewer.