- Timestamp:
- 02/07/16 17:43:22 (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/sources/HeuristicLab.Algorithms.DataAnalysis.Views/3.4/GaussianProcessRegressionSolutionEstimatedValuesView.cs
r13439 r13592 19 19 */ 20 20 #endregion 21 using System;22 21 using System.Linq; 23 22 using System.Windows.Forms; 24 23 using HeuristicLab.Data; 25 using HeuristicLab.Data.Views;26 24 using HeuristicLab.MainForm; 27 25 using HeuristicLab.Problems.DataAnalysis.Views; … … 31 29 [Content(typeof(GaussianProcessRegressionSolution), false)] 32 30 public partial class GaussianProcessRegressionSolutionEstimatedValuesView : RegressionSolutionEstimatedValuesView { 33 private const string TARGETVARIABLE_SERIES_NAME = "Target Variable";34 private const string ESTIMATEDVALUES_SERIES_NAME = "Estimated Values (all)";35 private const string ESTIMATEDVALUES_TRAINING_SERIES_NAME = "Estimated Values (training)";36 private const string ESTIMATEDVALUES_TEST_SERIES_NAME = "Estimated Values (test)";37 31 private const string ESTIMATEDVARIANCE_TRAINING_SERIES_NAME = "Estimated Variance (training)"; 38 32 private const string ESTIMATEDVARIANCE_TEST_SERIES_NAME = "Estimated Variance (test)"; … … 40 34 public new GaussianProcessRegressionSolution Content { 41 35 get { return (GaussianProcessRegressionSolution)base.Content; } 42 set { 43 base.Content = value; 44 } 36 set { base.Content = value; } 45 37 } 46 38 … … 50 42 } 51 43 52 #region events 53 protected override void RegisterContentEvents() { 54 base.RegisterContentEvents(); 55 Content.ModelChanged += new EventHandler(Content_ModelChanged); 56 Content.ProblemDataChanged += new EventHandler(Content_ProblemDataChanged); 44 45 protected override StringMatrix CreateValueMatrix() { 46 var matrix = base.CreateValueMatrix(); 47 48 var columnNames = matrix.ColumnNames.Concat(new[] { ESTIMATEDVARIANCE_TRAINING_SERIES_NAME, ESTIMATEDVARIANCE_TEST_SERIES_NAME }).ToList(); 49 ((IStringConvertibleMatrix)matrix).Columns += 2; 50 matrix.ColumnNames = columnNames; 51 52 var trainingRows = Content.ProblemData.TrainingIndices; 53 var testRows = Content.ProblemData.TestIndices; 54 55 var estimated_var_training = Content.GetEstimatedVariance(trainingRows).GetEnumerator(); 56 var estimated_var_test = Content.GetEstimatedVariance(testRows).GetEnumerator(); 57 58 foreach (var row in Content.ProblemData.TrainingIndices) { 59 estimated_var_training.MoveNext(); 60 matrix[row, 7] = estimated_var_training.Current.ToString(); 61 } 62 63 foreach (var row in Content.ProblemData.TestIndices) { 64 estimated_var_test.MoveNext(); 65 matrix[row, 8] = estimated_var_test.Current.ToString(); 66 } 67 68 69 return matrix; 57 70 } 58 59 protected override void DeregisterContentEvents() {60 base.DeregisterContentEvents();61 Content.ModelChanged -= new EventHandler(Content_ModelChanged);62 Content.ProblemDataChanged -= new EventHandler(Content_ProblemDataChanged);63 }64 65 private void Content_ProblemDataChanged(object sender, EventArgs e) {66 OnContentChanged();67 }68 69 private void Content_ModelChanged(object sender, EventArgs e) {70 OnContentChanged();71 }72 73 protected override void OnContentChanged() {74 base.OnContentChanged();75 UpdateEstimatedValues();76 }77 78 private void UpdateEstimatedValues() {79 if (InvokeRequired) Invoke((Action)UpdateEstimatedValues);80 else {81 StringMatrix matrix = null;82 if (Content != null) {83 string[,] values = new string[Content.ProblemData.Dataset.Rows, 9];84 85 var trainingRows = Content.ProblemData.TrainingIndices;86 var testRows = Content.ProblemData.TestIndices;87 88 double[] target = Content.ProblemData.Dataset.GetDoubleValues(Content.ProblemData.TargetVariable).ToArray();89 var estimated = Content.EstimatedValues.GetEnumerator();90 var estimated_training = Content.EstimatedTrainingValues.GetEnumerator();91 var estimated_test = Content.EstimatedTestValues.GetEnumerator();92 var estimated_var_training = Content.GetEstimatedVariance(trainingRows).GetEnumerator();93 var estimated_var_test = Content.GetEstimatedVariance(testRows).GetEnumerator();94 95 foreach (var row in Content.ProblemData.TrainingIndices) {96 estimated_training.MoveNext();97 estimated_var_training.MoveNext();98 values[row, 3] = estimated_training.Current.ToString();99 values[row, 7] = estimated_var_training.Current.ToString();100 }101 102 foreach (var row in Content.ProblemData.TestIndices) {103 estimated_test.MoveNext();104 estimated_var_test.MoveNext();105 values[row, 4] = estimated_test.Current.ToString();106 values[row, 8] = estimated_var_test.Current.ToString();107 }108 109 foreach (var row in Enumerable.Range(0, Content.ProblemData.Dataset.Rows)) {110 estimated.MoveNext();111 double est = estimated.Current;112 double res = Math.Abs(est - target[row]);113 values[row, 0] = row.ToString();114 values[row, 1] = target[row].ToString();115 values[row, 2] = est.ToString();116 values[row, 5] = Math.Abs(res).ToString();117 values[row, 6] = Math.Abs(res / est).ToString();118 }119 120 matrix = new StringMatrix(values);121 matrix.ColumnNames = new string[] { "Id", TARGETVARIABLE_SERIES_NAME, ESTIMATEDVALUES_SERIES_NAME, ESTIMATEDVALUES_TRAINING_SERIES_NAME, ESTIMATEDVALUES_TEST_SERIES_NAME, "Absolute Error (all)", "Relative Error (all)", ESTIMATEDVARIANCE_TRAINING_SERIES_NAME, ESTIMATEDVARIANCE_TEST_SERIES_NAME };122 matrix.SortableView = true;123 }124 matrixView.Content = matrix;125 }126 }127 #endregion128 71 } 129 72 }
Note: See TracChangeset
for help on using the changeset viewer.