- Timestamp:
- 06/12/12 10:31:56 (12 years ago)
- Location:
- branches/HeuristicLab.TimeSeries/HeuristicLab.Problems.DataAnalysis.Views/3.4
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HeuristicLab.TimeSeries/HeuristicLab.Problems.DataAnalysis.Views/3.4/HeuristicLab.Problems.DataAnalysis.Views-3.4.csproj
r7886 r7989 312 312 </BootstrapperPackage> 313 313 </ItemGroup> 314 <ItemGroup> 315 <Folder Include="obj\" /> 316 </ItemGroup> 314 <ItemGroup /> 317 315 <ItemGroup> 318 316 <ProjectReference Include="..\..\HeuristicLab.Problems.DataAnalysis\3.4\HeuristicLab.Problems.DataAnalysis-3.4.csproj"> -
branches/HeuristicLab.TimeSeries/HeuristicLab.Problems.DataAnalysis.Views/3.4/Solution Views/TimeSeriesPrognosisSolutionView.cs
r7183 r7989 22 22 using System.Windows.Forms; 23 23 using HeuristicLab.Core; 24 using HeuristicLab.Data;25 24 using HeuristicLab.MainForm; 26 25 27 26 namespace HeuristicLab.Problems.DataAnalysis.Views { 28 27 [View("TimeSeriesPrognosisnSolution View")] 29 [Content(typeof(TimeSeriesPrognosisSolution Base), false)]28 [Content(typeof(TimeSeriesPrognosisSolution), false)] 30 29 public partial class TimeSeriesPrognosisSolutionView : DataAnalysisSolutionView { 31 30 public TimeSeriesPrognosisSolutionView() { … … 33 32 } 34 33 35 public new TimeSeriesPrognosisSolution BaseContent {36 get { return (TimeSeriesPrognosisSolution Base)base.Content; }34 public new TimeSeriesPrognosisSolution Content { 35 get { return (TimeSeriesPrognosisSolution)base.Content; } 37 36 set { base.Content = value; } 38 37 } -
branches/HeuristicLab.TimeSeries/HeuristicLab.Problems.DataAnalysis.Views/3.4/TimeSeriesPrognosis/TimeSeriesPrognosisSolutionLineChartView.cs
r7463 r7989 58 58 } 59 59 60 private void UpdateTargetVariables() {61 // populate combobox62 targetVariableComboBox.Items.Clear();63 if (Content != null) {64 if (testPrognosisStart < Content.ProblemData.TestPartition.Start || testPrognosisStart >= Content.ProblemData.TestPartition.End) {65 testPrognosisStart = Content.ProblemData.TestPartition.Start;66 }67 foreach (var targetVariable in Content.ProblemData.TargetVariables)68 targetVariableComboBox.Items.Add(targetVariable);69 70 targetVariableComboBox.SelectedIndex = 0;71 }72 }73 74 75 76 60 private void RedrawChart() { 77 61 this.chart.Series.Clear(); … … 79 63 this.chart.ChartAreas[0].AxisX.Minimum = 0; 80 64 this.chart.ChartAreas[0].AxisX.Maximum = Content.ProblemData.Dataset.Rows - 1; 81 string targetVariable = (string)targetVariableComboBox.SelectedItem; 82 int varIndex = Content.ProblemData.TargetVariables.ToList().IndexOf(targetVariable); 65 string targetVariable = Content.ProblemData.TargetVariable; 83 66 84 67 this.chart.Series.Add(TARGETVARIABLE_SERIES_NAME); … … 94 77 this.chart.Series[PROGNOSEDVALUES_TRAINING_SERIES_NAME].Points 95 78 .DataBindXY(Content.ProblemData.TrainingIndizes.ToArray(), 96 Content. PrognosedTrainingValues.SelectMany(x => x).Skip(varIndex).TakeEvery(Content.ProblemData.TargetVariables.Count()).ToArray());79 Content.GetPrognosedValues(Content.ProblemData.TrainingIndizes.Take(1), Content.ProblemData.TrainingPartition.Size).SelectMany(x => x).ToArray()); 97 80 } else { 98 81 this.chart.Series[PROGNOSEDVALUES_TRAINING_SERIES_NAME].Points 99 82 .DataBindXY(Content.ProblemData.TrainingIndizes.ToArray(), 100 Content.GetPrognosedValues(Content.ProblemData.TrainingIndizes, 1).SelectMany(x => x .Single()).Skip(varIndex).TakeEvery(Content.ProblemData.TargetVariables.Count()).ToArray());83 Content.GetPrognosedValues(Content.ProblemData.TrainingIndizes, 1).SelectMany(x => x).ToArray()); 101 84 } 102 85 this.chart.Series[PROGNOSEDVALUES_TRAINING_SERIES_NAME].Tag = Content; … … 110 93 this.chart.Series[PROGNOSEDVALUES_TEST_SERIES_NAME].ChartType = SeriesChartType.FastLine; 111 94 if (prognosedValuesCheckbox.Checked) { 112 int offsetToStart = testPrognosisStart - Content.ProblemData.TestPartition.Start;113 95 this.chart.Series[PROGNOSEDVALUES_TEST_SERIES_NAME].Points 114 .DataBindXY(Content.ProblemData.TestIndizes.Skip(offsetToStart).ToArray(), 115 Content.GetPrognosedValues(Enumerable.Range(testPrognosisStart, 1), Content.ProblemData.TestPartition.End - testPrognosisStart) 116 .SelectMany(x => x.SelectMany(y => y)) 117 .Skip(varIndex) 118 .TakeEvery(Content.ProblemData.TargetVariables.Count()) 119 .ToArray()); 96 .DataBindXY(Content.ProblemData.TestIndizes.ToArray(), 97 Content.GetPrognosedValues(Content.ProblemData.TestIndizes.Take(1), Content.ProblemData.TestPartition.Size).SelectMany(x => x).ToArray()); 120 98 } else { 121 99 this.chart.Series[PROGNOSEDVALUES_TEST_SERIES_NAME].Points 122 100 .DataBindXY(Content.ProblemData.TestIndizes.ToArray(), 123 Content.GetPrognosedValues(Content.ProblemData.TestIndizes, 1) 124 .SelectMany(x => x.Single()) 125 .Skip(varIndex) 126 .TakeEvery(Content.ProblemData.TargetVariables.Count()) 127 .ToArray()); 101 Content.GetPrognosedValues(Content.ProblemData.TestIndizes, 1).SelectMany(x => x).ToArray()); 128 102 } 129 103 this.chart.Series[PROGNOSEDVALUES_TEST_SERIES_NAME].Tag = Content; … … 159 133 protected override void OnContentChanged() { 160 134 base.OnContentChanged(); 161 UpdateTargetVariables();135 RedrawChart(); 162 136 } 163 137 164 138 private void Content_ProblemDataChanged(object sender, EventArgs e) { 165 UpdateTargetVariables();139 RedrawChart(); 166 140 } 167 141 private void Content_ModelChanged(object sender, EventArgs e) { … … 212 186 this.CreateAndAddStripLine("Training and Test", start, row, Color.FromArgb(40, Color.Green), Color.FromArgb(40, Color.Red), ChartHatchStyle.WideUpwardDiagonal); 213 187 break; 214 default: 215 // should not happen 216 break; 188 default: throw new NotSupportedException(); 217 189 } 218 190 curAttr = attr[row]; … … 242 214 } 243 215 } else if (Content != null) { 244 string targetVariable = (string)targetVariableComboBox.SelectedItem; 245 int varIndex = Content.ProblemData.TargetVariables.ToList().IndexOf(targetVariable); 246 216 string targetVariable = Content.ProblemData.TargetVariable; 247 217 248 218 IEnumerable<int> indizes = null; 249 219 IEnumerable<double> predictedValues = null; 220 250 221 switch (series.Name) { 251 222 case PROGNOSEDVALUES_TRAINING_SERIES_NAME: 252 223 indizes = Content.ProblemData.TrainingIndizes.ToArray(); 253 predictedValues = 254 Content.PrognosedTrainingValues.SelectMany(x => x).Skip(varIndex).TakeEvery( 255 Content.ProblemData.TargetVariables.Count()).ToArray(); 224 predictedValues = Content.GetPrognosedValues(Content.ProblemData.TrainingIndizes.Take(1), Content.ProblemData.TrainingPartition.Size).First(); 256 225 break; 257 226 case PROGNOSEDVALUES_TEST_SERIES_NAME: 258 227 testPrognosisStart = Content.ProblemData.TestPartition.Start; 259 228 indizes = Content.ProblemData.TestIndizes.ToArray(); 260 predictedValues = Content.PrognosedTestValues.SelectMany(x => x).Skip(varIndex).TakeEvery( 261 Content.ProblemData.TargetVariables.Count()).ToArray(); 229 predictedValues = Content.GetPrognosedValues(Content.ProblemData.TestIndizes.Take(1), Content.ProblemData.TestPartition.Size).First(); 262 230 break; 263 231 } -
branches/HeuristicLab.TimeSeries/HeuristicLab.Problems.DataAnalysis.Views/3.4/TimeSeriesPrognosis/TimeSeriesPrognosisSolutionPrognosedValuesView.cs
r7154 r7989 82 82 83 83 private void UpdateEstimatedValues() { 84 if (InvokeRequired) Invoke((Action)UpdateEstimatedValues); 85 else { 86 StringMatrix matrix = null; 87 List<string> columnNames = new List<string>(); 88 if (Content != null) { 89 columnNames.Add("Id"); 84 if (InvokeRequired) { 85 Invoke((Action)UpdateEstimatedValues); 86 return; 87 } 88 if (Content == null) return; 90 89 91 string[,] values = new string[Content.ProblemData.Dataset.Rows, 1 + 3 * Content.ProblemData.TargetVariables.Count()]; 92 foreach (var row in Enumerable.Range(0, Content.ProblemData.Dataset.Rows)) 93 values[row, 0] = row.ToString(); 90 var targetVariable = Content.ProblemData.TargetVariable; 91 StringMatrix matrix = null; 92 List<string> columnNames = new List<string>(); 93 columnNames.Add("Id"); 94 94 95 var allPrognosedTraining = Content.PrognosedTrainingValues.SelectMany(x=>x).ToArray(); 96 var allPrognosedTest = Content.PrognosedTestValues.SelectMany(x => x).ToArray(); 97 98 int i = 0; 99 int targetVariableIndex = 0; 100 foreach (var targetVariable in Content.ProblemData.TargetVariables) { 101 var prognosedTraining = 102 allPrognosedTraining.Skip(targetVariableIndex).TakeEvery(Content.ProblemData.TargetVariables.Count()); 103 var prognosedTest = 104 allPrognosedTest.Skip(targetVariableIndex).TakeEvery(Content.ProblemData.TargetVariables.Count()); 105 106 double[] target = Content.ProblemData.Dataset.GetDoubleValues(targetVariable).ToArray(); 107 108 var prognosedTrainingEnumerator = prognosedTraining.GetEnumerator(); 109 foreach (var row in Content.ProblemData.TrainingIndizes) { 110 prognosedTrainingEnumerator.MoveNext(); 111 values[row, i + 2] = prognosedTrainingEnumerator.Current.ToString(); 112 } 113 114 var prognosedTestEnumerator = prognosedTest.GetEnumerator(); 115 foreach (var row in Content.ProblemData.TestIndizes) { 116 prognosedTestEnumerator.MoveNext(); 117 values[row, i + 3] = prognosedTestEnumerator.Current.ToString(); 118 } 119 120 foreach (var row in Enumerable.Range(0, Content.ProblemData.Dataset.Rows)) { 121 values[row, i + 1] = target[row].ToString(); 122 } 123 124 columnNames.AddRange(new string[] { targetVariable + "(actual)", targetVariable + "(training)", targetVariable + "(test)" }); 125 i += 3; 126 targetVariableIndex++; 127 } // foreach 95 string[,] values = new string[Content.ProblemData.Dataset.Rows, 4]; 96 var prognosedTraining = Content.GetPrognosedValues(Content.ProblemData.TrainingIndizes.Take(1), Content.ProblemData.TrainingPartition.Size).First(); 97 var prognosedTest = Content.GetPrognosedValues(Content.ProblemData.TrainingIndizes.Take(1), Content.ProblemData.TestPartition.Size).First(); 98 double[] target = Content.ProblemData.Dataset.GetDoubleValues(targetVariable).ToArray(); 128 99 129 100 130 matrix = new StringMatrix(values); 131 matrix.ColumnNames = columnNames.ToArray(); 132 matrix.SortableView = true; 101 foreach (var row in Enumerable.Range(0, Content.ProblemData.Dataset.Rows)) { 102 values[row, 0] = row.ToString(); 103 values[row, 1] = target[row].ToString(); 104 } 133 105 134 } // if 135 matrixView.Content = matrix; 106 var rowsEnumerator = Content.ProblemData.TrainingIndizes.GetEnumerator(); 107 var prognosisEnumerator = prognosedTraining.GetEnumerator(); 108 while (rowsEnumerator.MoveNext() & prognosisEnumerator.MoveNext()) { 109 var row = rowsEnumerator.Current; 110 var prognosis = prognosisEnumerator.Current; 111 values[row, 2] = prognosis.ToString(); 136 112 } 113 114 rowsEnumerator = Content.ProblemData.TestIndizes.GetEnumerator(); 115 prognosisEnumerator = prognosedTest.GetEnumerator(); 116 while (rowsEnumerator.MoveNext() & prognosisEnumerator.MoveNext()) { 117 var row = rowsEnumerator.Current; 118 var prognosis = prognosisEnumerator.Current; 119 values[row, 3] = prognosis.ToString(); 120 } 121 122 columnNames.AddRange(new string[] { targetVariable + "(actual)", targetVariable + "(training)", targetVariable + "(test)" }); 123 matrix = new StringMatrix(values); 124 matrix.ColumnNames = columnNames.ToArray(); 125 matrix.SortableView = true; 137 126 } 138 127 #endregion
Note: See TracChangeset
for help on using the changeset viewer.