Closed HeuristicLab-Trac-Bot closed 5 years ago
r16499: Implement Pearson R2 & Tree Similarity Evaluator.
sw
is not used (?) and should be removed.- creative use of
ExecutionContext.Scope.Parent.SubScopes.Where(x => x.Variables.ContainsKey("SymbolicExpressionTree"))
. Seems likely to break or be incompatible to other algorithms. Maybe you could split evaluation and sim-matrix calculation into an Evaluator and an Analyzer?- Can we keep Calculate a
static
method. Ideally, this would allow to remove the synchronization in Calculate.
#!div style="font-size: 80%" creative use of `ExecutionContext.Scope.Parent.SubScopes.Where(x => x.Variables.ContainsKey("SymbolicExpressionTree"))`. Seems likely to break or be incompatible to other algorithms. Maybe you could split evaluation and sim-matrix calculation into an Evaluator and an Analyzer?
I am not quite sure how to achieve that. The analyzer would have to run before the evaluator, on the scope level above the evaluator (
ExecutionContext.Parent.Scope
) so it cannot be wired as aBeforeExecutionOperator
. The evaluator is executed at solution creation and inside the main loop. The only solution I can think of is having the evaluator apply the analyzer but that does not seem like much of an improvement. Any ideas?
I thought it could be possible to implement an analyzer which takes all individuals form the population and does some processing for similarity calculation (e.g. linearization, simplification) and then produces an data structure that is written back to the population scope by the analyzer. The evaluator can later retrieve this data structure again. In this case it is necessary to manually you need to add (or enable) the analyzer to make the evaluator work but I think this would be ok.
In the first generation we can probably select randomly (if the analyzer has not been executed before the evaluator)
r16978: Introduce separate
SymbolicDataAnalysisExpressionTreeAverageSimilarityCalculator
operator for computing the population similarity matrix. Refactor evaluator to use the values calculated by the SimilarityCalculator.
r16981: Make
SymbolicDataAnalysisExpressionTreeAverageSimilarityCalculator
non-discoverable.
This ticket blocks the reintegration of the persistence into stable and should be prioritized. This ticket depends on #2950.
Issue migrated from trac ticket # 2977
milestone: HeuristicLab 3.3.16 | component: Problems.DataAnalysis.Symbolic.Regression | priority: medium | resolution: done | keywords: merged
2019-01-04 14:49:35: @foolnotion created the issue