- Timestamp:
- 10/29/10 19:26:56 (14 years ago)
- Location:
- branches/CloningRefactoring/HeuristicLab.Problems.DataAnalysis.Classification/3.3
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/CloningRefactoring/HeuristicLab.Problems.DataAnalysis.Classification/3.3/ClassificationProblemData.cs
r4618 r4678 196 196 } 197 197 198 [StorableConstructor] 199 protected ClassificationProblemData(bool deserializing) : base(deserializing) { } 200 protected ClassificationProblemData(ClassificationProblemData original, Cloner cloner) 201 : base(original, cloner) { 202 RegisterParameterEvents(); 203 UpdateClassValues(); 204 } 198 205 public ClassificationProblemData() 199 206 : base(new Dataset(defaultInputs, defaultData), defaultInputs, defaultInputs[defaultInputs.Length - 1], 0, 60, 60, 120) { … … 207 214 } 208 215 209 [StorableConstructor] 210 protected ClassificationProblemData(bool deserializing) : base(deserializing) { } 216 public override IDeepCloneable Clone(Cloner cloner) { 217 return new ClassificationProblemData(this, cloner); 218 } 219 211 220 [StorableHook(HookType.AfterDeserialization)] 212 private void AfterDeserialization Hook() {221 private void AfterDeserialization() { 213 222 RegisterParameterEvents(); 214 223 RegisterParameterValueEvents(); 215 }216 217 public override IDeepCloneable Clone(Cloner cloner) {218 ClassificationProblemData clone = (ClassificationProblemData)base.Clone(cloner);219 clone.RegisterParameterEvents();220 clone.UpdateClassValues();221 return clone;222 224 } 223 225 -
branches/CloningRefactoring/HeuristicLab.Problems.DataAnalysis.Classification/3.3/SingleObjectiveClassificationProblem.cs
r4565 r4678 49 49 [StorableConstructor] 50 50 protected SingleObjectiveClassificationProblem(bool deserializing) : base(deserializing) { } 51 protected SingleObjectiveClassificationProblem(SingleObjectiveClassificationProblem<T, U> original, Cloner cloner) 52 : base(original, cloner) { 53 Initialize(); 54 } 51 55 public SingleObjectiveClassificationProblem() 52 56 : base() { 53 57 Parameters.Add(new ValueParameter<ClassificationProblemData>(ClassificationProblemDataParameterName, "The data set, target variable and input variables of the data analysis problem.")); 54 58 ClassificationProblemData = new ClassificationProblemData(); 55 RegisterParameterEvents(); 56 RegisterParameterValueEvents(); 59 Initialize(); 57 60 } 58 61 59 62 [StorableHook(HookType.AfterDeserialization)] 60 private void AfterDeserializationHook() { 63 private void AfterDeserialization() { 64 Initialize(); 65 } 66 private void Initialize() { 61 67 RegisterParameterEvents(); 62 68 RegisterParameterValueEvents(); 63 }64 65 public override IDeepCloneable Clone(Cloner cloner) {66 SingleObjectiveClassificationProblem<T, U> clone = (SingleObjectiveClassificationProblem<T, U>)base.Clone(cloner);67 clone.RegisterParameterEvents();68 clone.RegisterParameterValueEvents();69 return clone;70 69 } 71 70 -
branches/CloningRefactoring/HeuristicLab.Problems.DataAnalysis.Classification/3.3/Symbolic/Analyzer/ValidationBestSymbolicClassificationSolutionAnalyzer.cs
r4469 r4678 23 23 using System.Linq; 24 24 using HeuristicLab.Analysis; 25 using HeuristicLab.Common; 25 26 using HeuristicLab.Core; 26 27 using HeuristicLab.Data; … … 180 181 #endregion 181 182 183 [StorableConstructor] 184 private ValidationBestSymbolicClassificationSolutionAnalyzer(bool deserializing) : base(deserializing) { } 185 protected ValidationBestSymbolicClassificationSolutionAnalyzer(ValidationBestSymbolicClassificationSolutionAnalyzer original, Cloner cloner) 186 : base(original, cloner) { 187 } 182 188 public ValidationBestSymbolicClassificationSolutionAnalyzer() 183 189 : base() { … … 204 210 } 205 211 206 [StorableConstructor] 207 private ValidationBestSymbolicClassificationSolutionAnalyzer(bool deserializing) : base(deserializing) { } 212 public override IDeepCloneable Clone(Cloner cloner) { 213 return new ValidationBestSymbolicClassificationSolutionAnalyzer(this, cloner); 214 } 208 215 209 216 public override IOperation Apply() { … … 304 311 } 305 312 } 306 307 313 } 308 314 } -
branches/CloningRefactoring/HeuristicLab.Problems.DataAnalysis.Classification/3.3/Symbolic/Evaluators/SymbolicClassificationMeanSquaredErrorEvaluator.cs
r4391 r4678 20 20 #endregion 21 21 22 using HeuristicLab.Common; 22 23 using HeuristicLab.Core; 23 24 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable; … … 27 28 [Item("SymbolicClassificationMeanSquaredErrorEvaluator", "Calculates the mean squared error of a symbolic classification solution.")] 28 29 [StorableClass] 29 public class SymbolicClassifacitionMeanSquaredErrorEvaluator : SymbolicRegressionMeanSquaredErrorEvaluator, ISymbolicClassificationEvaluator {30 public sealed class SymbolicClassifacitionMeanSquaredErrorEvaluator : SymbolicRegressionMeanSquaredErrorEvaluator, ISymbolicClassificationEvaluator { 30 31 public ClassificationProblemData ClassificationProblemData { 31 32 get { return (ClassificationProblemData)RegressionProblemData; } 32 33 } 33 34 34 public SymbolicClassifacitionMeanSquaredErrorEvaluator() 35 : base() { 35 [StorableConstructor] 36 private SymbolicClassifacitionMeanSquaredErrorEvaluator(bool deserializing) : base(deserializing) { } 37 private SymbolicClassifacitionMeanSquaredErrorEvaluator(SymbolicClassifacitionMeanSquaredErrorEvaluator original, Cloner cloner) : base(original, cloner) { } 38 public SymbolicClassifacitionMeanSquaredErrorEvaluator() : base() { } 39 public override IDeepCloneable Clone(Cloner cloner) { 40 return new SymbolicClassifacitionMeanSquaredErrorEvaluator(this, cloner); 36 41 } 37 42 } -
branches/CloningRefactoring/HeuristicLab.Problems.DataAnalysis.Classification/3.3/Symbolic/Evaluators/SymbolicClassificationPearsonRSquaredEvaluator.cs
r4392 r4678 20 20 #endregion 21 21 22 using HeuristicLab.Common; 22 23 using HeuristicLab.Core; 23 24 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable; … … 27 28 [Item("SymbolicClassificationPearsonRSquaredEvaluator", "Calculates the pearson R² correlation coefficient of a symbolic classification solution.")] 28 29 [StorableClass] 29 public class SymbolicClassificationPearsonRSquaredEvaluator : SymbolicRegressionPearsonsRSquaredEvaluator, ISymbolicClassificationEvaluator {30 public sealed class SymbolicClassificationPearsonRSquaredEvaluator : SymbolicRegressionPearsonsRSquaredEvaluator, ISymbolicClassificationEvaluator { 30 31 public ClassificationProblemData ClassificationProblemData { 31 32 get { return (ClassificationProblemData)RegressionProblemData; } 32 33 } 33 34 34 public SymbolicClassificationPearsonRSquaredEvaluator() 35 : base() { 35 [StorableConstructor] 36 private SymbolicClassificationPearsonRSquaredEvaluator(bool deserializing) : base(deserializing) { } 37 private SymbolicClassificationPearsonRSquaredEvaluator(SymbolicClassificationPearsonRSquaredEvaluator original, Cloner cloner) : base(original, cloner) { } 38 public SymbolicClassificationPearsonRSquaredEvaluator() : base() { } 39 40 public override IDeepCloneable Clone(Cloner cloner) { 41 return new SymbolicClassificationPearsonRSquaredEvaluator(this, cloner); 36 42 } 37 43 } -
branches/CloningRefactoring/HeuristicLab.Problems.DataAnalysis.Classification/3.3/Symbolic/SymbolicClassificationProblem.cs
r4452 r4678 42 42 [StorableClass] 43 43 [Creatable("Problems")] 44 public class SymbolicClassificationProblem : SingleObjectiveClassificationProblem<ISymbolicClassificationEvaluator, ISymbolicExpressionTreeCreator>, IStorableContent {44 public sealed class SymbolicClassificationProblem : SingleObjectiveClassificationProblem<ISymbolicClassificationEvaluator, ISymbolicExpressionTreeCreator>, IStorableContent { 45 45 private const string SymbolicExpressionTreeInterpreterParameterName = "SymbolicExpressionTreeInterpreter"; 46 46 private const string FunctionTreeGrammarParameterName = "FunctionTreeGrammar"; … … 133 133 134 134 [StorableConstructor] 135 protected SymbolicClassificationProblem(bool deserializing) : base(deserializing) { } 135 private SymbolicClassificationProblem(bool deserializing) : base(deserializing) { } 136 private SymbolicClassificationProblem(SymbolicClassificationProblem original, Cloner cloner) 137 : base(original, cloner) { 138 RegisterParameterEvents(); 139 140 UpdateEstimationLimits(); 141 ParameterizeEvaluator(); 142 ParameterizeSolutionCreator(); 143 ParameterizeGrammar(); 144 ParameterizeOperators(); 145 ParameterizeAnalyzers(); 146 } 136 147 public SymbolicClassificationProblem() 137 148 : base() { … … 167 178 } 168 179 169 170 [StorableHook(HookType.AfterDeserialization)] 171 private void AfterDeserialization() { 172 180 public override IDeepCloneable Clone(Cloner cloner) { 181 return new SymbolicClassificationProblem(this, cloner); 173 182 } 174 183 -
branches/CloningRefactoring/HeuristicLab.Problems.DataAnalysis.Classification/3.3/Symbolic/SymbolicClassificationSolution.cs
r4469 r4678 35 35 [StorableClass] 36 36 public class SymbolicClassificationSolution : SymbolicRegressionSolution, IClassificationSolution { 37 public new ClassificationProblemData ProblemData { 38 get { return (ClassificationProblemData)base.ProblemData; } 39 set { base.ProblemData = value; } 40 } 41 42 #region properties 43 private List<double> optimalThresholds; 44 private List<double> actualThresholds; 45 public IEnumerable<double> Thresholds { 46 get { 47 if (actualThresholds == null) RecalculateEstimatedValues(); 48 return actualThresholds; 49 } 50 set { 51 if (actualThresholds != null && actualThresholds.SequenceEqual(value)) 52 return; 53 actualThresholds = new List<double>(value); 54 OnThresholdsChanged(); 55 } 56 } 57 58 public IEnumerable<double> EstimatedClassValues { 59 get { return GetEstimatedClassValues(Enumerable.Range(0, ProblemData.Dataset.Rows)); } 60 } 61 62 public IEnumerable<double> EstimatedTrainingClassValues { 63 get { return GetEstimatedClassValues(ProblemData.TrainingIndizes); } 64 } 65 66 public IEnumerable<double> EstimatedTestClassValues { 67 get { return GetEstimatedClassValues(ProblemData.TestIndizes); } 68 } 69 70 [StorableConstructor] 71 protected SymbolicClassificationSolution(bool deserializing) : base(deserializing) { } 72 protected SymbolicClassificationSolution(SymbolicClassificationSolution original, Cloner cloner) : base(original, cloner) { } 37 73 private SymbolicClassificationSolution() : base() { } 38 74 public SymbolicClassificationSolution(ClassificationProblemData problemData, SymbolicRegressionModel model, double lowerEstimationLimit, double upperEstimationLimit) … … 40 76 } 41 77 42 public new ClassificationProblemData ProblemData { 43 get { return (ClassificationProblemData)base.ProblemData; } 44 set { base.ProblemData = value; } 78 public override IDeepCloneable Clone(Cloner cloner) { 79 return new SymbolicClassificationSolution(this, cloner); 45 80 } 46 81 … … 114 149 } 115 150 116 #region properties117 private List<double> optimalThresholds;118 private List<double> actualThresholds;119 public IEnumerable<double> Thresholds {120 get {121 if (actualThresholds == null) RecalculateEstimatedValues();122 return actualThresholds;123 }124 set {125 if (actualThresholds != null && actualThresholds.SequenceEqual(value))126 return;127 actualThresholds = new List<double>(value);128 OnThresholdsChanged();129 }130 }131 132 public IEnumerable<double> EstimatedClassValues {133 get { return GetEstimatedClassValues(Enumerable.Range(0, ProblemData.Dataset.Rows)); }134 }135 136 public IEnumerable<double> EstimatedTrainingClassValues {137 get { return GetEstimatedClassValues(ProblemData.TrainingIndizes); }138 }139 140 public IEnumerable<double> EstimatedTestClassValues {141 get { return GetEstimatedClassValues(ProblemData.TestIndizes); }142 }143 144 151 public IEnumerable<double> GetEstimatedClassValues(IEnumerable<int> rows) { 145 152 double[] classValues = ProblemData.SortedClassValues.ToArray();
Note: See TracChangeset
for help on using the changeset viewer.