- Timestamp:
- 11/26/16 23:21:50 (8 years ago)
- Location:
- trunk/sources
- Files:
-
- 2 added
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/sources/HeuristicLab.Problems.DataAnalysis.Views/3.4/HeuristicLab.Problems.DataAnalysis.Views-3.4.csproj
r14348 r14422 409 409 <Compile Include="Solution Views\TimeSeriesPrognosisSolutionView.Designer.cs"> 410 410 <DependentUpon>TimeSeriesPrognosisSolutionView.cs</DependentUpon> 411 </Compile> 412 <Compile Include="TimeSeriesPrognosis\TimeSeriesPrognosisLineChartView.cs"> 413 <SubType>UserControl</SubType> 414 </Compile> 415 <Compile Include="TimeSeriesPrognosis\TimeSeriesPrognosisLineChartView.Designer.cs"> 416 <DependentUpon>TimeSeriesPrognosisLineChartView.cs</DependentUpon> 411 417 </Compile> 412 418 <Compile Include="TimeSeriesPrognosis\TimeSeriesPrognosisResultsView.cs"> -
trunk/sources/HeuristicLab.Problems.DataAnalysis.Views/3.4/Regression/RegressionSolutionLineChartView.cs
r14255 r14422 57 57 } 58 58 59 protected virtual void GetTrainingSeries(out int[] x, out double[] y) { 60 x = Content.ProblemData.TrainingIndices.ToArray(); 61 y = Content.EstimatedTrainingValues.ToArray(); 62 } 63 64 protected virtual void GetTestSeries(out int[] x, out double[] y) { 65 x = Content.ProblemData.TestIndices.ToArray(); 66 y = Content.EstimatedTestValues.ToArray(); 67 } 68 69 protected virtual void GetAllValuesSeries(out int[] x, out double[] y) { 70 x = Enumerable.Range(0, Content.ProblemData.Dataset.Rows).Except(Content.ProblemData.TrainingIndices).Except(Content.ProblemData.TestIndices).ToArray(); 71 var tmp = Content.EstimatedValues.ToArray(); 72 y = x.Select(index => tmp[index]).ToArray(); 73 } 74 59 75 private void RedrawChart() { 60 76 this.chart.Series.Clear(); … … 73 89 this.chart.Series[ESTIMATEDVALUES_TRAINING_SERIES_NAME].ChartType = SeriesChartType.FastLine; 74 90 this.chart.Series[ESTIMATEDVALUES_TRAINING_SERIES_NAME].EmptyPointStyle.Color = this.chart.Series[ESTIMATEDVALUES_TRAINING_SERIES_NAME].Color; 75 this.chart.Series[ESTIMATEDVALUES_TRAINING_SERIES_NAME].Points.DataBindXY(Content.ProblemData.TrainingIndices.ToArray(), Content.EstimatedTrainingValues.ToArray()); 91 int[] trainingIdx; 92 double[] trainingY; 93 GetTrainingSeries(out trainingIdx, out trainingY); 94 this.chart.Series[ESTIMATEDVALUES_TRAINING_SERIES_NAME].Points.DataBindXY(trainingIdx, trainingY); 76 95 this.InsertEmptyPoints(this.chart.Series[ESTIMATEDVALUES_TRAINING_SERIES_NAME]); 77 96 this.chart.Series[ESTIMATEDVALUES_TRAINING_SERIES_NAME].Tag = Content; 97 78 98 // test series 79 99 this.chart.Series.Add(ESTIMATEDVALUES_TEST_SERIES_NAME); 80 100 this.chart.Series[ESTIMATEDVALUES_TEST_SERIES_NAME].LegendText = ESTIMATEDVALUES_TEST_SERIES_NAME; 81 101 this.chart.Series[ESTIMATEDVALUES_TEST_SERIES_NAME].ChartType = SeriesChartType.FastLine; 82 this.chart.Series[ESTIMATEDVALUES_TEST_SERIES_NAME].Points.DataBindXY(Content.ProblemData.TestIndices.ToArray(), Content.EstimatedTestValues.ToArray()); 102 int[] testIdx; 103 double[] testY; 104 GetTestSeries(out testIdx, out testY); 105 this.chart.Series[ESTIMATEDVALUES_TEST_SERIES_NAME].Points.DataBindXY(testIdx, testY); 83 106 this.InsertEmptyPoints(this.chart.Series[ESTIMATEDVALUES_TEST_SERIES_NAME]); 84 107 this.chart.Series[ESTIMATEDVALUES_TEST_SERIES_NAME].Tag = Content; 108 85 109 // series of remaining points 86 int[] allIndices = Enumerable.Range(0, Content.ProblemData.Dataset.Rows).Except(Content.ProblemData.TrainingIndices).Except(Content.ProblemData.TestIndices).ToArray(); 87 var estimatedValues = Content.EstimatedValues.ToArray(); 88 List<double> allEstimatedValues = allIndices.Select(index => estimatedValues[index]).ToList(); 110 int[] allIdx; 111 double[] allEstimatedValues; 112 GetAllValuesSeries(out allIdx, out allEstimatedValues); 113 89 114 this.chart.Series.Add(ESTIMATEDVALUES_ALL_SERIES_NAME); 90 115 this.chart.Series[ESTIMATEDVALUES_ALL_SERIES_NAME].LegendText = ESTIMATEDVALUES_ALL_SERIES_NAME; 91 116 this.chart.Series[ESTIMATEDVALUES_ALL_SERIES_NAME].ChartType = SeriesChartType.FastLine; 92 if (allEstimatedValues. Count> 0) {93 this.chart.Series[ESTIMATEDVALUES_ALL_SERIES_NAME].Points.DataBindXY(allI ndices, allEstimatedValues);117 if (allEstimatedValues.Length > 0) { 118 this.chart.Series[ESTIMATEDVALUES_ALL_SERIES_NAME].Points.DataBindXY(allIdx, allEstimatedValues); 94 119 this.InsertEmptyPoints(this.chart.Series[ESTIMATEDVALUES_ALL_SERIES_NAME]); 95 120 } … … 244 269 } 245 270 } else if (Content != null) { 246 string targetVariableName = Content.ProblemData.TargetVariable; 247 248 IEnumerable<int> indices = null; 271 272 int[] indices = null; 249 273 double[] predictedValues = null; 250 274 switch (series.Name) { 251 275 case ESTIMATEDVALUES_ALL_SERIES_NAME: 252 indices = Enumerable.Range(0, Content.ProblemData.Dataset.Rows).Except(Content.ProblemData.TrainingIndices).Except(Content.ProblemData.TestIndices).ToArray(); 253 var estimatedValues = Content.EstimatedValues.ToArray(); 254 predictedValues = indices.Select(index => estimatedValues[index]).ToArray(); 276 GetAllValuesSeries(out indices, out predictedValues); 255 277 break; 256 278 case ESTIMATEDVALUES_TRAINING_SERIES_NAME: 257 indices = Content.ProblemData.TrainingIndices.ToArray(); 258 predictedValues = Content.EstimatedTrainingValues.ToArray(); 279 GetTrainingSeries(out indices, out predictedValues); 259 280 break; 260 281 case ESTIMATEDVALUES_TEST_SERIES_NAME: 261 indices = Content.ProblemData.TestIndices.ToArray(); 262 predictedValues = Content.EstimatedTestValues.ToArray(); 282 GetTestSeries(out indices, out predictedValues); 263 283 break; 264 284 } -
trunk/sources/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/TimeSeriesPrognosis/TimeSeriesPrognosisSolution.cs
r14185 r14422 21 21 22 22 using System.Collections.Generic; 23 using System.Linq; 23 24 using HeuristicLab.Common; 24 25 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable; … … 43 44 return Model.GetPrognosedValues(ProblemData.Dataset, rows, horizons); 44 45 } 46 47 public override IEnumerable<double> PrognosedTestValues { 48 get { 49 return Model.GetPrognosedValues(ProblemData.Dataset, ProblemData.TestIndices.Take(1), 50 new int[] { ProblemData.TestIndices.Count() }).First(); 51 } 52 } 45 53 } 46 54 } -
trunk/sources/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/TimeSeriesPrognosis/TimeSeriesPrognosisSolutionBase.cs
r14185 r14422 64 64 } 65 65 66 public abstract IEnumerable<double> PrognosedTestValues { get; } 66 67 public abstract IEnumerable<IEnumerable<double>> GetPrognosedValues(IEnumerable<int> rows, IEnumerable<int> horizon); 67 68 … … 150 151 OnlineCalculatorError errorState; 151 152 double trainingMean = ProblemData.TrainingIndices.Any() ? ProblemData.Dataset.GetDoubleValues(ProblemData.TargetVariable, ProblemData.TrainingIndices).Average() : double.NaN; 152 var meanModel = new ConstantModel(trainingMean, ProblemData.TargetVariable);153 var meanModel = new ConstantModel(trainingMean, ProblemData.TargetVariable); 153 154 154 155 double alpha, beta; -
trunk/sources/HeuristicLab.Problems.DataAnalysis/3.4/Interfaces/TimeSeriesPrognosis/ITimeSeriesPrognosisSolution.cs
r14185 r14422 28 28 IEnumerable<IEnumerable<double>> GetPrognosedValues(IEnumerable<int> rows, IEnumerable<int> horizon); 29 29 30 IEnumerable<double> PrognosedTestValues { get; } 31 30 32 double TrainingTheilsUStatisticAR1 { get; } 31 33 double TestTheilsUStatisticAR1 { get; }
Note: See TracChangeset
for help on using the changeset viewer.