- Timestamp:
- 11/08/12 16:43:08 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/sources/HeuristicLab.Problems.Instances.DataAnalysis/3.3/TimeSeries/CSV/TimeSeriesPrognosisCSVInstanceProvider.cs
r7890 r8885 20 20 #endregion 21 21 22 using System; 23 using System.Collections; 24 using System.Collections.Generic; 25 using System.IO; 26 using System.Linq; 27 using HeuristicLab.Common; 28 using HeuristicLab.Problems.DataAnalysis; 22 29 23 using System;24 using System.Collections.Generic;25 using HeuristicLab.Problems.DataAnalysis;26 30 namespace HeuristicLab.Problems.Instances.DataAnalysis { 27 31 public class TimeSeriesPrognosisCSVInstanceProvider : TimeSeriesPrognosisInstanceProvider { … … 48 52 throw new NotImplementedException(); 49 53 } 54 55 public override bool CanImportData { get { return true; } } 56 57 public override ITimeSeriesPrognosisProblemData ImportData(string path) { 58 TableFileParser csvFileParser = new TableFileParser(); 59 csvFileParser.Parse(path); 60 61 Dataset dataset = new Dataset(csvFileParser.VariableNames, csvFileParser.Values); 62 string targetVar = csvFileParser.VariableNames.Last(); 63 64 IEnumerable<string> allowedInputVars = dataset.DoubleVariables.Where(x => !x.Equals(targetVar)); 65 66 ITimeSeriesPrognosisProblemData timeSeriesPrognosisData = new TimeSeriesPrognosisProblemData(dataset, allowedInputVars, targetVar); 67 68 int trainingPartEnd = csvFileParser.Rows * 2 / 3; 69 timeSeriesPrognosisData.TrainingPartition.Start = 0; 70 timeSeriesPrognosisData.TrainingPartition.End = trainingPartEnd; 71 timeSeriesPrognosisData.TestPartition.Start = trainingPartEnd; 72 timeSeriesPrognosisData.TestPartition.End = csvFileParser.Rows; 73 74 int pos = path.LastIndexOf('\\'); 75 if (pos < 0) 76 timeSeriesPrognosisData.Name = path; 77 else { 78 pos++; 79 timeSeriesPrognosisData.Name = path.Substring(pos, path.Length - pos); 80 } 81 return timeSeriesPrognosisData; 82 } 83 84 protected override ITimeSeriesPrognosisProblemData ImportData(string path, TimeSeriesPrognosisImportType type, TableFileParser csvFileParser) { 85 Dataset dataset = new Dataset(csvFileParser.VariableNames, csvFileParser.Values); 86 87 // turn of input variables that are constant in the training partition 88 var allowedInputVars = new List<string>(); 89 int trainingPartEnd = (csvFileParser.Rows * type.Training) / 100; 90 trainingPartEnd = trainingPartEnd > 0 ? trainingPartEnd : 1; 91 var trainingIndizes = Enumerable.Range(0, trainingPartEnd); 92 if (trainingIndizes.Count() >= 2) { 93 foreach (var variableName in dataset.DoubleVariables) { 94 if (dataset.GetDoubleValues(variableName, trainingIndizes).Range() > 0 && 95 variableName != type.TargetVariable) 96 allowedInputVars.Add(variableName); 97 } 98 } else { 99 allowedInputVars.AddRange(dataset.DoubleVariables.Where(x => !x.Equals(type.TargetVariable))); 100 } 101 102 TimeSeriesPrognosisProblemData timeSeriesPrognosisData = new TimeSeriesPrognosisProblemData(dataset, allowedInputVars, type.TargetVariable); 103 104 timeSeriesPrognosisData.TrainingPartition.Start = 0; 105 timeSeriesPrognosisData.TrainingPartition.End = trainingPartEnd; 106 timeSeriesPrognosisData.TestPartition.Start = trainingPartEnd; 107 timeSeriesPrognosisData.TestPartition.End = csvFileParser.Rows; 108 109 timeSeriesPrognosisData.Name = Path.GetFileName(path); 110 111 return timeSeriesPrognosisData; 112 } 50 113 } 51 114 }
Note: See TracChangeset
for help on using the changeset viewer.