Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
07/31/18 13:26:33 (6 years ago)
Author:
fholzing
Message:

#2904: Better method-ordering, variable-naming and cleaned up some code not necessary anymore.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2904_CalculateImpacts/HeuristicLab.Problems.DataAnalysis.Views/3.4/Regression/RegressionSolutionVariableImpactsView.cs

    r16034 r16035  
    160160      int count = originalVariableOrdering.Count;
    161161      int i = 0;
    162 
    163       foreach (var variable in originalVariableOrdering) {
     162      var modifiableDataset = ((Dataset)(problemData.Dataset).Clone()).ToModifiable();
     163      IEnumerable<int> rows = RegressionSolutionVariableImpactsCalculator.GetPartitionRows(dataPartition, problemData);
     164
     165      //Calculate original quality-values (via calculator, default is R²)
     166      OnlineCalculatorError error;
     167      IEnumerable<double> targetValuesPartition = rows.Select(v => problemData.TargetVariableValues.ElementAt(v));
     168      IEnumerable<double> estimatedValuesPartition = rows.Select(v => estimatedValues.ElementAt(v));
     169      var originalCalculatorValue = RegressionSolutionVariableImpactsCalculator.CalculateVariableImpact(targetValuesPartition, estimatedValuesPartition, out error);
     170      if (error != OnlineCalculatorError.None) throw new InvalidOperationException("Error during calculation.");
     171
     172      foreach (var variableName in originalVariableOrdering) {
    164173        if (cancellationToken.Token.IsCancellationRequested) { return null; }
    165174        progress.ProgressValue = (double)++i / count;
    166         progress.Status = string.Format("Calculating impact for variable {0} ({1} of {2})", variable, i, count);
    167 
    168         double impact = RegressionSolutionVariableImpactsCalculator.CalculateImpact(variable, model, problemData, Content.EstimatedValues, dataPartition, replMethod, factorReplMethod);
    169         impacts.Add(new Tuple<string, double>(variable, impact));
     175        progress.Status = string.Format("Calculating impact for variable {0} ({1} of {2})", variableName, i, count);
     176
     177        double impact = RegressionSolutionVariableImpactsCalculator.CalculateImpact(variableName, model, modifiableDataset, rows, targetValuesPartition, originalCalculatorValue, replMethod, factorReplMethod);
     178        impacts.Add(new Tuple<string, double>(variableName, impact));
    170179      }
    171180
Note: See TracChangeset for help on using the changeset viewer.