- Timestamp:
- 03/19/11 02:22:45 (13 years ago)
- Location:
- branches/DataAnalysis Refactoring
- Files:
-
- 43 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/DataAnalysis Refactoring/HeuristicLab.Algorithms.DataAnalysis/3.4/CrossValidation.cs
r5659 r5759 271 271 clonedAlgorithm.Name = algorithm.Name + " Fold " + i; 272 272 IDataAnalysisProblem problem = clonedAlgorithm.Problem as IDataAnalysisProblem; 273 problem.ProblemData.TestPartition End.Value= (i + 1) == Folds.Value ? SamplesEnd.Value : (i + 1) * testSamplesCount + SamplesStart.Value;274 problem.ProblemData.TestPartition Start.Value= (i * testSamplesCount) + SamplesStart.Value;273 problem.ProblemData.TestPartition.End = (i + 1) == Folds.Value ? SamplesEnd.Value : (i + 1) * testSamplesCount + SamplesStart.Value; 274 problem.ProblemData.TestPartition.Start = (i * testSamplesCount) + SamplesStart.Value; 275 275 clonedAlgorithms.Add(clonedAlgorithm); 276 276 } … … 408 408 } 409 409 private void SamplesStart_ValueChanged(object sender, EventArgs e) { 410 if (Problem != null) Problem.ProblemData.TrainingPartition Start.Value= SamplesStart.Value;410 if (Problem != null) Problem.ProblemData.TrainingPartition.Start = SamplesStart.Value; 411 411 } 412 412 private void SamplesEnd_ValueChanged(object sender, EventArgs e) { 413 if (Problem != null) Problem.ProblemData.TrainingPartition End.Value= SamplesEnd.Value;413 if (Problem != null) Problem.ProblemData.TrainingPartition.End = SamplesEnd.Value; 414 414 } 415 415 -
branches/DataAnalysis Refactoring/HeuristicLab.Algorithms.DataAnalysis/3.4/Linear/LinearDiscriminantAnalysis.cs
r5736 r5759 71 71 string targetVariable = problemData.TargetVariable; 72 72 IEnumerable<string> allowedInputVariables = problemData.AllowedInputVariables; 73 int samplesStart = problemData.TrainingPartition Start.Value;74 int samplesEnd = problemData.TrainingPartition End.Value;73 int samplesStart = problemData.TrainingPartition.Start; 74 int samplesEnd = problemData.TrainingPartition.End; 75 75 IEnumerable<int> rows = Enumerable.Range(samplesStart, samplesEnd - samplesStart); 76 76 int nClasses = problemData.ClassNames.Count(); -
branches/DataAnalysis Refactoring/HeuristicLab.Algorithms.DataAnalysis/3.4/Linear/LinearRegression.cs
r5733 r5759 73 73 string targetVariable = problemData.TargetVariable; 74 74 IEnumerable<string> allowedInputVariables = problemData.AllowedInputVariables; 75 int samplesStart = problemData.TrainingPartition Start.Value;76 int samplesEnd = problemData.TrainingPartition End.Value;75 int samplesStart = problemData.TrainingPartition.Start; 76 int samplesEnd = problemData.TrainingPartition.End; 77 77 IEnumerable<int> rows = Enumerable.Range(samplesStart, samplesEnd - samplesStart); 78 78 double[,] inputMatrix = AlglibUtil.PrepareInputMatrix(dataset, allowedInputVariables.Concat(new string[] { targetVariable }), rows); -
branches/DataAnalysis Refactoring/HeuristicLab.Algorithms.DataAnalysis/3.4/SupportVectorMachine/SupportVectorClassification.cs
r5690 r5759 21 21 22 22 using System; 23 using System.Collections.Generic; 23 24 using System.Linq; 24 25 using HeuristicLab.Common; … … 29 30 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable; 30 31 using HeuristicLab.Problems.DataAnalysis; 31 using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding;32 using System.Collections.Generic;33 using HeuristicLab.Problems.DataAnalysis.Symbolic;34 32 35 33 namespace HeuristicLab.Algorithms.DataAnalysis { … … 124 122 Dataset dataset = problemData.Dataset; 125 123 string targetVariable = problemData.TargetVariable; 126 int start = problemData.TrainingPartition Start.Value;127 int end = problemData.TrainingPartition End.Value;124 int start = problemData.TrainingPartition.Start; 125 int end = problemData.TrainingPartition.End; 128 126 IEnumerable<int> rows = Enumerable.Range(start, end - start); 129 127 -
branches/DataAnalysis Refactoring/HeuristicLab.Algorithms.DataAnalysis/3.4/SupportVectorMachine/SupportVectorRegression.cs
r5649 r5759 132 132 Dataset dataset = problemData.Dataset; 133 133 string targetVariable = problemData.TargetVariable; 134 int start = problemData.TrainingPartition Start.Value;135 int end = problemData.TrainingPartition End.Value;134 int start = problemData.TrainingPartition.Start; 135 int end = problemData.TrainingPartition.End; 136 136 IEnumerable<int> rows = Enumerable.Range(start, end - start); 137 137 -
branches/DataAnalysis Refactoring/HeuristicLab.Algorithms.DataAnalysis/3.4/kMeans/KMeansClustering.cs
r5658 r5759 88 88 Dataset dataset = problemData.Dataset; 89 89 IEnumerable<string> allowedInputVariables = problemData.AllowedInputVariables; 90 int start = problemData.TrainingPartition Start.Value;91 int end = problemData.TrainingPartition End.Value;90 int start = problemData.TrainingPartition.Start; 91 int end = problemData.TrainingPartition.End; 92 92 IEnumerable<int> rows = Enumerable.Range(start, end - start); 93 93 int info; -
branches/DataAnalysis Refactoring/HeuristicLab.Data.Views/3.3/StringConvertibleValueTupleView.cs
r5757 r5759 48 48 protected override void OnContentChanged() { 49 49 base.OnContentChanged(); 50 Item1View.Content = Content.Item1; 51 Item2View.Content = Content.Item2; 50 if (Content != null) { 51 Item1View.Content = Content.Item1; 52 Item2View.Content = Content.Item2; 53 } else { 54 Item1View.Content = null; 55 Item2View.Content = null; 56 } 52 57 } 53 58 -
branches/DataAnalysis Refactoring/HeuristicLab.Data/3.3/DoubleRange.cs
r5757 r5759 30 30 public class DoubleRange : StringConvertibleValueTuple<DoubleValue, DoubleValue> { 31 31 32 public DoubleValue Start { get { return Item1; } } 33 public DoubleValue End { get { return Item2; } } 32 public double Start { 33 get { return Item1.Value; } 34 set { Item1.Value = value; } 35 } 36 public double End { 37 get { return Item2.Value; } 38 set { Item2.Value = value; } 39 } 34 40 35 41 [StorableConstructor] … … 42 48 } 43 49 44 public DoubleRange() : base( ) { }50 public DoubleRange() : base(new DoubleValue(), new DoubleValue()) { } 45 51 public DoubleRange(DoubleValue start, DoubleValue end) : base(start, end) { } 52 public DoubleRange(double start, double end) : base(new DoubleValue(start), new DoubleValue(end)) { } 46 53 47 54 public override string ToString() { … … 51 58 public override StringConvertibleValueTuple<DoubleValue, DoubleValue> AsReadOnly() { 52 59 var readOnly = new DoubleRange(); 53 readOnly.values = Tuple.Create<DoubleValue, DoubleValue>((DoubleValue) Start.AsReadOnly(), (DoubleValue)End.AsReadOnly());60 readOnly.values = Tuple.Create<DoubleValue, DoubleValue>((DoubleValue)Item1.AsReadOnly(), (DoubleValue)Item2.AsReadOnly()); 54 61 readOnly.readOnly = true; 55 62 return readOnly; -
branches/DataAnalysis Refactoring/HeuristicLab.Data/3.3/IntRange.cs
r5757 r5759 30 30 public class IntRange : StringConvertibleValueTuple<IntValue, IntValue> { 31 31 32 public IntValue Start { get { return Item1; } } 33 public IntValue End { get { return Item2; } } 32 public int Start { 33 get { return Item1.Value; } 34 set { Item1.Value = value; } 35 } 36 public int End { 37 get { return Item2.Value; } 38 set { Item2.Value = value; } 39 } 34 40 35 41 [StorableConstructor] … … 42 48 } 43 49 44 public IntRange() : base( ) { }50 public IntRange() : base(new IntValue(), new IntValue()) { } 45 51 public IntRange(IntValue start, IntValue end) : base(start, end) { } 52 public IntRange(int start, int end) : base(new IntValue(start), new IntValue(end)) { } 46 53 47 54 public override string ToString() { … … 51 58 public override StringConvertibleValueTuple<IntValue, IntValue> AsReadOnly() { 52 59 var readOnly = new IntRange(); 53 readOnly.values = Tuple.Create<IntValue, IntValue>((IntValue) Start.AsReadOnly(), (IntValue)End.AsReadOnly());60 readOnly.values = Tuple.Create<IntValue, IntValue>((IntValue)Item1.AsReadOnly(), (IntValue)Item2.AsReadOnly()); 54 61 readOnly.readOnly = true; 55 62 return readOnly; -
branches/DataAnalysis Refactoring/HeuristicLab.Data/3.3/StringConvertibleValueTuple.cs
r5757 r5759 55 55 } 56 56 57 public StringConvertibleValueTuple()58 : base() {59 values = Tuple.Create<T, U>(default(T), default(U));60 readOnly = false;61 RegisterEventHandler();62 }63 57 public StringConvertibleValueTuple(T item1, U item2) 64 58 : base() { -
branches/DataAnalysis Refactoring/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.4/Tests/AllArchitectureAlteringOperatorsTest.cs
r5733 r5759 32 32 public class AllArchitectureAlteringOperatorsTest { 33 33 private const int POPULATION_SIZE = 1000; 34 private const int N_ITERATIONS = 20;34 private const int N_ITERATIONS = 100; 35 35 private const int MAX_TREE_LENGTH = 100; 36 36 private const int MAX_TREE_DEPTH = 10; -
branches/DataAnalysis Refactoring/HeuristicLab.Problems.DataAnalysis.Symbolic.Classification/3.4/MultiObjective/SymbolicClassificationMultiObjectiveMeanSquaredErrorTreeSizeEvaluator.cs
r5747 r5759 26 26 using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding; 27 27 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable; 28 using System;29 28 30 29 namespace HeuristicLab.Problems.DataAnalysis.Symbolic.Classification { … … 47 46 public override IOperation Apply() { 48 47 IEnumerable<int> rows = GenerateRowsToEvaluate(); 49 double[] qualities = Calculate(SymbolicDataAnalysisTreeInterpreterParameter.ActualValue, SymbolicExpressionTreeParameter.ActualValue, LowerEstimationLimit .Value, UpperEstimationLimit.Value, ProblemData, rows);48 double[] qualities = Calculate(SymbolicDataAnalysisTreeInterpreterParameter.ActualValue, SymbolicExpressionTreeParameter.ActualValue, LowerEstimationLimitParameter.ActualValue.Value, UpperEstimationLimitParameter.ActualValue.Value, ProblemDataParameter.ActualValue, rows); 50 49 QualitiesParameter.ActualValue = new DoubleArray(qualities); 51 50 return base.Apply(); … … 65 64 UpperEstimationLimitParameter.ExecutionContext = context; 66 65 67 double[] quality = Calculate(SymbolicDataAnalysisTreeInterpreter , tree, LowerEstimationLimit.Value, UpperEstimationLimit.Value, problemData, rows);66 double[] quality = Calculate(SymbolicDataAnalysisTreeInterpreterParameter.ActualValue, tree, LowerEstimationLimitParameter.ActualValue.Value, UpperEstimationLimitParameter.ActualValue.Value, problemData, rows); 68 67 69 68 SymbolicDataAnalysisTreeInterpreterParameter.ExecutionContext = null; -
branches/DataAnalysis Refactoring/HeuristicLab.Problems.DataAnalysis.Symbolic.Classification/3.4/MultiObjective/SymbolicClassificationMultiObjectivePearsonRSquaredTreeSizeEvaluator.cs
r5747 r5759 1 using System.Collections.Generic; 1 using System; 2 using System.Collections.Generic; 2 3 using HeuristicLab.Common; 3 4 using HeuristicLab.Core; … … 5 6 using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding; 6 7 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable; 7 using System;8 8 9 9 namespace HeuristicLab.Problems.DataAnalysis.Symbolic.Classification { … … 26 26 public override IOperation Apply() { 27 27 IEnumerable<int> rows = GenerateRowsToEvaluate(); 28 double[] qualities = Calculate(SymbolicDataAnalysisTreeInterpreterParameter.ActualValue, SymbolicExpressionTreeParameter.ActualValue, LowerEstimationLimit .Value, UpperEstimationLimit.Value, ProblemData, rows);28 double[] qualities = Calculate(SymbolicDataAnalysisTreeInterpreterParameter.ActualValue, SymbolicExpressionTreeParameter.ActualValue, LowerEstimationLimitParameter.ActualValue.Value, UpperEstimationLimitParameter.ActualValue.Value, ProblemDataParameter.ActualValue, rows); 29 29 QualitiesParameter.ActualValue = new DoubleArray(qualities); 30 30 return base.Apply(); … … 49 49 UpperEstimationLimitParameter.ExecutionContext = context; 50 50 51 double[] quality = Calculate(SymbolicDataAnalysisTreeInterpreter , tree, LowerEstimationLimit.Value, UpperEstimationLimit.Value, problemData, rows);51 double[] quality = Calculate(SymbolicDataAnalysisTreeInterpreterParameter.ActualValue, tree, LowerEstimationLimitParameter.ActualValue.Value, UpperEstimationLimitParameter.ActualValue.Value, problemData, rows); 52 52 53 53 SymbolicDataAnalysisTreeInterpreterParameter.ExecutionContext = null; -
branches/DataAnalysis Refactoring/HeuristicLab.Problems.DataAnalysis.Symbolic.Classification/3.4/MultiObjective/SymbolicClassificationMultiObjectiveProblem.cs
r5733 r5759 71 71 InitializeOperators(); 72 72 UpdateEstimationLimits(); 73 UpdateDatasetPartitions();74 73 } 75 74 … … 81 80 82 81 private void UpdateEstimationLimits() { 83 if (ProblemData.TrainingPartition Start.Value < ProblemData.TrainingPartitionEnd.Value) {84 var targetValues = ProblemData.Dataset.GetVariableValues(ProblemData.TargetVariable, ProblemData.TrainingPartition Start.Value, ProblemData.TrainingPartitionEnd.Value);82 if (ProblemData.TrainingPartition.Start < ProblemData.TrainingPartition.End) { 83 var targetValues = ProblemData.Dataset.GetVariableValues(ProblemData.TargetVariable, ProblemData.TrainingPartition.Start, ProblemData.TrainingPartition.End); 85 84 var mean = targetValues.Average(); 86 85 var range = targetValues.Max() - targetValues.Min(); -
branches/DataAnalysis Refactoring/HeuristicLab.Problems.DataAnalysis.Symbolic.Classification/3.4/MultiObjective/SymbolicClassificationMultiObjectiveValidationBestSolutionAnalyzer.cs
r5736 r5759 20 20 #endregion 21 21 22 using System.Collections.Generic;23 using System.Linq;24 22 using HeuristicLab.Common; 25 23 using HeuristicLab.Core; 26 24 using HeuristicLab.Data; 27 25 using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding; 28 using HeuristicLab.Operators;29 using HeuristicLab.Optimization;30 26 using HeuristicLab.Parameters; 31 27 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable; … … 47 43 get { return (IValueLookupParameter<DoubleValue>)Parameters[UpperEstimationLimitParameterName]; } 48 44 } 49 50 45 public IValueLookupParameter<DoubleValue> LowerEstimationLimitParameter { 51 46 get { return (IValueLookupParameter<DoubleValue>)Parameters[LowerEstimationLimitParameterName]; } … … 57 52 58 53 #region properties 59 public DoubleValue UpperEstimationLimit {60 get { return UpperEstimationLimitParameter.ActualValue; }61 }62 public DoubleValue LowerEstimationLimit {63 get { return LowerEstimationLimitParameter.ActualValue; }64 }65 54 public BoolValue ApplyLinearScaling { 66 55 get { return ApplyLinearScalingParameter.Value; } … … 81 70 82 71 protected override ISymbolicClassificationSolution CreateSolution(ISymbolicExpressionTree bestTree, double[] bestQualities) { 83 var model = new SymbolicDiscriminantFunctionClassificationModel(bestTree, SymbolicDataAnalysisTreeInterpreter , LowerEstimationLimit.Value, UpperEstimationLimit.Value);84 var solution = new SymbolicDiscriminantFunctionClassificationSolution(model, ProblemData );72 var model = new SymbolicDiscriminantFunctionClassificationModel(bestTree, SymbolicDataAnalysisTreeInterpreterParameter.ActualValue, LowerEstimationLimitParameter.ActualValue.Value, UpperEstimationLimitParameter.ActualValue.Value); 73 var solution = new SymbolicDiscriminantFunctionClassificationSolution(model, ProblemDataParameter.ActualValue); 85 74 if (ApplyLinearScaling.Value) { 86 75 solution.ScaleModel(); -
branches/DataAnalysis Refactoring/HeuristicLab.Problems.DataAnalysis.Symbolic.Classification/3.4/SingleObjective/SymbolicClassificationSingleObjectiveBoundedMeanSquaredErrorEvaluator.cs
r5747 r5759 47 47 public override IOperation Apply() { 48 48 IEnumerable<int> rows = GenerateRowsToEvaluate(); 49 double quality = Calculate(SymbolicDataAnalysisTreeInterpreterParameter.ActualValue, SymbolicExpressionTreeParameter.ActualValue, LowerEstimationLimit .Value, UpperEstimationLimit.Value, ProblemData, rows);49 double quality = Calculate(SymbolicDataAnalysisTreeInterpreterParameter.ActualValue, SymbolicExpressionTreeParameter.ActualValue, LowerEstimationLimitParameter.ActualValue.Value, UpperEstimationLimitParameter.ActualValue.Value, ProblemDataParameter.ActualValue, rows); 50 50 QualityParameter.ActualValue = new DoubleValue(quality); 51 51 return base.Apply(); … … 88 88 89 89 public override double Evaluate(IExecutionContext context, ISymbolicExpressionTree tree, IClassificationProblemData problemData, IEnumerable<int> rows) { 90 return Calculate(SymbolicDataAnalysisTreeInterpreter , tree, LowerEstimationLimit.Value, UpperEstimationLimit.Value, problemData, rows);90 return Calculate(SymbolicDataAnalysisTreeInterpreterParameter.ActualValue, tree, LowerEstimationLimitParameter.ActualValue.Value, UpperEstimationLimitParameter.ActualValue.Value, problemData, rows); 91 91 } 92 92 } -
branches/DataAnalysis Refactoring/HeuristicLab.Problems.DataAnalysis.Symbolic.Classification/3.4/SingleObjective/SymbolicClassificationSingleObjectiveMeanSquaredErrorEvaluator.cs
r5747 r5759 26 26 using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding; 27 27 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable; 28 using System;29 28 30 29 namespace HeuristicLab.Problems.DataAnalysis.Symbolic.Classification { … … 47 46 public override IOperation Apply() { 48 47 IEnumerable<int> rows = GenerateRowsToEvaluate(); 49 double quality = Calculate(SymbolicDataAnalysisTreeInterpreterParameter.ActualValue, SymbolicExpressionTreeParameter.ActualValue, LowerEstimationLimit .Value, UpperEstimationLimit.Value, ProblemData, rows);48 double quality = Calculate(SymbolicDataAnalysisTreeInterpreterParameter.ActualValue, SymbolicExpressionTreeParameter.ActualValue, LowerEstimationLimitParameter.ActualValue.Value, UpperEstimationLimitParameter.ActualValue.Value, ProblemDataParameter.ActualValue, rows); 50 49 QualityParameter.ActualValue = new DoubleValue(quality); 51 50 return base.Apply(); … … 64 63 UpperEstimationLimitParameter.ExecutionContext = context; 65 64 66 double mse = Calculate(SymbolicDataAnalysisTreeInterpreter , tree, LowerEstimationLimit.Value, UpperEstimationLimit.Value, problemData, rows);65 double mse = Calculate(SymbolicDataAnalysisTreeInterpreterParameter.ActualValue, tree, LowerEstimationLimitParameter.ActualValue.Value, UpperEstimationLimitParameter.ActualValue.Value, problemData, rows); 67 66 68 67 SymbolicDataAnalysisTreeInterpreterParameter.ExecutionContext = null; -
branches/DataAnalysis Refactoring/HeuristicLab.Problems.DataAnalysis.Symbolic.Classification/3.4/SingleObjective/SymbolicClassificationSingleObjectiveOverfittingAnalyzer.cs
r5747 r5759 20 20 #endregion 21 21 22 using System.Collections.Generic;23 22 using System.Linq; 24 23 using HeuristicLab.Analysis; … … 26 25 using HeuristicLab.Core; 27 26 using HeuristicLab.Data; 28 using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding;29 using HeuristicLab.Operators;30 27 using HeuristicLab.Optimization; 31 28 using HeuristicLab.Parameters; 32 29 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable; 33 using HeuristicLab.Problems.DataAnalysis.Symbolic;34 using System;35 30 36 31 namespace HeuristicLab.Problems.DataAnalysis.Symbolic.Classification { … … 81 76 double[] trainingQuality = QualityParameter.ActualValue.Select(x => x.Value).ToArray(); 82 77 // evaluate on validation partition 83 int start = Validation SamplesStart.Value;84 int end = Validation SamplesEnd.Value;78 int start = ValidationPartitionParameter.ActualValue.Start; 79 int end = ValidationPartitionParameter.ActualValue.End; 85 80 var rows = Enumerable.Range(start, end - start); 86 IExecutionContext childContext = (IExecutionContext)ExecutionContext.CreateChildOperation(Evaluator );81 IExecutionContext childContext = (IExecutionContext)ExecutionContext.CreateChildOperation(EvaluatorParameter.ActualValue); 87 82 double[] validationQuality = (from tree in SymbolicExpressionTrees 88 select Evaluator .Evaluate(childContext, tree, ProblemData, rows))83 select EvaluatorParameter.ActualValue.Evaluate(childContext, tree, ProblemDataParameter.ActualValue, rows)) 89 84 .ToArray(); 90 85 double r = alglib.spearmancorr2(trainingQuality, validationQuality); -
branches/DataAnalysis Refactoring/HeuristicLab.Problems.DataAnalysis.Symbolic.Classification/3.4/SingleObjective/SymbolicClassificationSingleObjectivePearsonRSquaredEvaluator.cs
r5747 r5759 20 20 #endregion 21 21 22 using System; 22 23 using System.Collections.Generic; 23 24 using HeuristicLab.Common; … … 26 27 using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding; 27 28 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable; 28 using System;29 29 30 30 namespace HeuristicLab.Problems.DataAnalysis.Symbolic.Classification { … … 47 47 public override IOperation Apply() { 48 48 IEnumerable<int> rows = GenerateRowsToEvaluate(); 49 double quality = Calculate(SymbolicDataAnalysisTreeInterpreterParameter.ActualValue, SymbolicExpressionTreeParameter.ActualValue, LowerEstimationLimit .Value, UpperEstimationLimit.Value, ProblemData, rows);49 double quality = Calculate(SymbolicDataAnalysisTreeInterpreterParameter.ActualValue, SymbolicExpressionTreeParameter.ActualValue, LowerEstimationLimitParameter.ActualValue.Value, UpperEstimationLimitParameter.ActualValue.Value, ProblemDataParameter.ActualValue, rows); 50 50 QualityParameter.ActualValue = new DoubleValue(quality); 51 51 return base.Apply(); … … 69 69 UpperEstimationLimitParameter.ExecutionContext = context; 70 70 71 double r2 = Calculate(SymbolicDataAnalysisTreeInterpreter , tree, LowerEstimationLimit.Value, UpperEstimationLimit.Value, problemData, rows);71 double r2 = Calculate(SymbolicDataAnalysisTreeInterpreterParameter.ActualValue, tree, LowerEstimationLimitParameter.ActualValue.Value, UpperEstimationLimitParameter.ActualValue.Value, problemData, rows); 72 72 73 73 SymbolicDataAnalysisTreeInterpreterParameter.ExecutionContext = null; -
branches/DataAnalysis Refactoring/HeuristicLab.Problems.DataAnalysis.Symbolic.Classification/3.4/SingleObjective/SymbolicClassificationSingleObjectiveProblem.cs
r5747 r5759 70 70 InitializeOperators(); 71 71 UpdateEstimationLimits(); 72 UpdateDatasetPartitions();73 72 } 74 73 … … 81 80 82 81 private void UpdateEstimationLimits() { 83 if (ProblemData.TrainingPartition Start.Value < ProblemData.TrainingPartitionEnd.Value) {84 var targetValues = ProblemData.Dataset.GetVariableValues(ProblemData.TargetVariable, ProblemData.TrainingPartition Start.Value, ProblemData.TrainingPartitionEnd.Value);82 if (ProblemData.TrainingPartition.Start < ProblemData.TrainingPartition.End) { 83 var targetValues = ProblemData.Dataset.GetVariableValues(ProblemData.TargetVariable, ProblemData.TrainingPartition.Start, ProblemData.TrainingPartition.End); 85 84 var mean = targetValues.Average(); 86 85 var range = targetValues.Max() - targetValues.Min(); -
branches/DataAnalysis Refactoring/HeuristicLab.Problems.DataAnalysis.Symbolic.Classification/3.4/SingleObjective/SymbolicClassificationSingleObjectiveValidationBestSolutionAnalyzer.cs
r5736 r5759 20 20 #endregion 21 21 22 using System.Collections.Generic;23 using System.Linq;24 22 using HeuristicLab.Common; 25 23 using HeuristicLab.Core; 26 24 using HeuristicLab.Data; 27 25 using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding; 28 using HeuristicLab.Operators;29 using HeuristicLab.Optimization;30 26 using HeuristicLab.Parameters; 31 27 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable; … … 47 43 get { return (IValueLookupParameter<DoubleValue>)Parameters[UpperEstimationLimitParameterName]; } 48 44 } 49 50 45 public IValueLookupParameter<DoubleValue> LowerEstimationLimitParameter { 51 46 get { return (IValueLookupParameter<DoubleValue>)Parameters[LowerEstimationLimitParameterName]; } 52 47 } 53 54 48 public IValueParameter<BoolValue> ApplyLinearScalingParameter { 55 49 get { return (IValueParameter<BoolValue>)Parameters[ApplyLinearScalingParameterName]; } … … 58 52 59 53 #region properties 60 public DoubleValue UpperEstimationLimit {61 get { return UpperEstimationLimitParameter.ActualValue; }62 }63 public DoubleValue LowerEstimationLimit {64 get { return LowerEstimationLimitParameter.ActualValue; }65 }66 54 public BoolValue ApplyLinearScaling { 67 55 get { return ApplyLinearScalingParameter.Value; } … … 82 70 83 71 protected override ISymbolicClassificationSolution CreateSolution(ISymbolicExpressionTree bestTree, double bestQuality) { 84 var model = new SymbolicDiscriminantFunctionClassificationModel(bestTree, SymbolicDataAnalysisTreeInterpreter , LowerEstimationLimit.Value, UpperEstimationLimit.Value);85 var solution = new SymbolicDiscriminantFunctionClassificationSolution(model, ProblemData );72 var model = new SymbolicDiscriminantFunctionClassificationModel(bestTree, SymbolicDataAnalysisTreeInterpreterParameter.ActualValue, LowerEstimationLimitParameter.ActualValue.Value, UpperEstimationLimitParameter.ActualValue.Value); 73 var solution = new SymbolicDiscriminantFunctionClassificationSolution(model, ProblemDataParameter.ActualValue); 86 74 if (ApplyLinearScaling.Value) { 87 75 solution.ScaleModel(); -
branches/DataAnalysis Refactoring/HeuristicLab.Problems.DataAnalysis.Symbolic.Regression/3.4/MultiObjective/SymbolicRegressionMultiObjectiveMeanSquaredErrorTreeSizeEvaluator.cs
r5747 r5759 26 26 using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding; 27 27 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable; 28 using System;29 28 30 29 namespace HeuristicLab.Problems.DataAnalysis.Symbolic.Regression { … … 47 46 public override Core.IOperation Apply() { 48 47 IEnumerable<int> rows = GenerateRowsToEvaluate(); 49 double[] qualities = Calculate(SymbolicDataAnalysisTreeInterpreterParameter.ActualValue, SymbolicExpressionTreeParameter.ActualValue, LowerEstimationLimit .Value, UpperEstimationLimit.Value, ProblemData, rows);48 double[] qualities = Calculate(SymbolicDataAnalysisTreeInterpreterParameter.ActualValue, SymbolicExpressionTreeParameter.ActualValue, LowerEstimationLimitParameter.ActualValue.Value, UpperEstimationLimitParameter.ActualValue.Value, ProblemDataParameter.ActualValue, rows); 50 49 QualitiesParameter.ActualValue = new DoubleArray(qualities); 51 50 return base.Apply(); … … 65 64 UpperEstimationLimitParameter.ExecutionContext = context; 66 65 67 double[] quality = Calculate(SymbolicDataAnalysisTreeInterpreter , tree, LowerEstimationLimit.Value, UpperEstimationLimit.Value, problemData, rows);66 double[] quality = Calculate(SymbolicDataAnalysisTreeInterpreterParameter.ActualValue, tree, LowerEstimationLimitParameter.ActualValue.Value, UpperEstimationLimitParameter.ActualValue.Value, problemData, rows); 68 67 69 68 SymbolicDataAnalysisTreeInterpreterParameter.ExecutionContext = null; -
branches/DataAnalysis Refactoring/HeuristicLab.Problems.DataAnalysis.Symbolic.Regression/3.4/MultiObjective/SymbolicRegressionMultiObjectivePearsonRSquaredTreeSizeEvaluator.cs
r5747 r5759 20 20 #endregion 21 21 22 using System; 22 23 using System.Collections.Generic; 23 24 using HeuristicLab.Common; … … 26 27 using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding; 27 28 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable; 28 using System;29 29 30 30 namespace HeuristicLab.Problems.DataAnalysis.Symbolic.Regression { … … 47 47 public override IOperation Apply() { 48 48 IEnumerable<int> rows = GenerateRowsToEvaluate(); 49 double[] qualities = Calculate(SymbolicDataAnalysisTreeInterpreterParameter.ActualValue, SymbolicExpressionTreeParameter.ActualValue, LowerEstimationLimit .Value, UpperEstimationLimit.Value, ProblemData, rows);49 double[] qualities = Calculate(SymbolicDataAnalysisTreeInterpreterParameter.ActualValue, SymbolicExpressionTreeParameter.ActualValue, LowerEstimationLimitParameter.ActualValue.Value, UpperEstimationLimitParameter.ActualValue.Value, ProblemDataParameter.ActualValue, rows); 50 50 QualitiesParameter.ActualValue = new DoubleArray(qualities); 51 51 return base.Apply(); … … 70 70 UpperEstimationLimitParameter.ExecutionContext = context; 71 71 72 double[] quality = Calculate(SymbolicDataAnalysisTreeInterpreter , tree, LowerEstimationLimit.Value, UpperEstimationLimit.Value, problemData, rows);72 double[] quality = Calculate(SymbolicDataAnalysisTreeInterpreterParameter.ActualValue, tree, LowerEstimationLimitParameter.ActualValue.Value, UpperEstimationLimitParameter.ActualValue.Value, problemData, rows); 73 73 74 74 SymbolicDataAnalysisTreeInterpreterParameter.ExecutionContext = null; -
branches/DataAnalysis Refactoring/HeuristicLab.Problems.DataAnalysis.Symbolic.Regression/3.4/MultiObjective/SymbolicRegressionMultiObjectiveProblem.cs
r5742 r5759 72 72 InitializeOperators(); 73 73 UpdateEstimationLimits(); 74 UpdateDatasetPartitions();75 74 } 76 75 … … 82 81 83 82 private void UpdateEstimationLimits() { 84 if (ProblemData.TrainingPartition Start.Value < ProblemData.TrainingPartitionEnd.Value) {85 var targetValues = ProblemData.Dataset.GetVariableValues(ProblemData.TargetVariable, ProblemData.TrainingPartition Start.Value, ProblemData.TrainingPartitionEnd.Value);83 if (ProblemData.TrainingPartition.Start < ProblemData.TrainingPartition.End) { 84 var targetValues = ProblemData.Dataset.GetVariableValues(ProblemData.TargetVariable, ProblemData.TrainingPartition.Start, ProblemData.TrainingPartition.End); 86 85 var mean = targetValues.Average(); 87 86 var range = targetValues.Max() - targetValues.Min(); -
branches/DataAnalysis Refactoring/HeuristicLab.Problems.DataAnalysis.Symbolic.Regression/3.4/MultiObjective/SymbolicRegressionMultiObjectiveValidationBestSolutionAnalyzer.cs
r5729 r5759 20 20 #endregion 21 21 22 using System.Collections.Generic;23 using System.Linq;24 22 using HeuristicLab.Common; 25 23 using HeuristicLab.Core; 26 24 using HeuristicLab.Data; 27 25 using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding; 28 using HeuristicLab.Operators;29 using HeuristicLab.Optimization;30 26 using HeuristicLab.Parameters; 31 27 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable; … … 51 47 get { return (IValueLookupParameter<DoubleValue>)Parameters[LowerEstimationLimitParameterName]; } 52 48 } 53 49 public IValueParameter<BoolValue> ApplyLinearScalingParameter { 54 50 get { return (IValueParameter<BoolValue>)Parameters[ApplyLinearScalingParameterName]; } 55 51 } … … 57 53 58 54 #region properties 59 public DoubleValue UpperEstimationLimit {60 get { return UpperEstimationLimitParameter.ActualValue; }61 }62 public DoubleValue LowerEstimationLimit {63 get { return LowerEstimationLimitParameter.ActualValue; }64 }65 55 public BoolValue ApplyLinearScaling { 66 56 get { return ApplyLinearScalingParameter.Value; } … … 81 71 82 72 protected override ISymbolicRegressionSolution CreateSolution(ISymbolicExpressionTree bestTree, double[] bestQuality) { 83 var model = new SymbolicRegressionModel(bestTree, SymbolicDataAnalysisTreeInterpreter , LowerEstimationLimit.Value, UpperEstimationLimit.Value);84 var solution = new SymbolicRegressionSolution(model, ProblemData );73 var model = new SymbolicRegressionModel(bestTree, SymbolicDataAnalysisTreeInterpreterParameter.ActualValue, LowerEstimationLimitParameter.ActualValue.Value, UpperEstimationLimitParameter.ActualValue.Value); 74 var solution = new SymbolicRegressionSolution(model, ProblemDataParameter.ActualValue); 85 75 if (ApplyLinearScaling.Value) 86 76 solution.ScaleModel(); -
branches/DataAnalysis Refactoring/HeuristicLab.Problems.DataAnalysis.Symbolic.Regression/3.4/SingleObjective/SymbolicRegressionSingleObjectiveMeanSquaredErrorEvaluator.cs
r5747 r5759 26 26 using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding; 27 27 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable; 28 using System;29 28 30 29 namespace HeuristicLab.Problems.DataAnalysis.Symbolic.Regression { … … 47 46 public override IOperation Apply() { 48 47 IEnumerable<int> rows = GenerateRowsToEvaluate(); 49 double quality = Calculate(SymbolicDataAnalysisTreeInterpreter , SymbolicExpressionTree, LowerEstimationLimit.Value, UpperEstimationLimit.Value, ProblemData, rows);48 double quality = Calculate(SymbolicDataAnalysisTreeInterpreterParameter.ActualValue, SymbolicExpressionTreeParameter.ActualValue, LowerEstimationLimitParameter.ActualValue.Value, UpperEstimationLimitParameter.ActualValue.Value, ProblemDataParameter.ActualValue, rows); 50 49 Quality = new DoubleValue(quality); 51 50 return base.Apply(); … … 64 63 UpperEstimationLimitParameter.ExecutionContext = context; 65 64 66 double mse = Calculate(SymbolicDataAnalysisTreeInterpreter , tree, LowerEstimationLimit.Value, UpperEstimationLimit.Value, problemData, rows);65 double mse = Calculate(SymbolicDataAnalysisTreeInterpreterParameter.ActualValue, tree, LowerEstimationLimitParameter.ActualValue.Value, UpperEstimationLimitParameter.ActualValue.Value, problemData, rows); 67 66 68 67 SymbolicDataAnalysisTreeInterpreterParameter.ExecutionContext = null; -
branches/DataAnalysis Refactoring/HeuristicLab.Problems.DataAnalysis.Symbolic.Regression/3.4/SingleObjective/SymbolicRegressionSingleObjectiveOverfittingAnalyzer.cs
r5747 r5759 20 20 #endregion 21 21 22 using System.Collections.Generic;23 22 using System.Linq; 24 23 using HeuristicLab.Analysis; … … 26 25 using HeuristicLab.Core; 27 26 using HeuristicLab.Data; 28 using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding;29 using HeuristicLab.Operators;30 27 using HeuristicLab.Optimization; 31 28 using HeuristicLab.Parameters; 32 29 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable; 33 using HeuristicLab.Problems.DataAnalysis.Symbolic;34 using System;35 30 36 31 namespace HeuristicLab.Problems.DataAnalysis.Symbolic.Regression { … … 81 76 double[] trainingQuality = QualityParameter.ActualValue.Select(x => x.Value).ToArray(); 82 77 // evaluate on validation partition 83 int start = Validation SamplesStart.Value;84 int end = Validation SamplesEnd.Value;78 int start = ValidationPartitionParameter.ActualValue.Start; 79 int end = ValidationPartitionParameter.ActualValue.End; 85 80 var rows = Enumerable.Range(start, end - start); 86 IExecutionContext childContext = (IExecutionContext)ExecutionContext.CreateChildOperation(Evaluator );81 IExecutionContext childContext = (IExecutionContext)ExecutionContext.CreateChildOperation(EvaluatorParameter.ActualValue); 87 82 double[] validationQuality = (from tree in SymbolicExpressionTrees 88 select Evaluator .Evaluate(childContext, tree, ProblemData, rows))83 select EvaluatorParameter.ActualValue.Evaluate(childContext, tree, ProblemDataParameter.ActualValue, rows)) 89 84 .ToArray(); 90 85 double r = alglib.spearmancorr2(trainingQuality, validationQuality); -
branches/DataAnalysis Refactoring/HeuristicLab.Problems.DataAnalysis.Symbolic.Regression/3.4/SingleObjective/SymbolicRegressionSingleObjectivePearsonRSquaredEvaluator.cs
r5747 r5759 20 20 #endregion 21 21 22 using System; 22 23 using System.Collections.Generic; 23 24 using HeuristicLab.Common; … … 26 27 using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding; 27 28 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable; 28 using System.Linq;29 using System;30 29 31 30 namespace HeuristicLab.Problems.DataAnalysis.Symbolic.Regression { … … 48 47 public override IOperation Apply() { 49 48 IEnumerable<int> rows = GenerateRowsToEvaluate(); 50 double quality = Calculate(SymbolicDataAnalysisTreeInterpreter , SymbolicExpressionTree, LowerEstimationLimit.Value, UpperEstimationLimit.Value, ProblemData, rows);49 double quality = Calculate(SymbolicDataAnalysisTreeInterpreterParameter.ActualValue, SymbolicExpressionTreeParameter.ActualValue, LowerEstimationLimitParameter.ActualValue.Value, UpperEstimationLimitParameter.ActualValue.Value, ProblemDataParameter.ActualValue, rows); 51 50 Quality = new DoubleValue(quality); 52 51 return base.Apply(); … … 70 69 UpperEstimationLimitParameter.ExecutionContext = context; 71 70 72 double r2 = Calculate(SymbolicDataAnalysisTreeInterpreter , tree, LowerEstimationLimit.Value, UpperEstimationLimit.Value, problemData, rows);71 double r2 = Calculate(SymbolicDataAnalysisTreeInterpreterParameter.ActualValue, tree, LowerEstimationLimitParameter.ActualValue.Value, UpperEstimationLimitParameter.ActualValue.Value, problemData, rows); 73 72 74 73 SymbolicDataAnalysisTreeInterpreterParameter.ExecutionContext = null; -
branches/DataAnalysis Refactoring/HeuristicLab.Problems.DataAnalysis.Symbolic.Regression/3.4/SingleObjective/SymbolicRegressionSingleObjectiveProblem.cs
r5747 r5759 31 31 [StorableClass] 32 32 [Creatable("Problems")] 33 public class SymbolicRegressionSingleObjectiveProblem : SymbolicDataAnalysisSingleObjectiveProblem<IRegressionProblemData, ISymbolicRegressionSingleObjectiveEvaluator, ISymbolicDataAnalysisSolutionCreator>, IRegressionProblem {33 public class SymbolicRegressionSingleObjectiveProblem : SymbolicDataAnalysisSingleObjectiveProblem<IRegressionProblemData, ISymbolicRegressionSingleObjectiveEvaluator, ISymbolicDataAnalysisSolutionCreator>, IRegressionProblem { 34 34 private const double PunishmentFactor = 10; 35 35 private const int InitialMaximumTreeDepth = 8; … … 72 72 InitializeOperators(); 73 73 UpdateEstimationLimits(); 74 UpdateDatasetPartitions();75 74 } 76 75 … … 83 82 84 83 private void UpdateEstimationLimits() { 85 if (ProblemData.TrainingPartition Start.Value < ProblemData.TrainingPartitionEnd.Value) {86 var targetValues = ProblemData.Dataset.GetVariableValues(ProblemData.TargetVariable, ProblemData.TrainingPartition Start.Value, ProblemData.TrainingPartitionEnd.Value);84 if (ProblemData.TrainingPartition.Start < ProblemData.TrainingPartition.End) { 85 var targetValues = ProblemData.Dataset.GetVariableValues(ProblemData.TargetVariable, ProblemData.TrainingPartition.Start, ProblemData.TrainingPartition.End); 87 86 var mean = targetValues.Average(); 88 87 var range = targetValues.Max() - targetValues.Min(); -
branches/DataAnalysis Refactoring/HeuristicLab.Problems.DataAnalysis.Symbolic.Regression/3.4/SingleObjective/SymbolicRegressionSingleObjectiveValidationBestSolutionAnalyzer.cs
r5729 r5759 20 20 #endregion 21 21 22 using System.Collections.Generic;23 using System.Linq;24 22 using HeuristicLab.Common; 25 23 using HeuristicLab.Core; 26 24 using HeuristicLab.Data; 27 25 using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding; 28 using HeuristicLab.Operators;29 using HeuristicLab.Optimization;30 26 using HeuristicLab.Parameters; 31 27 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable; … … 50 46 get { return (IValueLookupParameter<DoubleValue>)Parameters[LowerEstimationLimitParameterName]; } 51 47 } 48 public IValueParameter<BoolValue> ApplyLinearScalingParameter { 49 get { return (IValueParameter<BoolValue>)Parameters[ApplyLinearScalingParameterName]; } 50 } 52 51 #endregion 53 52 54 53 #region properties 55 public DoubleValue UpperEstimationLimit {56 get { return UpperEstimationLimitParameter.ActualValue; }57 }58 public DoubleValue LowerEstimationLimit {59 get { return LowerEstimationLimitParameter.ActualValue; }60 }61 public IValueParameter<BoolValue> ApplyLinearScalingParameter {62 get { return (IValueParameter<BoolValue>)Parameters[ApplyLinearScalingParameterName]; }63 }64 54 public BoolValue ApplyLinearScaling { 65 55 get { return ApplyLinearScalingParameter.Value; } … … 82 72 83 73 protected override ISymbolicRegressionSolution CreateSolution(ISymbolicExpressionTree bestTree, double bestQuality) { 84 var model = new SymbolicRegressionModel(bestTree, SymbolicDataAnalysisTreeInterpreter , LowerEstimationLimit.Value, UpperEstimationLimit.Value);85 var solution = new SymbolicRegressionSolution(model, ProblemData );74 var model = new SymbolicRegressionModel(bestTree, SymbolicDataAnalysisTreeInterpreterParameter.ActualValue, LowerEstimationLimitParameter.ActualValue.Value, UpperEstimationLimitParameter.ActualValue.Value); 75 var solution = new SymbolicRegressionSolution(model, ProblemDataParameter.ActualValue); 86 76 if (ApplyLinearScaling.Value) 87 77 solution.ScaleModel(); -
branches/DataAnalysis Refactoring/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Analyzers/SymbolicDataAnalysisMultiObjectiveValidationAnalyzer.cs
r5747 r5759 20 20 #endregion 21 21 22 using System.Collections.Generic;23 using System.Linq;24 22 using HeuristicLab.Common; 25 23 using HeuristicLab.Core; 26 24 using HeuristicLab.Data; 27 using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding;28 using HeuristicLab.Operators;29 25 using HeuristicLab.Parameters; 30 26 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable; 31 using HeuristicLab.Optimization;32 27 33 28 namespace HeuristicLab.Problems.DataAnalysis.Symbolic { … … 43 38 private const string EvaluatorParameterName = "Evaluator"; 44 39 private const string SymbolicDataAnalysisTreeInterpreterParameterName = "SymbolicDataAnalysisTreeInterpreter"; 45 private const string Validation SamplesStartParameterName = "ValidationSamplesStart";46 private const string ValidationSamplesEndParameterName = "ValidationSamplesEnd";40 private const string ValidationPartitionParameterName = "ValidationPartition"; 41 private const string RelativeNumberOfEvaluatedSamplesParameterName = "RelativeNumberOfEvaluatedSamples"; 47 42 48 43 #region parameter properties … … 56 51 get { return (ILookupParameter<ISymbolicDataAnalysisExpressionTreeInterpreter>)Parameters[SymbolicDataAnalysisTreeInterpreterParameterName]; } 57 52 } 58 public IValueLookupParameter<Int Value> ValidationSamplesStartParameter {59 get { return (IValueLookupParameter<Int Value>)Parameters[ValidationSamplesStartParameterName]; }53 public IValueLookupParameter<IntRange> ValidationPartitionParameter { 54 get { return (IValueLookupParameter<IntRange>)Parameters[ValidationPartitionParameterName]; } 60 55 } 61 public IValueLookupParameter< IntValue> ValidationSamplesEndParameter {62 get { return (IValueLookupParameter< IntValue>)Parameters[ValidationSamplesEndParameterName]; }56 public IValueLookupParameter<PercentValue> RelativeNumberOfEvaluatedSamplesParameter { 57 get { return (IValueLookupParameter<PercentValue>)Parameters[RelativeNumberOfEvaluatedSamplesParameterName]; } 63 58 } 64 #endregion65 66 #region properties67 public U ProblemData { get { return ProblemDataParameter.ActualValue; } }68 public T Evaluator { get { return EvaluatorParameter.ActualValue; } }69 public ISymbolicDataAnalysisExpressionTreeInterpreter SymbolicDataAnalysisTreeInterpreter { get { return SymbolicDataAnalysisTreeInterpreterParameter.ActualValue; } }70 public IntValue ValidationSamplesStart { get { return ValidationSamplesStartParameter.ActualValue; } }71 public IntValue ValidationSamplesEnd { get { return ValidationSamplesEndParameter.ActualValue; } }72 59 #endregion 73 60 … … 82 69 Parameters.Add(new LookupParameter<T>(EvaluatorParameterName, "The operator to use for fitness evaluation on the validation partition.")); 83 70 Parameters.Add(new LookupParameter<ISymbolicDataAnalysisExpressionTreeInterpreter>(SymbolicDataAnalysisTreeInterpreterParameterName, "The interpreter for symbolic data analysis expression trees.")); 84 Parameters.Add(new ValueLookupParameter<Int Value>(ValidationSamplesStartParameterName, "The start index of thevalidation partition."));85 Parameters.Add(new ValueLookupParameter< IntValue>(ValidationSamplesEndParameterName, "The end index of the validation partition."));71 Parameters.Add(new ValueLookupParameter<IntRange>(ValidationPartitionParameterName, "Thes validation partition.")); 72 Parameters.Add(new ValueLookupParameter<PercentValue>(RelativeNumberOfEvaluatedSamplesParameterName, "The relative number of samples of the dataset partition, which should be randomly chosen for evaluation between the start and end index.")); 86 73 } 87 74 } -
branches/DataAnalysis Refactoring/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Analyzers/SymbolicDataAnalysisMultiObjectiveValidationBestSolutionAnalyzer.cs
r5747 r5759 20 20 #endregion 21 21 22 using System; 22 23 using System.Collections.Generic; 23 24 using System.Linq; … … 26 27 using HeuristicLab.Data; 27 28 using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding; 28 using HeuristicLab.Operators;29 29 using HeuristicLab.Optimization; 30 30 using HeuristicLab.Parameters; 31 31 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable; 32 using System;32 using HeuristicLab.Random; 33 33 34 34 namespace HeuristicLab.Problems.DataAnalysis.Symbolic { … … 75 75 76 76 public override IOperation Apply() { 77 int start = ValidationPartitionParameter.ActualValue.Start; 78 int end = ValidationPartitionParameter.ActualValue.End; 79 int count = (int)((end - start) * RelativeNumberOfEvaluatedSamplesParameter.ActualValue.Value); 80 if (count <= 0) return base.Apply(); 81 77 82 var results = ResultCollection; 78 83 // create empty parameter and result values … … 94 99 bool[] maximization = Maximization.ToArray(); 95 100 List<double[]> newNonDominatedQualities = new List<double[]>(); 96 var evaluator = Evaluator; 97 int start = ValidationSamplesStart.Value; 98 int end = ValidationSamplesEnd.Value; 99 IEnumerable<int> rows = Enumerable.Range(start, end - start); 101 var evaluator = EvaluatorParameter.ActualValue; 102 IEnumerable<int> rows = RandomEnumerable.SampleRandomNumbers(start, end, count); 100 103 IExecutionContext childContext = (IExecutionContext)ExecutionContext.CreateChildOperation(evaluator); 101 104 for (int i = 0; i < tree.Length; i++) { 102 qualities.Add(evaluator.Evaluate(childContext, tree[i], ProblemData , rows)); // qualities[i] = ...105 qualities.Add(evaluator.Evaluate(childContext, tree[i], ProblemDataParameter.ActualValue, rows)); // qualities[i] = ... 103 106 if (IsNonDominated(qualities[i], trainingBestQualities, maximization) && 104 107 IsNonDominated(qualities[i], qualities, maximization)) { -
branches/DataAnalysis Refactoring/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Analyzers/SymbolicDataAnalysisSingleObjectiveValidationAnalyzer.cs
r5747 r5759 20 20 #endregion 21 21 22 using System.Collections.Generic;23 using System.Linq;24 22 using HeuristicLab.Common; 25 23 using HeuristicLab.Core; 26 24 using HeuristicLab.Data; 27 using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding;28 using HeuristicLab.Operators;29 25 using HeuristicLab.Parameters; 30 26 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable; 31 using HeuristicLab.Optimization;32 27 33 28 namespace HeuristicLab.Problems.DataAnalysis.Symbolic { … … 43 38 private const string EvaluatorParameterName = "Evaluator"; 44 39 private const string SymbolicDataAnalysisTreeInterpreterParameterName = "SymbolicDataAnalysisTreeInterpreter"; 45 private const string Validation SamplesStartParameterName = "ValidationSamplesStart";46 private const string ValidationSamplesEndParameterName = "ValidationSamplesEnd";40 private const string ValidationPartitionParameterName = "ValidationPartition"; 41 private const string RelativeNumberOfEvaluatedSamplesParameterName = "RelativeNumberOfEvaluatedSamples"; 47 42 48 43 #region parameter properties … … 56 51 get { return (ILookupParameter<ISymbolicDataAnalysisExpressionTreeInterpreter>)Parameters[SymbolicDataAnalysisTreeInterpreterParameterName]; } 57 52 } 58 public IValueLookupParameter<Int Value> ValidationSamplesStartParameter {59 get { return (IValueLookupParameter<Int Value>)Parameters[ValidationSamplesStartParameterName]; }53 public IValueLookupParameter<IntRange> ValidationPartitionParameter { 54 get { return (IValueLookupParameter<IntRange>)Parameters[ValidationPartitionParameterName]; } 60 55 } 61 public IValueLookupParameter< IntValue> ValidationSamplesEndParameter {62 get { return (IValueLookupParameter< IntValue>)Parameters[ValidationSamplesEndParameterName]; }56 public IValueLookupParameter<PercentValue> RelativeNumberOfEvaluatedSamplesParameter { 57 get { return (IValueLookupParameter<PercentValue>)Parameters[RelativeNumberOfEvaluatedSamplesParameterName]; } 63 58 } 64 #endregion65 66 #region properties67 public U ProblemData { get { return ProblemDataParameter.ActualValue; } }68 public T Evaluator { get { return EvaluatorParameter.ActualValue; } }69 public ISymbolicDataAnalysisExpressionTreeInterpreter SymbolicDataAnalysisTreeInterpreter { get { return SymbolicDataAnalysisTreeInterpreterParameter.ActualValue; } }70 public IntValue ValidationSamplesStart { get { return ValidationSamplesStartParameter.ActualValue; } }71 public IntValue ValidationSamplesEnd { get { return ValidationSamplesEndParameter.ActualValue; } }72 59 #endregion 73 60 … … 82 69 Parameters.Add(new LookupParameter<T>(EvaluatorParameterName, "The operator to use for fitness evaluation on the validation partition.")); 83 70 Parameters.Add(new LookupParameter<ISymbolicDataAnalysisExpressionTreeInterpreter>(SymbolicDataAnalysisTreeInterpreterParameterName, "The interpreter for symbolic data analysis expression trees.")); 84 Parameters.Add(new ValueLookupParameter<Int Value>(ValidationSamplesStartParameterName, "The start index of thevalidation partition."));85 Parameters.Add(new ValueLookupParameter< IntValue>(ValidationSamplesEndParameterName, "The end index of the validation partition."));71 Parameters.Add(new ValueLookupParameter<IntRange>(ValidationPartitionParameterName, "Thes validation partition.")); 72 Parameters.Add(new ValueLookupParameter<PercentValue>(RelativeNumberOfEvaluatedSamplesParameterName, "The relative number of samples of the dataset partition, which should be randomly chosen for evaluation between the start and end index.")); 86 73 } 87 74 } -
branches/DataAnalysis Refactoring/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Analyzers/SymbolicDataAnalysisSingleObjectiveValidationBestSolutionAnalyzer.cs
r5747 r5759 26 26 using HeuristicLab.Data; 27 27 using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding; 28 using HeuristicLab.Operators;29 28 using HeuristicLab.Optimization; 30 29 using HeuristicLab.Parameters; 31 30 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable; 31 using HeuristicLab.Random; 32 32 33 33 namespace HeuristicLab.Problems.DataAnalysis.Symbolic { … … 78 78 ISymbolicExpressionTree[] tree = SymbolicExpressionTrees.ToArray(); 79 79 double[] quality = new double[tree.Length]; 80 var evaluator = Evaluator; 81 int start = ValidationSamplesStart.Value; 82 int end = ValidationSamplesEnd.Value; 83 IEnumerable<int> rows = Enumerable.Range(start, end - start); 80 var evaluator = EvaluatorParameter.ActualValue; 81 int start = ValidationPartitionParameter.ActualValue.Start; 82 int end = ValidationPartitionParameter.ActualValue.End; 83 int count = (int)((end - start) * RelativeNumberOfEvaluatedSamplesParameter.ActualValue.Value); 84 if (count <= 0) return base.Apply(); 85 86 IEnumerable<int> rows = RandomEnumerable.SampleRandomNumbers(start, end, count); 84 87 IExecutionContext childContext = (IExecutionContext)ExecutionContext.CreateChildOperation(evaluator); 85 88 for (int i = 0; i < tree.Length; i++) { 86 quality[i] = evaluator.Evaluate(childContext, tree[i], ProblemData , rows);89 quality[i] = evaluator.Evaluate(childContext, tree[i], ProblemDataParameter.ActualValue, rows); 87 90 if (IsBetter(quality[i], bestQuality, Maximization.Value)) { 88 91 bestQuality = quality[i]; -
branches/DataAnalysis Refactoring/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Evaluators/SymbolicDataAnalysisEvaluator.cs
r5720 r5759 43 43 private const string UpperEstimationLimitParameterName = "UpperEstimationLimit"; 44 44 private const string LowerEstimationLimitParameterName = "LowerEstimationLimit"; 45 private const string SamplesStartParameterName = "SamplesStart"; 46 private const string SamplesEndParameterName = "SamplesEnd"; 45 private const string EvaluationPartitionParameterName = "EvaluationPartition"; 47 46 private const string RelativeNumberOfEvaluatedSamplesParameterName = "RelativeNumberOfEvaluatedSamples"; 48 47 … … 63 62 } 64 63 65 public IFixedValueParameter<IntValue> SamplesStartParameter { 66 get { return (IFixedValueParameter<IntValue>)Parameters[SamplesStartParameterName]; } 67 } 68 public IFixedValueParameter<IntValue> SamplesEndParameter { 69 get { return (IFixedValueParameter<IntValue>)Parameters[SamplesEndParameterName]; } 64 public IValueLookupParameter<IntRange> EvaluationPartitionParameter { 65 get { return (IValueLookupParameter<IntRange>)Parameters[EvaluationPartitionParameterName]; } 70 66 } 71 67 … … 77 73 } 78 74 79 public I FixedValueParameter<PercentValue> RelativeNumberOfEvaluatedSamplesParameter {80 get { return (I FixedValueParameter<PercentValue>)Parameters[RelativeNumberOfEvaluatedSamplesParameterName]; }75 public IValueLookupParameter<PercentValue> RelativeNumberOfEvaluatedSamplesParameter { 76 get { return (IValueLookupParameter<PercentValue>)Parameters[RelativeNumberOfEvaluatedSamplesParameterName]; } 81 77 } 82 78 #endregion 83 79 84 #region properties85 public IRandom Random {86 get { return RandomParameter.ActualValue; }87 }88 public ISymbolicExpressionTree SymbolicExpressionTree {89 get { return SymbolicExpressionTreeParameter.ActualValue; }90 }91 public ISymbolicDataAnalysisExpressionTreeInterpreter SymbolicDataAnalysisTreeInterpreter {92 get { return SymbolicDataAnalysisTreeInterpreterParameter.ActualValue; }93 }94 public T ProblemData {95 get { return ProblemDataParameter.ActualValue; }96 }97 public IntValue SamplesStart {98 get { return SamplesStartParameter.Value; }99 }100 public IntValue SamplesEnd {101 get { return SamplesEndParameter.Value; }102 }103 public DoubleValue UpperEstimationLimit {104 get { return UpperEstimationLimitParameter.ActualValue; }105 }106 public DoubleValue LowerEstimationLimit {107 get { return LowerEstimationLimitParameter.ActualValue; }108 }109 public PercentValue RelativeNumberOfEvaluatedSamples {110 get { return RelativeNumberOfEvaluatedSamplesParameter.Value; }111 }112 #endregion113 80 114 81 [StorableConstructor] … … 123 90 Parameters.Add(new LookupParameter<ISymbolicExpressionTree>(SymbolicExpressionTreeParameterName, "The symbolic data analysis solution encoded as a symbolic expression tree.")); 124 91 Parameters.Add(new ValueLookupParameter<T>(ProblemDataParameterName, "The problem data on which the symbolic data analysis solution should be evaluated.")); 125 Parameters.Add(new FixedValueParameter<IntValue>(SamplesStartParameterName, "The start index of the dataset partition on which the symbolic data analysis solution should be evaluated.", new IntValue())); 126 Parameters.Add(new FixedValueParameter<IntValue>(SamplesEndParameterName, "The end index of the dataset partition on which the symbolic data analysis solution should be evaluated.", new IntValue())); 92 Parameters.Add(new ValueLookupParameter<IntRange>(EvaluationPartitionParameterName, "The start index of the dataset partition on which the symbolic data analysis solution should be evaluated.")); 127 93 Parameters.Add(new ValueLookupParameter<DoubleValue>(UpperEstimationLimitParameterName, "The upper limit that should be used as cut off value for the output values of symbolic data analysis trees.")); 128 94 Parameters.Add(new ValueLookupParameter<DoubleValue>(LowerEstimationLimitParameterName, "The lower limit that should be used as cut off value for the output values of symbolic data analysis trees.")); 129 Parameters.Add(new FixedValueParameter<PercentValue>(RelativeNumberOfEvaluatedSamplesParameterName, "The relative number of samples of the dataset partition, which should be randomly chosen for evaluation between the start and end index.", new PercentValue(1)));95 Parameters.Add(new ValueLookupParameter<PercentValue>(RelativeNumberOfEvaluatedSamplesParameterName, "The relative number of samples of the dataset partition, which should be randomly chosen for evaluation between the start and end index.")); 130 96 } 131 97 132 98 protected IEnumerable<int> GenerateRowsToEvaluate() { 133 99 int seed = RandomParameter.ActualValue.Next(); 100 int samplesStart = EvaluationPartitionParameter.ActualValue.Start; 101 int samplesEnd = EvaluationPartitionParameter.ActualValue.End; 134 102 135 if ( SamplesEnd.Value < SamplesStart.Value) throw new ArgumentException("Start value is larger than end value.");136 int count = (int)(( SamplesEnd.Value - SamplesStart.Value) * RelativeNumberOfEvaluatedSamples.Value);103 if (samplesEnd < samplesStart) throw new ArgumentException("Start value is larger than end value."); 104 int count = (int)((samplesEnd - samplesStart) * RelativeNumberOfEvaluatedSamplesParameter.ActualValue.Value); 137 105 if (count == 0) count = 1; 138 return RandomEnumerable.SampleRandomNumbers(seed, SamplesStart.Value, SamplesEnd.Value, count)139 .Where(i => i < ProblemDataParameter.ActualValue.TestPartition Start.Value || ProblemDataParameter.ActualValue.TestPartitionEnd.Value<= i);106 return RandomEnumerable.SampleRandomNumbers(seed, samplesEnd, samplesStart, count) 107 .Where(i => i < ProblemDataParameter.ActualValue.TestPartition.Start || ProblemDataParameter.ActualValue.TestPartition.End <= i); 140 108 } 141 109 } -
branches/DataAnalysis Refactoring/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Interfaces/ISymbolicDataAnalysisEvaluator.cs
r5618 r5759 27 27 where T : class,IDataAnalysisProblemData { 28 28 ILookupParameter<ISymbolicExpressionTree> SymbolicExpressionTreeParameter { get; } 29 I FixedValueParameter<IntValue> SamplesStartParameter { get; }30 I FixedValueParameter<IntValue> SamplesEndParameter { get; }29 IValueLookupParameter<IntRange> EvaluationPartitionParameter { get; } 30 IValueLookupParameter<PercentValue> RelativeNumberOfEvaluatedSamplesParameter { get; } 31 31 32 32 IValueLookupParameter<T> ProblemDataParameter { get; } 33 T ProblemData { get; }34 33 } 35 34 } -
branches/DataAnalysis Refactoring/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Interfaces/ISymbolicDataAnalysisValidationAnalyzer.cs
r5722 r5759 27 27 ILookupParameter<U> ProblemDataParameter { get; } 28 28 ILookupParameter<T> EvaluatorParameter { get; } 29 IValueLookupParameter<Int Value> ValidationSamplesStartParameter { get; }30 IValueLookupParameter< IntValue> ValidationSamplesEndParameter { get; }29 IValueLookupParameter<IntRange> ValidationPartitionParameter { get; } 30 IValueLookupParameter<PercentValue> RelativeNumberOfEvaluatedSamplesParameter { get; } 31 31 } 32 32 } -
branches/DataAnalysis Refactoring/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/SymbolicDataAnalysisProblem.cs
r5733 r5759 50 50 private const string MaximumFunctionDefinitionsParameterName = "MaximumFunctionDefinitions"; 51 51 private const string MaximumFunctionArgumentsParameterName = "MaximumFunctionArguments"; 52 private const string RelativeNumberOfEvaluatedSamples = "RelativeNumberOfEvaluatedSamples";52 private const string RelativeNumberOfEvaluatedSamplesParameterName = "RelativeNumberOfEvaluatedSamples"; 53 53 private const string FitnessCalculationPartitionParameterName = "FitnessCalculationPartition"; 54 private const string ModelSelectionPartitionParam terName = "ModelSelectionPartition";54 private const string ModelSelectionPartitionParameterName = "ModelSelectionPartition"; 55 55 56 56 private const string ProblemDataParameterDescription = ""; … … 61 61 private const string MaximumFunctionDefinitionsParameterDescription = "Maximal number of automatically defined functions"; 62 62 private const string MaximumFunctionArgumentsParameterDescription = "Maximal number of arguments of automatically defined functions."; 63 private const string RelativeNumberOfEvaluatedSamplesParameterDescription = "The relative number of samples of the dataset partition, which should be randomly chosen for evaluation."; 64 private const string FitnessCalculationPartitionParameterDescription = "The partition of the problem data training partition, that should be used to calculate the fitness of an individual."; 65 private const string ModelSelectionPartitionParameterDescription = "The partition of the problem data training partition, that should be used the select the best model from (optional)."; 63 66 #endregion 64 67 … … 88 91 get { return (IFixedValueParameter<IntValue>)Parameters[MaximumFunctionArgumentsParameterName]; } 89 92 } 93 public IFixedValueParameter<PercentValue> RelativeNumberOfEvaluatedSamplesParameter { 94 get { return (IFixedValueParameter<PercentValue>)Parameters[RelativeNumberOfEvaluatedSamplesParameterName]; } 95 } 96 public IFixedValueParameter<IntRange> FitnessCalculationPartitionParameter { 97 get { return (IFixedValueParameter<IntRange>)Parameters[FitnessCalculationPartitionParameterName]; } 98 } 99 public IFixedValueParameter<IntRange> ModelSelectionPartitionParamater { 100 get { return (IFixedValueParameter<IntRange>)Parameters[ModelSelectionPartitionParameterName]; } 101 } 90 102 #endregion 91 103 … … 122 134 public IntValue MaximumFunctionArguments { 123 135 get { return MaximumFunctionArgumentsParameter.Value; } 136 } 137 public PercentValue RelativeNumberOfEvaluatedSamples { 138 get { return RelativeNumberOfEvaluatedSamplesParameter.Value; } 139 } 140 141 public IntRange FitnessCalculationPartition { 142 get { return FitnessCalculationPartitionParameter.Value; } 143 } 144 public IntRange ModelSelectionPartition { 145 get { return ModelSelectionPartitionParamater.Value; } 124 146 } 125 147 #endregion … … 145 167 Parameters.Add(new FixedValueParameter<IntValue>(MaximumFunctionDefinitionsParameterName, MaximumFunctionDefinitionsParameterDescription, new IntValue())); 146 168 Parameters.Add(new FixedValueParameter<IntValue>(MaximumFunctionArgumentsParameterName, MaximumFunctionArgumentsParameterDescription, new IntValue())); 169 Parameters.Add(new FixedValueParameter<IntRange>(FitnessCalculationPartitionParameterName, FitnessCalculationPartitionParameterDescription, new IntRange())); 170 Parameters.Add(new FixedValueParameter<IntRange>(ModelSelectionPartitionParameterName, ModelSelectionPartitionParameterDescription, new IntRange())); 171 Parameters.Add(new FixedValueParameter<PercentValue>(RelativeNumberOfEvaluatedSamplesParameterName, RelativeNumberOfEvaluatedSamplesParameterDescription, new PercentValue(1))); 147 172 148 173 SymbolicExpressionTreeGrammar = new TypeCoherentExpressionGrammar(); … … 152 177 153 178 UpdateGrammar(); 154 UpdateDatasetPartitions();155 179 RegisterEventHandlers(); 156 }157 158 protected virtual void UpdateDatasetPartitions() {159 Evaluator.SamplesStartParameter.Value.Value = ProblemData.TrainingPartitionStart.Value;160 Evaluator.SamplesEndParameter.Value.Value = ProblemData.TrainingPartitionEnd.Value;161 162 foreach (var analyzer in Operators.OfType<ISymbolicDataAnalysisValidationAnalyzer<U, T>>()) {163 analyzer.ValidationSamplesStartParameter.Value = new IntValue(ProblemData.TrainingPartitionStart.Value);164 analyzer.ValidationSamplesEndParameter.Value = new IntValue(ProblemData.TrainingPartitionEnd.Value);165 }166 180 } 167 181 … … 227 241 protected virtual void OnProblemDataChanged() { 228 242 UpdateGrammar(); 229 UpdateDatasetPartitions();230 243 ParameterizeOperators(); 231 244 … … 254 267 op.ProblemDataParameter.ActualName = ProblemDataParameterName; 255 268 op.SymbolicExpressionTreeParameter.ActualName = SolutionCreator.SymbolicExpressionTreeParameter.ActualName; 256 op. SamplesStartParameter.Value.Value = ProblemData.TrainingPartitionStart.Value;257 op. SamplesEndParameter.Value.Value = ProblemData.TrainingPartitionEnd.Value;269 op.EvaluationPartitionParameter.ActualName = FitnessCalculationPartitionParameter.Name; 270 op.RelativeNumberOfEvaluatedSamplesParameter.ActualName = RelativeNumberOfEvaluatedSamplesParameter.Name; 258 271 } 259 272 foreach (var op in operators.OfType<ISymbolicExpressionTreeCrossover>()) { … … 267 280 op.SymbolicExpressionTreeParameter.ActualName = SolutionCreator.SymbolicExpressionTreeParameter.ActualName; 268 281 } 282 foreach (var op in operators.OfType<ISymbolicDataAnalysisValidationAnalyzer<U, T>>()) { 283 op.RelativeNumberOfEvaluatedSamplesParameter.ActualName = RelativeNumberOfEvaluatedSamplesParameter.Name; 284 op.ValidationPartitionParameter.ActualName = ModelSelectionPartitionParamater.Name; 285 } 269 286 foreach (var op in operators.OfType<ISymbolicDataAnalysisInterpreterOperator>()) { 270 287 op.SymbolicDataAnalysisTreeInterpreterParameter.ActualName = SymbolicExpressionTreeInterpreterParameterName; 271 }272 foreach (var op in operators.OfType<ISymbolicDataAnalysisAnalyzer>()) {273 op.SymbolicExpressionTreeParameter.ActualName = SolutionCreator.SymbolicExpressionTreeParameter.ActualName;274 288 } 275 289 } -
branches/DataAnalysis Refactoring/HeuristicLab.Problems.DataAnalysis.Views/3.4/Regression/RegressionSolutionLineChartView.cs
r5663 r5759 136 136 this.chart.ChartAreas[0].AxisX.StripLines.Clear(); 137 137 this.CreateAndAddStripLine("Training", Color.FromArgb(20, Color.Green), 138 Content.ProblemData.TrainingPartition Start.Value,139 Content.ProblemData.TrainingPartition End.Value);138 Content.ProblemData.TrainingPartition.Start, 139 Content.ProblemData.TrainingPartition.End); 140 140 this.CreateAndAddStripLine("Test", Color.FromArgb(20, Color.Red), 141 Content.ProblemData.TestPartition Start.Value,142 Content.ProblemData.TestPartition End.Value);141 Content.ProblemData.TestPartition.Start, 142 Content.ProblemData.TestPartition.End); 143 143 } 144 144 -
branches/DataAnalysis Refactoring/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/DataAnalysisProblemData.cs
r5730 r5759 35 35 private const string DatasetParameterName = "Dataset"; 36 36 private const string InputVariablesParameterName = "InputVariables"; 37 private const string TrainingPartitionStartParameterName = "TrainingPartitionStart"; 38 private const string TrainingPartitionEndParameterName = "TrainingPartitionEnd"; 39 private const string TestPartitionStartParameterName = "TestPartitionStart"; 40 private const string TestPartitionEndParameterName = "TestPartitionEnd"; 37 private const string TrainingPartitionParameterName = "TrainingPartition"; 38 private const string TestPartitionParameterName = "TestPartition"; 41 39 42 40 #region parameter properites … … 47 45 get { return (IFixedValueParameter<ICheckedItemList<StringValue>>)Parameters[InputVariablesParameterName]; } 48 46 } 49 public IFixedValueParameter<Int Value> TrainingPartitionStartParameter {50 get { return (IFixedValueParameter<Int Value>)Parameters[TrainingPartitionStartParameterName]; }47 public IFixedValueParameter<IntRange> TrainingPartitionParameter { 48 get { return (IFixedValueParameter<IntRange>)Parameters[TrainingPartitionParameterName]; } 51 49 } 52 public IFixedValueParameter<IntValue> TrainingPartitionEndParameter { 53 get { return (IFixedValueParameter<IntValue>)Parameters[TrainingPartitionEndParameterName]; } 54 } 55 public IFixedValueParameter<IntValue> TestPartitionStartParameter { 56 get { return (IFixedValueParameter<IntValue>)Parameters[TestPartitionStartParameterName]; } 57 } 58 public IFixedValueParameter<IntValue> TestPartitionEndParameter { 59 get { return (IFixedValueParameter<IntValue>)Parameters[TestPartitionEndParameterName]; } 50 public IFixedValueParameter<IntRange> TestPartitionParameter { 51 get { return (IFixedValueParameter<IntRange>)Parameters[TestPartitionParameterName]; } 60 52 } 61 53 #endregion … … 72 64 } 73 65 74 public Int Value TrainingPartitionStart{75 get { return TrainingPartition StartParameter.Value; }66 public IntRange TrainingPartition { 67 get { return TrainingPartitionParameter.Value; } 76 68 } 77 public IntValue TrainingPartitionEnd { 78 get { return TrainingPartitionEndParameter.Value; } 79 } 80 public IntValue TestPartitionStart { 81 get { return TestPartitionStartParameter.Value; } 82 } 83 public IntValue TestPartitionEnd { 84 get { return TestPartitionEndParameter.Value; } 69 public IntRange TestPartition { 70 get { return TestPartitionParameter.Value; } 85 71 } 86 72 87 73 public IEnumerable<int> TrainingIndizes { 88 74 get { 89 return Enumerable.Range(TrainingPartition Start.Value, TrainingPartitionEnd.Value - TrainingPartitionStart.Value)90 .Where(i => i >= 0 && i < Dataset.Rows && (i < TestPartition Start.Value || TestPartitionEnd.Value<= i));75 return Enumerable.Range(TrainingPartition.Start, TrainingPartition.End - TrainingPartition.Start) 76 .Where(i => i >= 0 && i < Dataset.Rows && (i < TestPartition.Start || TestPartition.End <= i)); 91 77 } 92 78 } 93 79 public IEnumerable<int> TestIndizes { 94 80 get { 95 return Enumerable.Range(TestPartition Start.Value, TestPartitionEnd.Value - TestPartitionStart.Value)81 return Enumerable.Range(TestPartition.Start, TestPartition.End - TestPartition.Start) 96 82 .Where(i => i >= 0 && i < Dataset.Rows); 97 83 } … … 121 107 Parameters.Add(new FixedValueParameter<Dataset>(DatasetParameterName, "", dataset)); 122 108 Parameters.Add(new FixedValueParameter<ICheckedItemList<StringValue>>(InputVariablesParameterName, "", inputVariables.AsReadOnly())); 123 Parameters.Add(new FixedValueParameter<IntValue>(TrainingPartitionStartParameterName, "", new IntValue(trainingPartitionStart))); 124 Parameters.Add(new FixedValueParameter<IntValue>(TrainingPartitionEndParameterName, "", new IntValue(trainingPartitionEnd))); 125 Parameters.Add(new FixedValueParameter<IntValue>(TestPartitionStartParameterName, "", new IntValue(testPartitionStart))); 126 Parameters.Add(new FixedValueParameter<IntValue>(TestPartitionEndParameterName, "", new IntValue(testPartitionEnd))); 109 Parameters.Add(new FixedValueParameter<IntRange>(TrainingPartitionParameterName, "", new IntRange(trainingPartitionStart, trainingPartitionEnd))); 110 Parameters.Add(new FixedValueParameter<IntRange>(TestPartitionParameterName, "", new IntRange(testPartitionStart, testPartitionEnd))); 127 111 128 112 ((ValueParameter<Dataset>)DatasetParameter).ReactOnValueToStringChangedAndValueItemImageChanged = false; … … 133 117 DatasetParameter.ValueChanged += new EventHandler(Parameter_ValueChanged); 134 118 InputVariables.CheckedItemsChanged += new CollectionItemsChangedEventHandler<IndexedItem<StringValue>>(InputVariables_CheckedItemsChanged); 135 TrainingPartitionStart.ValueChanged += new EventHandler(Parameter_ValueChanged); 136 TrainingPartitionEnd.ValueChanged += new EventHandler(Parameter_ValueChanged); 137 TestPartitionStart.ValueChanged += new EventHandler(Parameter_ValueChanged); 138 TestPartitionEnd.ValueChanged += new EventHandler(Parameter_ValueChanged); 119 TrainingPartition.ValueChanged += new EventHandler(Parameter_ValueChanged); 120 TestPartition.ValueChanged += new EventHandler(Parameter_ValueChanged); 139 121 } 140 122 -
branches/DataAnalysis Refactoring/HeuristicLab.Problems.DataAnalysis/3.4/Interfaces/IDataAnalysisProblemData.cs
r5649 r5759 31 31 IEnumerable<string> AllowedInputVariables { get; } 32 32 33 IntValue TrainingPartitionStart { get; } 34 IntValue TrainingPartitionEnd { get; } 35 IntValue TestPartitionStart { get; } 36 IntValue TestPartitionEnd { get; } 33 IntRange TrainingPartition { get; } 34 IntRange TestPartition { get; } 37 35 38 36 IEnumerable<int> TrainingIndizes { get; } -
branches/DataAnalysis Refactoring/HeuristicLab.Problems.DataAnalysis/3.4/OnlineEvaluators/OnlineLinearScalingParameterCalculator.cs
r5746 r5759 78 78 /// </summary> 79 79 public void Add(double original, double target) { 80 // validity of values is checked in mean c lculator and covariance calculator80 // validity of values is checked in mean calculator and covariance calculator 81 81 targetMeanCalculator.Add(target); 82 82 originalMeanAndVarianceCalculator.Add(original); -
branches/DataAnalysis Refactoring/HeuristicLab/3.3/Files.txt
r5750 r5759 59 59 HeuristicLab.Problems.DataAnalysis\3.4:HeuristicLab.Problems.DataAnalysis-3.4.dll 60 60 HeuristicLab.Problems.DataAnalysis.Classification\3.3:HeuristicLab.Problems.DataAnalysis.Classification-3.3.dll 61 HeuristicLab.Problems.DataAnalysis.Classification\3.4:HeuristicLab.Problems.DataAnalysis.Classification-3.4.dll62 61 HeuristicLab.Problems.DataAnalysis.Classification.Views\3.3:HeuristicLab.Problems.DataAnalysis.Classification.Views-3.3.dll 63 62 HeuristicLab.Problems.DataAnalysis.Regression\3.3:HeuristicLab.Problems.DataAnalysis.Regression-3.3.dll
Note: See TracChangeset
for help on using the changeset viewer.