Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
05/20/11 15:07:45 (13 years ago)
Author:
gkronber
Message:

#1450 adapted views for regression solution to work for ensembles of regression solutions as well.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/sources/HeuristicLab.Problems.DataAnalysis.Views/3.4/Regression/RegressionSolutionEstimatedValuesView.cs

    r6058 r6238  
    3232  [Content(typeof(IRegressionSolution))]
    3333  public partial class RegressionSolutionEstimatedValuesView : ItemView, IRegressionSolutionEvaluationView {
    34     private const string TARGETVARIABLE_SERIES_NAME = "TargetVariable";
    35     private const string ESTIMATEDVALUES_SERIES_NAME = "EstimatedValues";
     34    private const string TARGETVARIABLE_SERIES_NAME = "Target Variable";
     35    private const string ESTIMATEDVALUES_TRAINING_SERIES_NAME = "Estimated Values (training)";
     36    private const string ESTIMATEDVALUES_TEST_SERIES_NAME = "Estimated Values (test)";
    3637
    3738    public new IRegressionSolution Content {
     
    8586        DoubleMatrix matrix = null;
    8687        if (Content != null) {
    87           double[,] values = new double[Content.ProblemData.Dataset.Rows, 4];
     88          double[,] values = new double[Content.ProblemData.Dataset.Rows, 5];
     89          // initialize to double.NaN
     90          for (int row = 0; row < Content.ProblemData.Dataset.Rows; row++)
     91            for (int column = 0; column < 5; column++)
     92              values[row, column] = double.NaN;
    8893
    8994          double[] target = Content.ProblemData.Dataset.GetVariableValues(Content.ProblemData.TargetVariable);
    90           double[] estimated = Content.EstimatedValues.ToArray();
     95          var estimated_training = Content.EstimatedTrainingValues.GetEnumerator();
     96          var estimated_test = Content.EstimatedTestValues.GetEnumerator();
     97
     98          foreach (var row in Content.ProblemData.TrainingIndizes) {
     99            estimated_training.MoveNext();
     100            values[row, 1] = estimated_training.Current;
     101          }
     102
     103          foreach (var row in Content.ProblemData.TestIndizes) {
     104            estimated_test.MoveNext();
     105            values[row, 2] = estimated_test.Current;
     106          }
     107
    91108          for (int row = 0; row < target.Length; row++) {
    92109            values[row, 0] = target[row];
    93             values[row, 1] = estimated[row];
    94             values[row, 2] = Math.Abs(estimated[row] - target[row]);
    95             values[row, 3] = Math.Abs(values[row, 2] / target[row]);
     110            double est = values[row, 1];
     111            if (!double.IsNaN(est)) {
     112              values[row, 3] = Math.Abs(est - target[row]);
     113              values[row, 4] = Math.Abs(values[row, 3] / target[row]);
     114            }
    96115          }
    97116
    98117          matrix = new DoubleMatrix(values);
    99           matrix.ColumnNames = new string[] { TARGETVARIABLE_SERIES_NAME, ESTIMATEDVALUES_SERIES_NAME, "Absolute Error", "Relative Error" };
     118          matrix.ColumnNames = new string[] { TARGETVARIABLE_SERIES_NAME, ESTIMATEDVALUES_TRAINING_SERIES_NAME, ESTIMATEDVALUES_TEST_SERIES_NAME, "Absolute Error (training)", "Relative Error (training)" };
    100119        }
    101120        matrixView.Content = matrix;
Note: See TracChangeset for help on using the changeset viewer.