Changeset 5010 for branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Views
- Timestamp:
- 12/02/10 15:25:55 (13 years ago)
- Location:
- branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Views/3.3
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Views/3.3/PrognosisView.cs
r4556 r5010 76 76 DoubleMatrix matrix = null; 77 77 if (Content != null) { 78 IEnumerable<string> targetVariables = Content.ProblemData.TargetVariables.CheckedItems.Select(x => x.Value.Value); 79 List<double[]> prognosis = Content.GetPrognosis(currentTimePoint).ToList(); 80 double[,] values = new double[prognosis.Count, targetVariables.Count() * 2]; 81 for (int row = 0; row < prognosis.Count; row++) { 82 int col = 0; 83 int t = currentTimePoint + row; 84 foreach (string targetVariable in targetVariables) { 85 values[row, col++] = t<Content.ProblemData.Dataset.Rows ? Content.ProblemData.Dataset[targetVariable, t] : double.NaN; 86 values[row, col++] = prognosis[row][(col - 1) / 2]; 87 } 88 } 89 matrix = new DoubleMatrix(values); 90 string[] partitions = new string[] { "(original)", "(estimated)" }; 91 matrix.ColumnNames = from targetVariable in targetVariables 92 from partition in partitions 93 select targetVariable + " " + partition; 94 ; 78 matrix = CalculateMatrix(); 95 79 } 96 80 valuesView.Content = matrix; 81 } 82 83 public DoubleMatrix CalculateMatrix() { 84 DoubleMatrix matrix = null; 85 IEnumerable<string> targetVariables = Content.ProblemData.TargetVariables.CheckedItems.Select(x => x.Value.Value); 86 List<double[]> prognosis = Content.GetPrognosis(currentTimePoint).ToList(); 87 double[,] values = new double[prognosis.Count, targetVariables.Count() * 2]; 88 for (int row = 0; row < prognosis.Count; row++) { 89 int col = 0; 90 int t = currentTimePoint + row; 91 foreach (string targetVariable in targetVariables) { 92 values[row, col++] = t < Content.ProblemData.Dataset.Rows ? Content.ProblemData.Dataset[targetVariable, t] : double.NaN; 93 values[row, col++] = prognosis[row][(col - 1) / 2]; 94 } 95 } 96 matrix = new DoubleMatrix(values); 97 string[] partitions = new string[] { "(original)", "(estimated)" }; 98 matrix.ColumnNames = from targetVariable in targetVariables 99 from partition in partitions 100 select targetVariable + " " + partition; 101 ; 102 return matrix; 97 103 } 98 104 -
branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Views/3.3/ResultsView.cs
r4556 r5010 85 85 private void UpdateView() { 86 86 if (Content != null) { 87 List<string> targetVariables = Content.ProblemData.TargetVariables.CheckedItems.Select(x => x.Value.Value).ToList(); 88 DoubleMatrix matrix = new DoubleMatrix(rowNames.Count, targetVariables.Count() * 2); 89 matrix.RowNames = rowNames; 90 matrix.ColumnNames = targetVariables.SelectMany(x => new List<string>() { x + " (training)", x + " (test)" }); 91 matrix.SortableView = false; 92 93 int trainingStart = Content.ProblemData.TrainingSamplesStart.Value; 94 int trainingEnd = Content.ProblemData.TrainingSamplesEnd.Value; 95 int testStart = Content.ProblemData.TestSamplesStart.Value; 96 int testEnd = Content.ProblemData.TestSamplesEnd.Value; 97 // create a list of time series evaluators for each target variable 98 Dictionary<string, List<IOnlineEvaluator>> trainingEvaluators = 99 new Dictionary<string, List<IOnlineEvaluator>>(); 100 Dictionary<string, List<IOnlineEvaluator>> testEvaluators = 101 new Dictionary<string, List<IOnlineEvaluator>>(); 102 foreach (string targetVariable in targetVariables) { 103 trainingEvaluators.Add(targetVariable, new List<IOnlineEvaluator>()); 104 trainingEvaluators[targetVariable].Add(new OnlineMeanSquaredErrorEvaluator()); 105 trainingEvaluators[targetVariable].Add(new OnlinePearsonsRSquaredEvaluator()); 106 trainingEvaluators[targetVariable].Add(new OnlineMeanAbsolutePercentageErrorEvaluator()); 107 trainingEvaluators[targetVariable].Add(new OnlineDirectionalSymmetryEvaluator()); 108 trainingEvaluators[targetVariable].Add(new OnlineWeightedDirectionalSymmetryEvaluator()); 109 trainingEvaluators[targetVariable].Add(new OnlineTheilsUStatisticEvaluator()); 110 111 testEvaluators.Add(targetVariable, new List<IOnlineEvaluator>()); 112 testEvaluators[targetVariable].Add(new OnlineMeanSquaredErrorEvaluator()); 113 testEvaluators[targetVariable].Add(new OnlinePearsonsRSquaredEvaluator()); 114 testEvaluators[targetVariable].Add(new OnlineMeanAbsolutePercentageErrorEvaluator()); 115 testEvaluators[targetVariable].Add(new OnlineDirectionalSymmetryEvaluator()); 116 testEvaluators[targetVariable].Add(new OnlineWeightedDirectionalSymmetryEvaluator()); 117 testEvaluators[targetVariable].Add(new OnlineTheilsUStatisticEvaluator()); 118 } 119 120 Evaluate(trainingStart, trainingEnd, trainingEvaluators); 121 Evaluate(testStart, testEnd, testEvaluators); 122 123 int columnIndex = 0; 124 foreach (string targetVariable in targetVariables) { 125 int rowIndex = 0; 126 // training 127 foreach (var evaluator in trainingEvaluators[targetVariable]) { 128 matrix[rowIndex++, columnIndex] = evaluator.Value; 129 } 130 columnIndex++; 131 // test 132 rowIndex = 0; 133 foreach (var evaluator in testEvaluators[targetVariable]) { 134 matrix[rowIndex++, columnIndex] = evaluator.Value; 135 } 136 columnIndex++; 137 } 138 139 matrixView.Content = matrix; 87 matrixView.Content = CalculateMatrix(); 140 88 } else 141 89 matrixView.Content = null; 90 } 91 92 public DoubleMatrix CalculateMatrix() { 93 List<string> targetVariables = Content.ProblemData.TargetVariables.CheckedItems.Select(x => x.Value.Value).ToList(); 94 DoubleMatrix matrix = new DoubleMatrix(rowNames.Count, targetVariables.Count() * 2); 95 matrix.RowNames = rowNames; 96 matrix.ColumnNames = targetVariables.SelectMany(x => new List<string>() { x + " (training)", x + " (test)" }); 97 matrix.SortableView = false; 98 99 int trainingStart = Content.ProblemData.TrainingSamplesStart.Value; 100 int trainingEnd = Content.ProblemData.TrainingSamplesEnd.Value; 101 int testStart = Content.ProblemData.TestSamplesStart.Value; 102 int testEnd = Content.ProblemData.TestSamplesEnd.Value; 103 // create a list of time series evaluators for each target variable 104 Dictionary<string, List<IOnlineEvaluator>> trainingEvaluators = 105 new Dictionary<string, List<IOnlineEvaluator>>(); 106 Dictionary<string, List<IOnlineEvaluator>> testEvaluators = 107 new Dictionary<string, List<IOnlineEvaluator>>(); 108 foreach (string targetVariable in targetVariables) { 109 trainingEvaluators.Add(targetVariable, new List<IOnlineEvaluator>()); 110 trainingEvaluators[targetVariable].Add(new OnlineMeanSquaredErrorEvaluator()); 111 trainingEvaluators[targetVariable].Add(new OnlinePearsonsRSquaredEvaluator()); 112 trainingEvaluators[targetVariable].Add(new OnlineMeanAbsolutePercentageErrorEvaluator()); 113 trainingEvaluators[targetVariable].Add(new OnlineDirectionalSymmetryEvaluator()); 114 trainingEvaluators[targetVariable].Add(new OnlineWeightedDirectionalSymmetryEvaluator()); 115 trainingEvaluators[targetVariable].Add(new OnlineTheilsUStatisticEvaluator()); 116 117 testEvaluators.Add(targetVariable, new List<IOnlineEvaluator>()); 118 testEvaluators[targetVariable].Add(new OnlineMeanSquaredErrorEvaluator()); 119 testEvaluators[targetVariable].Add(new OnlinePearsonsRSquaredEvaluator()); 120 testEvaluators[targetVariable].Add(new OnlineMeanAbsolutePercentageErrorEvaluator()); 121 testEvaluators[targetVariable].Add(new OnlineDirectionalSymmetryEvaluator()); 122 testEvaluators[targetVariable].Add(new OnlineWeightedDirectionalSymmetryEvaluator()); 123 testEvaluators[targetVariable].Add(new OnlineTheilsUStatisticEvaluator()); 124 } 125 126 Evaluate(trainingStart, trainingEnd, trainingEvaluators); 127 Evaluate(testStart, testEnd, testEvaluators); 128 129 int columnIndex = 0; 130 foreach (string targetVariable in targetVariables) { 131 int rowIndex = 0; 132 // training 133 foreach (var evaluator in trainingEvaluators[targetVariable]) { 134 matrix[rowIndex++, columnIndex] = evaluator.Value; 135 } 136 columnIndex++; 137 // test 138 rowIndex = 0; 139 foreach (var evaluator in testEvaluators[targetVariable]) { 140 matrix[rowIndex++, columnIndex] = evaluator.Value; 141 } 142 columnIndex++; 143 } 144 return matrix; 142 145 } 143 146
Note: See TracChangeset
for help on using the changeset viewer.