Free cookie consent management tool by TermsFeed Policy Generator

Opened 8 years ago

Closed 8 years ago

#2597 closed enhancement (done)

Gradient chart view for regression solutions

Reported by: bburlacu Owned by: mkommend
Priority: medium Milestone: HeuristicLab 3.3.14
Component: Algorithms.DataAnalysis.Views Version: 3.3.13
Keywords: Cc:

Description (last modified by pfleck)

As the name suggests, this view contains a chart plotting the gradient of the target variable with respect to a chosen input variable. The user may then vary the input value (by means of mouse interaction with the chart) in order to see how the target response changes.

The gradient chart supports synchronisation of backing data using a shared modifiable dataset, allowing the user to get a complete view of the target variation by arranging side by side multiple charts corresponding to different input variables.

Additional features:

  • Responses for variables that are not used in the model should be grayed-out or hidden. Thos, methods for querying the actual used inputs for a regression model are implemented.
  • If a model can estimate the variance of a sample (e.g. Gaussian process), the confidence interval should be shown.

Example gradient chart:

Known issues of the RegressionSolutionTargetResponseGradientView:

  • Zooming does not realign the density information.
  • Resizing with enabled density information will not update the density information and the density chart may be incorrectly aligned with the gradient chart. Re-checking a variable or changing the density combo box fixes this.
  • Resizing do not change the height of the GradientCharts, to achieve the default 4/3 width/height-aspect any variable can be re-checked.
  • Drag/Drop an additional solution onto a GradientChart does not update all other GradientCharts in the TargetResponseView.

Attachments (1)

gradient-chart.png (13.6 KB) - added by bburlacu 8 years ago.

Download all attachments as: .zip

Change History (70)

Changed 8 years ago by bburlacu

comment:1 Changed 8 years ago by bburlacu

  • Description modified (diff)
  • Status changed from new to assigned

comment:2 Changed 8 years ago by bburlacu

  • Status changed from assigned to accepted

r13780: Initial commit implementing gradient view and chart.

comment:3 Changed 8 years ago by bburlacu

r13783: Fix text annotations.

comment:4 Changed 8 years ago by bburlacu

r13808: Start implementing table layout panel for gradient charts in a separate view.

comment:5 Changed 8 years ago by pfleck

r13810: Branched HeuristicLab.Algorithms.DataAnalysis.Views plugin. r13811: Updated project references.

comment:6 Changed 8 years ago by pfleck

r13812: Added an new View for GaussianProcessSolutions to be able to interactively show the gradients and confidence intervals for user-input ranges.

comment:7 Changed 8 years ago by pfleck

r13816:

  • Fixed typo in class/filename.
  • Added new control that shows density information adjacent to the trackbar.

comment:8 Changed 8 years ago by bburlacu

r13817: Added RegressionSolutionTargetResponseGradientView and updated GradientChart.

Last edited 8 years ago by bburlacu (previous) (diff)

comment:9 Changed 8 years ago by bburlacu

r13818: Fixed small bug when the values are not correctly rendered in the chart initially. removed unused variable limits from view.

comment:10 Changed 8 years ago by pfleck

r13819 Branched HeuristicLab.Algorithms.DataAnalysis and HeuristicLab.Problems.DataAnalysis.

comment:11 Changed 8 years ago by pfleck

  • Description modified (diff)

comment:12 Changed 8 years ago by bburlacu

  • Description modified (diff)

r13820: Added flags for controlling the display of legend, axis labels, or vertical cursor on the chart.

comment:13 Changed 8 years ago by pfleck

  • Description modified (diff)

r13823:

  • Added new interface IConfidenceBoundRegressionModel and IConfidenceBoundRegressionSolution for regression models/solutions that support confidence information on estimated samples.
  • Renamed GetEstimatedVariance to GetEstimatedVariances to be consistent with GetEstimatedValues.

comment:14 Changed 8 years ago by pfleck

r13824:

  • Added new Model property in IConfidenceBoundRegressionSolution.
  • Added ConfidenceBoundRegressionSolution base and methods to it from GaussianProcessRegressionSolution.
  • Replaced RegressionSolutionGradientView with GaussianProcessRegressionSolutionInteractiveRangeEstimatorView. Also moved DensityTrackbar to Problems.DataAnalysis.Views Plugin.
  • DensityTrackbar initial position is now where the density is highest.

comment:15 Changed 8 years ago by bburlacu

r13825: Fix small bug showing the vertical annotation.

comment:16 Changed 8 years ago by bburlacu

r13828: Simplify code and ensure charts are sorted according to the variable order in the list view.

comment:17 Changed 8 years ago by bburlacu

