Opened 6 years ago
Closed 4 years ago
#2971 closed feature request (done)
Intervals for RegressionProblemData/SymbolicRegressionSolution
Reported by: | chaider | Owned by: | mkommend |
---|---|---|---|
Priority: | medium | Milestone: | HeuristicLab 3.3.17 |
Component: | Problems.DataAnalysis | Version: | trunk |
Keywords: | Cc: |
Description (last modified by chaider)
- Create a new view NamedIntervalView to represent the intervals
- Add Intervals to InteractiveSymbolicDataAnalysisSolutionSimplifierView ==> shows calculated intervals for each node
ProblemData:
- Add a new parameter to RegressionProblemData, which shows the variable ranges of the model
- Allows to edit the boundaries of input parameters
Solution:
- Add a new parameter to SymbolicRegressionSolution, which shows the derivates of the model within the NamedIntervalView
Change History (212)
comment:1 Changed 6 years ago by chaider
comment:2 Changed 6 years ago by chaider
r16369 Added Problems.DataAnalysis
comment:3 Changed 6 years ago by chaider
r16370 Added Data
comment:4 Changed 6 years ago by chaider
r16371 Added Data.Views
comment:5 Changed 6 years ago by chaider
- Added references to projects
- Added build events
comment:6 Changed 6 years ago by gkronber
#1299 is related
comment:7 Changed 6 years ago by chaider
r16412 merged trunk into branch
comment:8 Changed 6 years ago by chaider
- Added parameter VariableRanges to RegressionProblemData
- Added VariableRanges class
- Added View class for VariableRanges
comment:9 Changed 6 years ago by chaider
r16414 Added merge properties
comment:10 Changed 6 years ago by chaider
r16424 removed HeuristicLab.Data from branch
comment:11 Changed 6 years ago by chaider
- Added NamedIntervals class
- Set NamedIntervals Parameter in RegressionProblemData
comment:12 Changed 6 years ago by chaider
r16534 changed structure for NamedIntervals
comment:13 Changed 6 years ago by chaider
r16535 Added Problems.DataAnalysis.Views
comment:14 Changed 6 years ago by chaider
r16536 merged DataAnalysis.Views from trunk to branch
comment:15 Changed 6 years ago by chaider
- Added editorconfig
- Added Getter for intervals in NamedIntervals class
- Changed GridView to show starting values of dataset
comment:16 Changed 6 years ago by chaider
- Description modified (diff)
- Summary changed from Add a new parameter to RegressionProblemData/SymbolicRegressionSolution, which shows variable ranges as intervals to Intervals for RegressionProblemData/SymbolicRegressionSolution
comment:17 Changed 6 years ago by chaider
- Added ReadOnly field to NamedIntervals
- Changes at cell validation of NamedIntervalsView
- Added save on value changed
comment:18 Changed 6 years ago by chaider
r16546 Added Problems.DataAnalysis.Symbolic.Views to branch
comment:19 Changed 6 years ago by chaider
r16547 Added serialization to Interval class
comment:20 Changed 6 years ago by chaider
- Removed Storable from Intervals
- Changed copy constructor from NamedIntervals class
comment:21 Changed 6 years ago by chaider
r16549 Added interval ranges to InteractiveSymbolicDataAnalysisSolutionSimplifierView
comment:22 Changed 6 years ago by chaider
r16556 Added derivates of intervals as result collection to solution view
comment:23 Changed 6 years ago by chaider
- Check if treeNode exists for specific intervals in SimplifierView
- GridView fills space in NamedIntevalsView
comment:24 Changed 6 years ago by chaider
r16586 Added IntervalConstraint Parameter and some fixes
comment:25 Changed 6 years ago by chaider
- Added TextValueView
- Added IntervalConstraint Parser
- This two classes will be moved to another plugin
comment:26 Changed 6 years ago by chaider
r16588 Changed variableIntervals from ObservableDictionary to Dictionary
comment:27 Changed 6 years ago by chaider
- Added new Evaluator to evaulate Pearson RSquared with repsect to given constraints
- changes in SymbolicRegressionSolution
comment:28 Changed 6 years ago by chaider
- Interval-Parser:
- Changed Parser ==> after last group there can be now an infinite amount of whitepsaces
- Save userinput as property
- Save variable case-sensitive
- NamedIntervals
- Changed Storable attribute from IEnumerable to KeyValuePair, because old Persistance cant handle IEnumerable
- Added SymbolicRegressionConstraintAnalyzer
- SymbolicRegressionSingleObjectiveConstraintPearsonRSquaredEvaluator
- Fixed checking if a given interval is in another interval
comment:29 Changed 6 years ago by chaider
r16591 Fixed checking if a given interval is in another interval
comment:30 Changed 6 years ago by chaider
- Added ContainsInterval method in Interval
- Some renaming
- Added ConstraintAnalyzer to SymbolicRegressionProblem
- Added Counter for constraint violations in analyzer
comment:31 Changed 6 years ago by chaider
r16593 changed cubic and square symbol at interval arithmetic
comment:32 Changed 6 years ago by chaider
- Extended evaluator with linear scaling
- Added constructor to IntervalConstraint
comment:33 Changed 6 years ago by gkronber
r16627: fixed update of interval results when solution changes (e.g. in the simplifier)
comment:34 Changed 6 years ago by gkronber
r16628: made branch compile with current version of trunk
comment:35 Changed 6 years ago by gkronber
r16632: fixed a small problem (trailing \r) in the parser for constraints
comment:36 Changed 6 years ago by gkronber
r16633: fixed exception message
comment:37 Changed 6 years ago by gkronber
r16634: disabled validation check in NamedIntervalsView because it is problematic when NamedIntervals are updated (e.g. while the algorithm is running)
comment:38 Changed 6 years ago by gkronber
r16635: fixed updating of IntervalResults for SymbolicRegressionSolution
comment:39 Changed 6 years ago by gkronber
r16636: set copy local for references to false, used project references for projects within the branch
comment:40 Changed 6 years ago by gkronber
I'm not sure how exactly this branch was created. However, it is effectively impossible to merge changes from the trunk to this branch. :(
comment:41 Changed 6 years ago by gkronber
r16637: merged changesets r16356:16565 from trunk/HeuristicLab.Data.Views to branch/HeuristicLab.Data.Views
comment:42 Changed 6 years ago by gkronber
r16638: merged r16527:16625 from trunk/HeuristicLab.Problems.DataAnalysis.Views to branch/HeuristicLab.Problems.DataAnalysis.Views
comment:43 Changed 6 years ago by gkronber
r16639: merged r16527:16565 from trunk/HeuristicLab.Problems.DataAnalysis.Symbolic.Views to branch/HeuristicLab.Problems.DataAnalysis.Symbolic.Views
comment:44 Changed 6 years ago by gkronber
r16640: merged r16565:16631 from trunk/HeuristicLab.Problems.DataAnalysis to branch/HeuristicLab.Problems.DataAnalysis (resolving all conflicts)
comment:45 Changed 6 years ago by gkronber
r16641: merged r16527:16625 from trunk/HeuristicLab.Problems.DataAnalysis.Symbolic.Regression to branch/HeuristicLab.Problems.DataAnalysis.Symbolic.Regression (resolving all conflicts)
Branch is now up-to-date with trunk. Damage was self-inflicted because I added all the StorableType attributes in the branch.
comment:46 Changed 6 years ago by gkronber
r16642: fixed a StorableType attribute after merge from trunk
comment:47 Changed 6 years ago by gkronber
r16643: fixed project references (removing obsolete references to HEAL.Attic, since we are using packagereferences now)
comment:48 Changed 6 years ago by gkronber
r16644: removed duplicate usings of HEAL.Attic and unnecessary usings
comment:49 Changed 6 years ago by gkronber
r16645: added an evalutor which optimizes constants first and then checks the constraint violations
comment:50 Changed 6 years ago by gkronber
comment:51 Changed 6 years ago by gkronber
comment:52 Changed 6 years ago by gkronber
r16699: fixed a bug which caused an exception when loading problem instances with string variables (e.g. Miba instances)
comment:53 Changed 6 years ago by bburlacu
r16713: Make IntervalConstraintsParser class static, adapt code. Add SymbolicRegressionConstraintSatisfactionEvaluator.
comment:54 Changed 6 years ago by gkronber
When a RegressionProblemData is restored from an old file the intervals parameter is missing. As a consequence creating solutions fails.
--> An AfterDeserialization hook is necessary.
comment:55 Changed 6 years ago by chaider
r16730 Added validation for NamedInterval. Show validation error inside table.
comment:56 Changed 6 years ago by chaider
r16731 Added commented example input for constraints definition.
comment:57 Changed 6 years ago by chaider
r16732 Added \n for end-of-line termination to regex
comment:58 Changed 6 years ago by chaider
r16735 fixed unicode for derivation symbol
comment:59 Changed 6 years ago by gkronber
comment:60 Changed 6 years ago by chaider
r16747 Added static CheckConstrain and CheckConstraints methods to SymbolicRegressionConstraintAnalyzer. Changed Apply method to use new CheckConstraints method
comment:61 Changed 6 years ago by chaider
- Changed Interval Constraints View
- Added View for successfully parsed Constraints
- Save Constraints as IntervalConstraints
comment:62 Changed 6 years ago by chaider
- Added commented infotext into IntervalConstraint Textbox
- Modified copy constructor
comment:63 Changed 6 years ago by chaider
r16761 removed semicolon
comment:64 Changed 6 years ago by chaider
r16770 Added Core Views
comment:65 Changed 6 years ago by chaider
r16771 Changed references
comment:66 Changed 6 years ago by chaider
r16772 Changed IntervalConstraints View
comment:67 Changed 6 years ago by chaider
- Fixes and updates in IntervalConstraintView
- Changed Parser
comment:68 Changed 6 years ago by chaider
r16774 Changed Parser and IntevalConstraint View
comment:69 Changed 6 years ago by chaider
r16775: merged r16757:16763 from trunk to branch
comment:70 Changed 6 years ago by chaider
- Added Expression change event
- Added errorProvider Validation
comment:71 Changed 6 years ago by chaider
- Fixed Dispose problem
- Added event handling for item selection
comment:72 Changed 6 years ago by chaider
- Changed field numberOfDerivation
- Added numberOfDerivation to Expression string
- Added numberOfDerivation to parser
comment:73 Changed 6 years ago by chaider
- Status changed from new to assigned
comment:74 Changed 6 years ago by chaider
- Owner changed from chaider to mkommend
- Status changed from assigned to reviewing
Should it be possible to change the Variable of the derivation in the Detail-View if so: Validating the Variable in the IntervalConstraintView needs to get the Target-Variable and the VariableList, therefore I need the ProblemData inside my IntervalConstraints.
comment:75 Changed 6 years ago by chaider
- Added Target prefix for parsed onstraints in IntervalConstraintParser
- Added isChecked validation for constraints in ConstraintAnalyzer
comment:76 Changed 6 years ago by chaider
- Added isChecked validation for SymbolicRegressionSingleObjectiveConstraintConstOptEvaluator
comment:77 Changed 6 years ago by chaider
r16787 Fixed isChecked events
comment:78 Changed 6 years ago by chaider
r16790 removed HeuristicLab.Core.Views from branch
comment:79 Changed 6 years ago by chaider
r16791 removed HeuristicLab.Data.Views from branch
comment:80 Changed 6 years ago by mkommend
Review comments
- Remove all resx (designer generated) files for the views
- Check and correct all namespaces (e.g. NameInterval lies in HL.Problems.DataAnalysis.Implementation, What is HeuristicLab.Problems.DataAnalysis.Annotations?)
- Remove and sort all usings
- All methods should have Access modifies specified (e.g. ConstaintAnalyzer.CheckConstraint)
- Remove commented code
- Check if all classes contain a License Header (e.g. IntervalConstraintView)
- Unify Encoding(e.g. RegressionProblemData is changed to use Western European instead of UTF8). I have personally never seen such a change.
HL.Problems.DataAnalysis.Symbolic.Views
- Remove ProblemData casts in InteractiveSymbolicDataAnalysisSolutionSimplifierView
HL.Problems.DataAnalysis.Symbolic.Regression
- Revert changes in SymbolicRegressionConstantOptimizationEvaluator (storable type attribute on EvaluationsCounter)
- SymbolicRegressionConstraintAnalyzer
- EnabledByDefault hides base member instead of overriding it!
- Remove casts to RegressionProblemData
- What is the purpose of the check in line 94?
- What is the purpose of the check in line 110? How can it be that the variable of a constraint is null?
- Reformat class to use longer lines than 80 char (e.g. line 112, 114, ...)
- Line 111 should not be there are check for the target variable or variable in general?
- Handling of error cases / exception in CheckConstraints
- Please use results parameters for creating / updating results.
- Don't misuse Dictionaries as result type
- Is the SymbolicRegressionConstraintSatisfactionEvaluator necessary? Please check with bburlacu
- SymbolicRegressionSingleObjectiveConstraintPearsonRSquaredEvaluator
- Contains lots of commented code
- What is the out parameter of CheckConstraintsViolations? Why is that necessary?
- SymbolicRegressionSolution
- Remove const string EstimatedDerivationInterval (it is not used at all)
- Line 133: Initialize with empty type (null) if possible to avoid duplicate calculation
- Adapt AfterDeserializationHook to include new results
- Line 165 avoid cast and access to values via parameters
- Line 172 error checking - What happens if the key is the targetVariable
- Suggestion: What about making GetIntervalEvaluations static? What is your opinion on this?
HL.Problems.DataAnalysis ==
- RegressionProblemData
- Add variable ranges and constraints to the according interface
- Move comment message to parsedConstraint as this has nothing todo with the ProblemData. Adapt comment to actually use reasonable variable names that actually occur in the problem data
- NamedInterval
- cloning ctor line 38 - create new interval from existing one to be extra safe although intervals are immutable
- Remove unused method InsertMany
- Why is there an add method, but no other manipulations methods? Furthermore, there are no events present that indicate changes to the underlying collection/dictionary.
- Maybe its better to expose an observable dictionary directly?!
- IntervalConstraint
- Not all setters fire the changed event.
- IsCheck should be renamed to either Check or Enabled
- I would remove the default ctor and the ctor with just a name, cause these are useless
- Remove ITextValue from the plugin (see ticket #2931).
- ParsedConstraint
- LicenseHeader is missing
- Contains unused using
- Never expose protected fields
- Is the reference to the problemData really necessary? I have seen that you forward the problemData to the parser for variable validation. Is there no other way around?
- Cloning constructor does not clone the values.
- Ctor base calls are missing.
- Ctors should forward to each other
HL.Problems.DataAnalysis.View
- IntervalConstraintView
- ctor line 31 set derivationInput.Checked to false, because the content is always null at this time
- UpdateControls line 97 - select emptyItem if constraint is no derivation
- UpdateExpression - make method static that returns a string
- Create a separate formater parse that is the inverse to the constraint parser
- lowerboundInput_Validating use preconditions and early exit (e.g. line 152 if(double.IsNan(value)) { e.Cancel = true; return;}
- Check calls to UpdateControls! These shouldn't be necessary in most cases, because the changed event should automatically trigger a GUI update!
- TextValueView and Type will soon be integrated with #2391 and should be afterwards removed from this branch
Testing
- Variable Ranges - Clicking on columns names for sorting throws an exception
- White space in IntervalConstraint commented text
- Parser does not work with variable containing a white space in their name (e.g. PowerMeter problem data)
- Creation of new constraint by the plus button does not work
- Genetic Programming - Symbolic Regression Sample does not work anymore (Exception during execution). A possible reason might be that variable ranges are missing.
comment:81 Changed 6 years ago by mkommend
- Owner changed from mkommend to chaider
- Status changed from reviewing to assigned
comment:82 Changed 6 years ago by chaider
r16800 Several changes regarding review comments
comment:83 Changed 6 years ago by chaider
- Added possibilty to use variables with whitespaces or derivation in constraint-definitions
comment:84 Changed 6 years ago by chaider
r16810 Added AfterDeserialization hook to RegressionProblemData to add VariableRanges and IntervalConstraints
comment:85 Changed 6 years ago by chaider
r16817 fixed sorting of columns in NamedIntervalsView
comment:86 Changed 6 years ago by gkronber
The branch cannot be compiled with the current trunk!
comment:87 Changed 6 years ago by gkronber
In r16800 the datatype for variableRanges was changed from Dictionary<...> to IDictionary<...> in method CheckConstraintViolations
However, since IntervalInterpreter in the trunk expects Dictionary this fails.
comment:88 Changed 6 years ago by gkronber
comment:89 Changed 6 years ago by gkronber
r16823: also use IDictionary instead of Dictionary in SimplifierView
comment:90 Changed 6 years ago by gkronber
comment:91 Changed 6 years ago by chaider
r16830 fixed review comments
comment:92 Changed 6 years ago by chaider
r16841 added getter and setter for variable ranges and interval constraints
comment:93 Changed 6 years ago by chaider
r16843 Removed Properties/Annotations.cs
comment:94 Changed 6 years ago by chaider
- removed/reordered usings
- removed storabletype in ConstantOptimizationEvaluator
- Added/Changed License informations
comment:95 Changed 6 years ago by chaider
r16845 Changed nodeIntervals in InteractiveSymbolicDataAnalysisSolutionSimlifierView
comment:96 Changed 6 years ago by chaider
r16846 Added SymbolicRegressionConstraintAnalyzer to AfterDeserailization Hook
comment:97 Changed 6 years ago by chaider
r16851 Refactored Constraint Evaluator and Analyzer
comment:98 Changed 6 years ago by chaider
r16862 Changed some views
comment:99 Changed 6 years ago by chaider
r16865 Added variable block-symbol (') for constraint parser
comment:100 Changed 6 years ago by chaider
r16866 changed ConstraintParser description text and example to meet new parser requirements
comment:101 Changed 6 years ago by chaider
r16870 changed content events in ParsedConstraintView
comment:102 Changed 6 years ago by chaider
r16879 Removed unused parser method
comment:103 Changed 6 years ago by chaider
- Disabled variable input field in IntervalConstraintView
- Added update definition method in IntervalConstraintView
- Added onChanged event for definition
comment:104 Changed 6 years ago by chaider
- removed unused constructors
- changed creation of IntervalConstraint in IntervalConstraintParser
comment:105 Changed 6 years ago by chaider
r16882 Added TODO issue for floating point calculation
comment:106 Changed 6 years ago by chaider
r16883 merged trunk into branch
comment:107 Changed 6 years ago by chaider
r16884 fixed storable problem within RegressionProblemData
comment:108 Changed 6 years ago by chaider
- removed/fixed usings
- removed .resx file
comment:109 Changed 6 years ago by chaider
r16886 Added Storable-Attribues to IntervalConstraint
comment:110 Changed 6 years ago by chaider
- Changed resizing to all cells instead of headers
- Update OnContentChangedMethod
comment:111 Changed 6 years ago by chaider
r16888 fixed NamedIntervalsView
comment:112 Changed 6 years ago by chaider
r16895 Changed IntervalConstraint
comment:113 Changed 6 years ago by chaider
r16896 Renaming and moving files:
Renamed: NamedIntervals => IntervalCollection
ParsedConstraint => ProblemDataConstraint
NamedIntervalsView => IntervalCollectionView
Folder Parser => Interval Moved: IntervalCollectionView from Regression/IntervalCollectionView => ./IntervalCollectionView
Interval, IntervalCollection from /Implementation => /Implementation/Interval
comment:114 Changed 6 years ago by chaider
- Added all fields to IntervalConstraintView
- Rearanged fields
- Updated NumberOfDerivation event
comment:115 Changed 6 years ago by chaider
- Added field Target to IntervalConstraint
- Prefixed Target-Item with Target:
- Removed prefixed Target: at derivations ==> show target field instead
comment:116 Changed 6 years ago by chaider
r16903 Added variable definition without escape chars
comment:117 Changed 6 years ago by chaider
r16904 Renamed NamedIntervals to IntervalCollection
comment:118 Changed 6 years ago by chaider
r16904 Changed OnRemoved event int ParsedConstraintView ==> Removing the constraint_changed event
comment:119 follow-up: ↓ 121 Changed 6 years ago by gkronber
The combobox for #Derivation and checkboxes in the "Interval Constraints Detail" are not disabled (set readonly).
comment:120 Changed 6 years ago by chaider
r16917 Reformated code and added null-condition to Intervals
comment:121 in reply to: ↑ 119 Changed 6 years ago by chaider
Replying to gkronber:
The combobox for #Derivation and checkboxes in the "Interval Constraints Detail" are not disabled (set readonly).
The #Derivation is only disabled at the Target-Constraint, because there we don't have a derivation. For the Derivation-Constraints it should be possible to change the number of derivation in the "Interval Constraints Detail View". The checkboxes should also be changeable in the Detail-View (inclusive or exclusive upper- or lower-bound and disabled/enabled)
comment:122 Changed 6 years ago by chaider
- changed VariableIntervals from ObservableDictionary to IDictionary
- Added methods to get single intervals and all intervals
comment:123 Changed 6 years ago by chaider
r16919 updated description text for constraints input
comment:124 Changed 6 years ago by chaider
r16920 Fixed displayed value in #Derivation-field for target constraints
comment:125 Changed 6 years ago by chaider
- Changed getInterval method to return Interval instead of KeyValuePair
- Calling getMethods from IntervalsCollection
comment:126 Changed 6 years ago by chaider
r16924 Added isEnabled to constructor
comment:127 Changed 6 years ago by chaider
r16925 Set the dictionary to private, renamed methods, added methods to operate on dictionary
comment:128 Changed 6 years ago by chaider
r16927 use methodes to operate on IntervalCollection dictionary
comment:129 Changed 6 years ago by chaider
r16928 Fixed cloning in ProblemDataConstraint
comment:130 Changed 6 years ago by chaider
- removed setter from VariableRanges and IntervalConstraints
- changed protected method in sealed class to private
comment:131 Changed 6 years ago by chaider
r16932 Use partial differential directly in strings instead of unicode
comment:132 Changed 6 years ago by gkronber
public ProblemDataConstraint() :base () { this.Input = exampleInput; this.constraints = new CheckedItemList<IntervalConstraint>(); this.ProblemData = null; } public ProblemDataConstraint(IRegressionProblemData problemData) : base() { this.Input = exampleInput; this.constraints = new List<IntervalConstraint>();
Why do you use CheckedItemList in the first ctor and List in the second?
comment:133 Changed 6 years ago by gkronber
Persistence of problems with intervals doesn't work at all.
It is never allowed to access data members of objects as long as serialization is not complete. You have many storable properties where in the setter you update the GUI. For example
[Storable] public bool InclusiveUpperBound { get => inclusiveUpperBound; set { if (inclusiveUpperBound != value) { inclusiveUpperBound = value; UpdateExpression(); OnChanged(); } }
This fails because value is not yet completely restored by HEAL.Attic. Attach the Storable property to the backing field instead.
[Storable(Name = "InclusiveUpperBound")] private bool inclusiveUpperBound; public bool InclusiveUpperBound { get => inclusiveUpperBound; set { if (inclusiveUpperBound != value) { inclusiveUpperBound = value; UpdateExpression(); OnChanged(); } } }
In ProblemDataConstraint.cs the property can be set to any enumerable (even a WhereSelect iterator!). It is strange to set the field to a lazy(!) enumerable and HEAL.Attic does not support serialization of lazy enumerables.
[Storable] public IEnumerable<IntervalConstraint> Constraints { get => constraints; set { if (constraints == value) return; constraints = value; OnChanged(); } }
`
comment:134 Changed 6 years ago by chaider
r16935 fixed persisting of problems
- Attached Storable propperty to backing fields
- Changed the lazy enumerable of the Constraints field
comment:135 Changed 6 years ago by chaider
r16936 Added #Derivation combobox and checkboxes to EnableStateOfControls to lock it while running
comment:136 Changed 6 years ago by chaider
r16937 Removed Name from Storable attribute and initialized constraints with empty List
comment:137 Changed 6 years ago by chaider
r16938 Added Changed event for ProblemDataConstraint
- Updated parseBtn_Click
comment:138 Changed 6 years ago by chaider
r16957 Fixed parsing of seperator between lower- and upper-bound to match exactly two points
comment:139 Changed 6 years ago by chaider
r16959 Changed unicode to derivative symbol in exampleInput
comment:140 Changed 6 years ago by chaider
r16960 Removed unused ReadOnly property from IntervalCollection
comment:141 Changed 6 years ago by chaider
r16963 Added OnTextChange event for constraints input; Added lock of constraints input
comment:142 Changed 6 years ago by chaider
r16964 Changed setter conditions to precondiation checks
comment:143 Changed 6 years ago by chaider
- Owner changed from chaider to mkommend
- Status changed from assigned to reviewing
comment:144 Changed 5 years ago by mkommend
r17144: Merged trunk changes into branch.
comment:145 Changed 5 years ago by mkommend
r17145: Corrected naming of IntervalCollection and according view.
comment:146 Changed 5 years ago by mkommend
r17146: Renamed views and updated error messages in constraint parser.
comment:147 Changed 5 years ago by gkronber
- Milestone changed from HeuristicLab 3.3.16 to HeuristicLab 3.3.17
comment:148 Changed 5 years ago by gkronber
- r17206 merged r17180:17184 from trunk to branch
- r17207 merged r17180:17184 from trunk to branch
- r17208 merged r17180:17184 from trunk to branch
- r17210 merged r17180:17184 from trunk to branch
comment:149 Changed 5 years ago by gkronber
r17211: added clean script
comment:150 Changed 5 years ago by chaider
r17249 Added label which indicates unparsed changes at constaints input view
comment:151 Changed 5 years ago by chaider
r17250 Added exception handling for constraint parser
comment:152 Changed 5 years ago by chaider
r17256: Added info text and info text color to ProblemDataConstraint
comment:153 follow-up: ↓ 155 Changed 5 years ago by gkronber
Interval for cbrt(-8) produces [NaN, NaN] but should be [-2, -2].
comment:154 Changed 5 years ago by chaider
r17300 Fixed calculation of cubic roots (negative numbers)
comment:155 in reply to: ↑ 153 Changed 5 years ago by chaider
comment:156 Changed 5 years ago by gkronber
Interval also does not yet support abs() and aq() functions.
comment:157 follow-up: ↓ 159 Changed 5 years ago by chaider
r17304 merged trunk into branch
comment:158 Changed 5 years ago by gkronber
r17313: merged r17301:17305 from trunk:Interval.cs to branch:Interval.cs
comment:159 in reply to: ↑ 157 Changed 5 years ago by gkronber
Replying to chaider:
r17304 merged trunk into branch
I suspect some warnings in the merge were ignored because changes to Interval.cs have not been merged in r17304 (because the files are in a different folder in the branch than in the trunk).
I have therefore merged the changes to the file Interval.cs in r17313 explicitly.
comment:160 follow-up: ↓ 163 Changed 5 years ago by chaider
Remove the distinction between open/closed/partial opened intervals to simplify the calculation of interval arithmetic.
comment:161 Changed 5 years ago by chaider
- Owner changed from mkommend to chaider
- Status changed from reviewing to assigned
comment:162 Changed 5 years ago by chaider
r17368 Merged trunk into branch
comment:163 in reply to: ↑ 160 Changed 5 years ago by chaider
comment:164 Changed 5 years ago by chaider
r17372 Changed partial dependence plot range to interval range
comment:165 Changed 5 years ago by chaider
- Owner changed from chaider to mkommend
- Status changed from assigned to reviewing
comment:166 Changed 5 years ago by chaider
r17482 Fixed constraint satisfied check for the const opt constraint evaluator
comment:167 Changed 5 years ago by mkommend
r17501: Merged trunk changes into branch, corrected project files (output path for all configurations, reference paths), resolved merge conflicts in InteractiveSymbolicDataAnalysisSolutionSimplifierView.
comment:168 Changed 5 years ago by mkommend
r17504: Added property in ProblemDataConstraints for EnabledConstraints.
comment:169 Changed 5 years ago by mkommend
r17505: Minor change in Interval ctor.
comment:170 Changed 5 years ago by mkommend
r17506: Further minor refactorings and renaming of members.
comment:171 Changed 5 years ago by mkommend
Review Comments
HeuristicLab.Problems.DataAnalysis.Symbolic.Views-3.4
InteractiveSymbolicDataAnalysisSolutionSimplifierView
- Error handling for unknown symbols of the interval interpreter is missing. Currently the whole simplifier becomes unusable if an unknown symbol to the interval interpreter is encountered (e.g., cube, power).
HeuristicLab.Problems.DataAnalysis.Symbolic.Regression-3.4
Symbolic Regression Solution
- IntervalEvaluation should be renamed to ModelBounds (including all related methods, fields, strings, ...).
- Error handling for unkown symbols!
SymbolicRegressionConstraintAnalyzer
- I also suspect that errors wrt. unkown symbols are not handled and it is not defined what happens if those symbols are encountered.
- Please use results parameter when writing storing results. This is much easier than creating results on your own.
SymbolicRegressionSingleObjectiveConstraintPearsonRSquaredEvaluator
- Why are not the Constraints first checked in the Calculate method?
- Can we refactor the whole Calculate method instead of duplication the source? For example to something like this
public static double Calculate(ISymbolicDataAnalysisExpressionTreeInterpreter interpreter, ISymbolicExpressionTree solution, double lowerEstimationLimit, double upperEstimationLimit, IRegressionProblemData problemData, IEnumerable<int> rows, bool applyLinearScaling) { var constraints = problemData.IntervalConstraints.Constraints.Where(x => x.Enabled); var variableRanges = problemData.VariableRanges.GetIntervals(); if (!SymbolicRegressionConstraintAnalyzer.ConstraintsSatisfied(constraints, variableRanges, solution)) { return 0; } var r2 = SymbolicRegressionSingleObjectivePearsonRSquaredEvaluator.Calculate(interpreter, solution, lowerEstimationLimit, upperEstimationLimit, problemData, rows, applyLinearScaling); return r2; }
SymbolicRegressionSingleObjectiveConstraintConstOptEvaluator
- It would be better to check for constraints before evaluating the quality, because if the constaints are not satisfied constants optimization is superfluos.
- The method HasConstraintVioluations is obsolete and should be changed to a call to SymbolicRegressionConstraintAnalyzer.ConstraintsSatisfied
comment:172 Changed 5 years ago by chaider
r17507 Added HeuristicLab.Problems.DataAnalysis.Symbolic to branch
comment:173 Changed 5 years ago by chaider
r17508 Modified paths
comment:174 Changed 5 years ago by chaider
- Added cube, cuberoot, absolute and analytical quotient to IntervalInterpreter
- Extended the IsCompatible method in IntervalInterpreter (removed power, root because not implemented in DerivativeCalculator
- Added checks for known symbols at InteractiveSymbolicDataAnalysisSolutionSimplifierView and SymbolicRegressionSolution
- Renamed IntervalEvaluation to ModelBounds
comment:175 Changed 5 years ago by chaider
- Owner changed from mkommend to chaider
- Status changed from reviewing to assigned
comment:176 Changed 5 years ago by chaider
- Changed constraint violation table to ResultParameter
- Changed symbol check to include DerivativeCalculator symbols
- Moved SymbolicRegressionConstraintAnalyzer to plugins root
- Added Power and Root to IntervalInterpreter
comment:177 Changed 5 years ago by chaider
comment:178 Changed 5 years ago by chaider
r17512 Check if the derived tree contains not allowed symbols
comment:179 Changed 5 years ago by chaider
- Owner changed from chaider to mkommend
- Status changed from assigned to reviewing
comment:180 Changed 5 years ago by mkommend
comment:181 Changed 5 years ago by mkommend
- Owner changed from mkommend to chaider
- Status changed from reviewing to assigned
Please test the implemented functionality with the GP sample on the start page.
comment:182 Changed 5 years ago by chaider
r17542 fixed bounds check in interval cstr
comment:183 follow-up: ↓ 185 Changed 5 years ago by mkommend
ToDos:
- Correct build configurations (release, debug, output paths, references, ...)
- Interval calculation for Root symbol is not implemented correctly
- Test the whole implementation!
comment:184 Changed 5 years ago by chaider
- Status changed from assigned to accepted
comment:185 in reply to: ↑ 183 Changed 5 years ago by chaider
Replying to mkommend:
ToDos:
- Correct build configurations (release, debug, output paths, references, ...)
- Interval calculation for Root symbol is not implemented correctly
- Test the whole implementation!
As discussed with mkommend, the constraint related parts will be removed from this ticket and implemented in another ticket together with new evaluators, analyzers and other constraint related features.
comment:186 Changed 5 years ago by chaider
r17547 Removed constraint related parts from branch
comment:187 Changed 5 years ago by chaider
r17548 removed ProblemDataConstraint, ConstraintEvaluator and ConstraintAnalyzer
comment:188 Changed 5 years ago by chaider
r17549 Updated root symbol
comment:189 Changed 5 years ago by chaider
r17552 Updated paths
comment:190 Changed 5 years ago by chaider
r17553 Added check if ModelBounds can be calculated
comment:191 Changed 5 years ago by chaider
r17555 changed getter/setter from modelbounds
comment:192 Changed 5 years ago by chaider
- Owner changed from chaider to mkommend
- Status changed from accepted to reviewing
Added cases for root:
root(0, 0) = 0 https://www.wolframalpha.com/input/?i=root%280%2C+0%29
root(0, not 0) = undef https://www.wolframalpha.com/input/?i=root%280%2C+1%29
root(-1, 0) = complex inf.
Discuss with mkommend: Shorten edge cases of root to be always undefined
comment:193 Changed 5 years ago by mkommend
r17561: Corrected path of Hl.Problems.DataAnalysis.Symbolic project.
comment:194 Changed 5 years ago by chaider
r17562 removed root/power symbols
comment:195 Changed 5 years ago by chaider
r17563 removed SymbolicRegressionSingleObjectiveConstraintConstOptEvaluator from branch
comment:196 Changed 5 years ago by mkommend
r17564: Minor changes in interval collection and interval interpreter.
comment:197 Changed 5 years ago by chaider
r17565 fixed bug in gridview in IntervalCollectionView
comment:198 Changed 5 years ago by mkommend
r17572: Removed groupbox in IntervalCollectionView.
comment:199 Changed 5 years ago by mkommend
r17579: Merged branch into trunk.
comment:200 Changed 5 years ago by mkommend
- Status changed from reviewing to readytorelease
- Version changed from branch to trunk
comment:201 Changed 5 years ago by chaider
- Owner changed from mkommend to chaider
- Status changed from readytorelease to assigned
- Version changed from trunk to branch
comment:202 Changed 5 years ago by chaider
- Status changed from assigned to accepted
comment:203 Changed 5 years ago by mkommend
r17580: Forgot to commit merge infos and outdated interval class file.
comment:204 Changed 5 years ago by mkommend
- Version changed from branch to trunk
comment:205 Changed 5 years ago by chaider
r17583 Modified sqrt symbol: added negative square root to interval
comment:206 Changed 5 years ago by chaider
r17584 Updated unit tests for interval
comment:207 Changed 5 years ago by chaider
Discuss the inclusion of both sqrt results (with inclusion of both parts AQ will always ends with [-inf. .. inf]).
comment:208 Changed 4 years ago by chaider
r17754 Added some trigonometric function tests for IA
comment:209 Changed 4 years ago by mkommend
- Owner changed from chaider to mkommend
- Status changed from accepted to reviewing
comment:210 Changed 4 years ago by mkommend
- Status changed from reviewing to readytorelease
comment:211 Changed 4 years ago by mkommend
comment:212 Changed 4 years ago by mkommend
- Resolution set to done
- Status changed from readytorelease to closed
r16368 added new branch