Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
06/30/10 10:58:01 (14 years ago)
Author:
mkommend
Message:

corrected DataAnalysis.Views.ResultsView to use an internal DoubleMatrix (ticket #1020)

Location:
trunk/sources/HeuristicLab.Problems.DataAnalysis.Views/3.3
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/sources/HeuristicLab.Problems.DataAnalysis.Views/3.3/ResultsView.Designer.cs

    r3916 r3979  
    4444    /// </summary>
    4545    private void InitializeComponent() {
    46       components = new System.ComponentModel.Container();
     46      this.matrixView = new HeuristicLab.Data.Views.StringConvertibleMatrixView();
     47      this.SuspendLayout();
     48      //
     49      // matrixView
     50      //
     51      this.matrixView.Caption = "StringConvertibleMatrix View";
     52      this.matrixView.Content = null;
     53      this.matrixView.Dock = System.Windows.Forms.DockStyle.Fill;
     54      this.matrixView.Location = new System.Drawing.Point(0, 0);
     55      this.matrixView.Name = "matrixView";
     56      this.matrixView.ReadOnly = true;
     57      this.matrixView.Size = new System.Drawing.Size(494, 317);
     58      this.matrixView.TabIndex = 0;
     59      //
     60      // ResultsView
     61      //
     62      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
    4763      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
     64      this.Controls.Add(this.matrixView);
     65      this.Name = "ResultsView";
     66      this.Size = new System.Drawing.Size(494, 317);
     67      this.ResumeLayout(false);
     68
    4869    }
    4970
    5071    #endregion
     72
     73    private HeuristicLab.Data.Views.StringConvertibleMatrixView matrixView;
    5174  }
    5275}
  • trunk/sources/HeuristicLab.Problems.DataAnalysis.Views/3.3/ResultsView.cs

    r3916 r3979  
    3030using HeuristicLab.MainForm.WindowsForms;
    3131using HeuristicLab.Data.Views;
     32using HeuristicLab.Data;
     33using HeuristicLab.Problems.DataAnalysis.Evaluators;
    3234
    3335namespace HeuristicLab.Problems.DataAnalysis.Views {
    3436  [Content(typeof(DataAnalysisSolution),false)]
    3537  [View("Results View")]
    36   public partial class ResultsView : StringConvertibleMatrixView {
     38  public partial class ResultsView : AsynchronousContentView {
     39    private List<string> rowNames = new List<string>() { "MeanSquaredError", "CoefficientOfDetermination", "MeanAbsolutePercentageError" };
     40    private List<string> columnNames = new List<string>() { "Training", "Test" };
     41
    3742    public ResultsView() {
    3843      InitializeComponent();
     
    4348      set { base.Content = value; }
    4449    }
     50
     51    protected override void RegisterContentEvents() {
     52      base.RegisterContentEvents();
     53      Content.ModelChanged += new EventHandler(Content_ModelChanged);
     54      Content.ProblemDataChanged += new EventHandler(Content_ProblemDataChanged);
     55      Content.EstimatedValuesChanged += new EventHandler(Content_EstimatedValuesChanged);
     56    }
     57    protected override void DeregisterContentEvents() {
     58      base.DeregisterContentEvents();
     59      Content.ModelChanged -= new EventHandler(Content_ModelChanged);
     60      Content.ProblemDataChanged -= new EventHandler(Content_ProblemDataChanged);
     61      Content.EstimatedValuesChanged -= new EventHandler(Content_EstimatedValuesChanged);
     62    }
     63
     64    private void Content_ModelChanged(object sender, EventArgs e) {
     65      UpdateView();
     66    }
     67    private void Content_ProblemDataChanged(object sender, EventArgs e) {
     68      UpdateView();
     69    }
     70    private void Content_EstimatedValuesChanged(object sender, EventArgs e) {
     71      UpdateView();
     72    }
     73
     74    protected override void OnContentChanged() {
     75      base.OnContentChanged();
     76      UpdateView();
     77    }
     78    private void UpdateView() {
     79      if (Content != null) {
     80        DoubleMatrix matrix = new DoubleMatrix(rowNames.Count, columnNames.Count);
     81        matrix.RowNames = rowNames;
     82        matrix.ColumnNames = columnNames;
     83        matrix.SortableView = false;
     84
     85        IEnumerable<double> originalTrainingValues = Content.ProblemData.Dataset.GetVariableValues(Content.ProblemData.TargetVariable.Value, Content.ProblemData.TrainingSamplesStart.Value, Content.ProblemData.TrainingSamplesEnd.Value);
     86        IEnumerable<double> originalTestValues = Content.ProblemData.Dataset.GetVariableValues(Content.ProblemData.TargetVariable.Value, Content.ProblemData.TestSamplesStart.Value, Content.ProblemData.TestSamplesEnd.Value);
     87        matrix[0, 0] = SimpleMSEEvaluator.Calculate(originalTrainingValues, Content.EstimatedTrainingValues);
     88        matrix[0, 1] = SimpleMSEEvaluator.Calculate(originalTestValues, Content.EstimatedTestValues);
     89        matrix[1, 0] = SimpleRSquaredEvaluator.Calculate(originalTrainingValues, Content.EstimatedTrainingValues);
     90        matrix[1, 1] = SimpleRSquaredEvaluator.Calculate(originalTestValues, Content.EstimatedTestValues);
     91        matrix[2, 0] = SimpleMeanAbsolutePercentageErrorEvaluator.Calculate(originalTrainingValues, Content.EstimatedTrainingValues);
     92        matrix[2, 1] = SimpleMeanAbsolutePercentageErrorEvaluator.Calculate(originalTestValues, Content.EstimatedTestValues);
     93
     94        matrixView.Content = matrix;
     95      } else
     96        matrixView.Content = null;
     97    }
    4598  }
    4699}
Note: See TracChangeset for help on using the changeset viewer.