r13829: Speed up response calculation in the GradientChart by using an internal dataset to store variable values.

comment:18 Changed 8 years ago by bburlacu

r13830: Removed unused Configure method in the GradientChart.

comment:19 Changed 8 years ago by pfleck

r13831

  • merged recent trunk changes for GetUsedVariablesForPrediction method.
  • Merged chart from RegressionSolutionGradientView and existing GradientChart.
  • Used the GradientChart in the RegressionSolutionGradientView.

comment:20 Changed 8 years ago by pfleck

r13836 Implemented correct coloring when multiple solutions are added for comparison with respect potential overlapping confidence intervals.

comment:21 Changed 8 years ago by pfleck

r13837:

  • Reverted UpdateAutomatically property.
  • Made UpdateChart method async to avoid blocking the GUI thread.
  • Changed Content type of RegressionSolutionGradientView to IRegressionSolution.

comment:22 Changed 8 years ago by pfleck

r13840 Implemented cancellation of chart update when new update is called during calculation.

comment:23 Changed 8 years ago by pfleck

r13842

  • Reduced memory consumption greatly by reusing existing datapoints from existing series instead of creating new series on update.
  • Rearranged methods and properties in GradientChart.
  • Added properties to set fixed axis limits instead of calculation.

comment:24 Changed 8 years ago by pfleck

r13843 Implemented "sync" y-axis for Target Response Gradient View.

comment:25 Changed 8 years ago by pfleck

r13845

  • All used variables of a model are initially checked when opening the Target Response Gradient View.
  • Fixed a bug on axis scaling.

comment:26 Changed 8 years ago by pfleck

r13846

  • Added a manual y-axis control.
  • Fixed bug with dragging the cursor in the GradientChart out of the chart.

comment:27 Changed 8 years ago by pfleck

r13850

  • Extracted DensityChart from DensityTrackbar.
  • Added DensityChart to RegressionSolutionTargetResponseView with different options (none/training/test/all).
  • Moved RegressionSolutionGradientView and RegressionSolutionTargetResponseView to subfolder.

comment:28 Changed 8 years ago by pfleck

r13853

  • Added GradientChartConfigurationDialog to allow setup x/y axis and drawing steps.
  • Added "calculating pending"-icon only after 100ms to avoid flickering.
  • Fixed some small issues.

comment:29 Changed 8 years ago by pfleck

r13855

  • Added validation in GradientChartConfigurationDialog and DensityTrackbar.
  • Added optional configuration button for GradientChart.

comment:30 Changed 8 years ago by pfleck

r13856

  • Generalized GaussianProcessRegressionSolution...Views to ConfidenceBasedRegressionSolution...Views.
  • Added "all" column for variances.

comment:31 Changed 8 years ago by pfleck

  • Description modified (diff)

comment:32 Changed 8 years ago by pfleck

r13858

  • Made GradientChartConfigurationDialog fixed size.
  • Fixed a project reference and disabled copy local.

comment:33 Changed 8 years ago by pfleck

r13859: Forgot committing file.

comment:34 Changed 8 years ago by pfleck

  • Owner changed from bburlacu to mkommend
  • Status changed from accepted to reviewing

comment:35 Changed 8 years ago by mkommend

  • Owner changed from mkommend to pfleck
  • Status changed from reviewing to assigned

comment:36 Changed 8 years ago by pfleck

r13948

  • Merged recent trunk changes.
  • Adapted VariablesUsedForPrediction property for RegressionSolutionTargetResponseGradientView.
  • Fixed a reference (.dll to project ref).

comment:37 Changed 8 years ago by pfleck

  • Owner changed from pfleck to mkommend
  • Status changed from assigned to reviewing

comment:38 Changed 8 years ago by bburlacu

  • Owner changed from mkommend to bburlacu
  • Status changed from reviewing to assigned

comment:39 Changed 8 years ago by bburlacu

r13994: Merged trunk changes.

comment:40 Changed 8 years ago by bburlacu

r13995:

  • Improved drag & drop support for all charts.
  • Added configuration option to adjust the number of columns in the view.
  • Fixed bug where attempting to set row & column style would result in an exception.
  • Fixed boundaries of the vertical annotation line in the GradientChart.

comment:41 Changed 8 years ago by bburlacu

r13996: Removed resx files from project. Better handling of model simplification.

comment:42 Changed 8 years ago by bburlacu

r13999: Fix position of the error provider icon for the validation of the columns textbox. Removed .resx files from project.

comment:43 Changed 8 years ago by bburlacu

r14006: Fixed a couple of bugs in the GradientChart related to the configuration of axis limits.

comment:44 Changed 8 years ago by bburlacu

  • Owner changed from bburlacu to mkommend
  • Status changed from assigned to reviewing

