Changeset 17472 for branches/3040_VectorBasedGP/HeuristicLab.Problems.DataAnalysis.Symbolic.Regression.Views/3.4
- Timestamp:
- 03/10/20 08:28:49 (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/3040_VectorBasedGP/HeuristicLab.Problems.DataAnalysis.Symbolic.Regression.Views/3.4/InteractiveSymbolicRegressionSolutionSimplifierView.cs
r17456 r17472 21 21 22 22 using System; 23 using System.Threading; 23 24 using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding; 24 25 using HeuristicLab.MainForm; … … 42 43 43 44 var tree = Content?.Model?.SymbolicExpressionTree; 44 btnOptimizeConstants.Enabled = tree != null && SymbolicRegressionConstantOptimizationEvaluator.CanOptimizeConstants(tree);45 btnOptimizeConstants.Enabled = tree != null && NonlinearLeastSquaresConstantOptimizationEvaluator.CanOptimizeConstants(tree); 45 46 } 46 47 … … 51 52 } 52 53 53 protected override ISymbolicExpressionTree OptimizeConstants(ISymbolicExpressionTree tree, IProgress progress) {54 protected override ISymbolicExpressionTree OptimizeConstants(ISymbolicExpressionTree tree, CancellationToken cancellationToken, IProgress progress) { 54 55 const int constOptIterations = 50; 55 56 const int maxRepetitions = 100; … … 64 65 do { 65 66 prevResult = result; 66 result = SymbolicRegressionConstantOptimizationEvaluator.OptimizeConstants(model.Interpreter,tree, regressionProblemData, regressionProblemData.TrainingIndices,67 applyLinearScaling: true, maxIterations: constOptIterations, updateVariableWeights: true, lowerEstimationLimit: model.LowerEstimationLimit, upperEstimationLimit: model.UpperEstimationLimit,68 iterationCallback: (args, func, obj) => {67 tree = NonlinearLeastSquaresConstantOptimizationEvaluator.OptimizeTree(tree, regressionProblemData, regressionProblemData.TrainingIndices, 68 applyLinearScaling: true, maxIterations: constOptIterations, updateVariableWeights: true, 69 cancellationToken: cancellationToken, iterationCallback: (args, func, obj) => { 69 70 double newProgressValue = progress.ProgressValue + (1.0 / (constOptIterations + 2) / maxRepetitions); // (constOptIterations + 2) iterations are reported 70 71 progress.ProgressValue = Math.Min(newProgressValue, 1.0); 71 72 }); 73 result = SymbolicRegressionSingleObjectivePearsonRSquaredEvaluator.Calculate(model.Interpreter, tree, 74 model.LowerEstimationLimit, model.UpperEstimationLimit, regressionProblemData, regressionProblemData.TrainingIndices, applyLinearScaling: true); 72 75 reps++; 73 76 improvement = result - prevResult;
Note: See TracChangeset
for help on using the changeset viewer.