r14014: Fixed small issue with layout update when the number of columns was changed. Improved layout of the configuration panel. Made GradientView invisible as an item in the Solution View. r14021: Fixed some additional issues with the density charts (which are now turned on by default).

Last edited 8 years ago by bburlacu (previous) (diff)

comment:45 follow-up: Changed 8 years ago by gkronber

The density plot does not respond to zooming

comment:46 in reply to: ↑ 45 ; follow-up: Changed 8 years ago by gkronber

Replying to gkronber:

The density plot does not respond to zooming

I think it would be OK to just prevent zooming in these charts.

comment:47 in reply to: ↑ 46 Changed 8 years ago by pfleck

Currently, the gradient and density chart are two separate charts, therefore aligning them is done manual. The problem is that there are no events fired when the zoom/scroll is actually changed.

I would suggest to keep zooming but hiding the density when the user zooms in.

Replying to gkronber:

Replying to gkronber:

The density plot does not respond to zooming

I think it would be OK to just prevent zooming in these charts.

comment:48 Changed 8 years ago by pfleck

  • Owner changed from mkommend to pfleck
  • Status changed from reviewing to assigned

comment:49 Changed 8 years ago by pfleck

r14089

  • Hide density chart when zoom is active.
  • Changed columns textbox to numberic up/down control (thus removed validation).

comment:50 Changed 8 years ago by pfleck

  • Owner changed from pfleck to mkommend
  • Status changed from assigned to reviewing

comment:51 Changed 8 years ago by mkommend

  • Owner changed from mkommend to pfleck
  • Status changed from reviewing to assigned

r14095: Merged all changesets from HeuristiLab.RegressionSolutionGradientView into the trunk.

comment:52 Changed 8 years ago by mkommend

r14096: Adapted unit test to changes in gaussian process model.

comment:53 Changed 8 years ago by pfleck

  • Status changed from assigned to accepted

comment:54 Changed 8 years ago by mkommend

r14098: Corrected plugin dependencies of Algorithms.DataAnalysis.Views.

comment:55 Changed 8 years ago by pfleck

r14099

  • Renamed IConfidenceBoundRegressionModel/Solution+Views to IConfidenceRegressionModel/Solution.
  • Moved IConfidenceRegressionModel and IConfidenceRegressionSolution into own files.
  • Moved (helper) controls into separate sub folder.
  • Fixed typo.

comment:56 Changed 8 years ago by pfleck

r14118:

  • Fixed issue with automatic movement of the cursor in some cases (missing position changed event).
  • Disable the whole GradientChartConfigurationDialog during chart recalculation after pressing apply.

comment:57 Changed 8 years ago by pfleck

r14119 deleted branch

comment:58 Changed 8 years ago by pfleck

  • Owner changed from pfleck to mkommend
  • Status changed from accepted to reviewing

comment:59 Changed 8 years ago by mkommend

The following changesets must be released (merged to stable): r14095, r14096, r14098, r14099, r14118, r14119

comment:60 Changed 8 years ago by pfleck

r14131

  • Moved variable name + cursor value to the top.
  • Fixed some warnings (missing async await).

comment:61 Changed 8 years ago by mkommend

  • Status changed from reviewing to readytorelease

This ticket depends on #2594 which must be merged to stable in advance.

Last edited 8 years ago by mkommend (previous) (diff)

comment:63 Changed 8 years ago by pfleck

r14158 Fixed an issue with wrongly positioned title and density chart after initialization.

comment:64 Changed 8 years ago by bburlacu

r14157: Avoid calling CalculateAxesInterval when the interval is invalid.

comment:65 Changed 8 years ago by mkommend

r14166: Merged r14095, r14096, r14098, r14099, r14118, r14119, r14131, r14157, r14158 into stable.

comment:66 follow-up: Changed 8 years ago by gkronber

StudentTProcess has been added to the stable branch with r14166 even though it is already deleted in the trunk (see r13975 and #2541)

comment:67 in reply to: ↑ 66 Changed 8 years ago by mkommend

Replying to gkronber:

StudentTProcess has been added to the stable branch with r14166 even though it is already deleted in the trunk (see r13975 and #2541)

Thank you for spotting this. The StudentTProcessModel has been reintroduced with r14095 while merging a branch in to the trunk.

comment:68 Changed 8 years ago by mkommend

r14175: Deleted StudentTProcessModel.cs from the trunk.

comment:69 Changed 8 years ago by mkommend

r14176: Merged r14175 into stable.

comment:70 Changed 8 years ago by mkommend

  • Resolution set to done
  • Status changed from readytorelease to closed
Note: See TracTickets for help on using tickets.