Changeset 8885 for trunk/sources/HeuristicLab.Problems.Instances.DataAnalysis/3.3/TimeSeries/TimeSeriesPrognosisInstanceProvider.cs
- Timestamp:
- 11/08/12 16:43:08 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/sources/HeuristicLab.Problems.Instances.DataAnalysis/3.3/TimeSeries/TimeSeriesPrognosisInstanceProvider.cs
r8430 r8885 20 20 #endregion 21 21 22 using System;23 using System.Collections.Generic;24 using System.IO;25 using System.Linq;26 using System.Text;27 22 using HeuristicLab.Problems.DataAnalysis; 28 23 29 24 namespace HeuristicLab.Problems.Instances.DataAnalysis { 30 public abstract class TimeSeriesPrognosisInstanceProvider : IProblemInstanceProvider<ITimeSeriesPrognosisProblemData> { 31 public bool CanImportData { get { return true; } } 32 public bool CanExportData { get { return true; } } 33 34 35 public ITimeSeriesPrognosisProblemData ImportData(string path) { 36 TableFileParser csvFileParser = new TableFileParser(); 37 csvFileParser.Parse(path); 38 39 Dataset dataset = new Dataset(csvFileParser.VariableNames, csvFileParser.Values); 40 string targetVar = csvFileParser.VariableNames.Last(); 41 42 IEnumerable<string> allowedInputVars = dataset.DoubleVariables.Where(x => !x.Equals(targetVar)); 43 44 ITimeSeriesPrognosisProblemData regData = new TimeSeriesPrognosisProblemData(dataset, allowedInputVars, targetVar); 45 46 int trainingPartEnd = csvFileParser.Rows * 2 / 3; 47 regData.TrainingPartition.Start = 0; 48 regData.TrainingPartition.End = trainingPartEnd; 49 regData.TestPartition.Start = trainingPartEnd; 50 regData.TestPartition.End = csvFileParser.Rows; 51 52 int pos = path.LastIndexOf('\\'); 53 if (pos < 0) 54 regData.Name = path; 55 else { 56 pos++; 57 regData.Name = path.Substring(pos, path.Length - pos); 58 } 59 return regData; 60 } 61 62 public void ExportData(ITimeSeriesPrognosisProblemData instance, string path) { 63 StringBuilder strBuilder = new StringBuilder(); 64 65 foreach (var variable in instance.InputVariables) { 66 strBuilder.Append(variable + ";"); 67 } 68 strBuilder.Remove(strBuilder.Length - 1, 1); 69 strBuilder.AppendLine(); 70 71 Dataset dataset = instance.Dataset; 72 73 for (int i = 0; i < dataset.Rows; i++) { 74 for (int j = 0; j < dataset.Columns; j++) { 75 strBuilder.Append(dataset.GetValue(i, j) + ";"); 76 } 77 strBuilder.Remove(strBuilder.Length - 1, 1); 78 strBuilder.AppendLine(); 79 } 80 81 using (StreamWriter writer = new StreamWriter(path)) { 82 writer.Write(strBuilder); 83 } 84 } 85 86 public abstract IEnumerable<IDataDescriptor> GetDataDescriptors(); 87 public abstract ITimeSeriesPrognosisProblemData LoadData(IDataDescriptor descriptor); 88 89 public abstract string Name { get; } 90 public abstract string Description { get; } 91 public abstract Uri WebLink { get; } 92 public abstract string ReferencePublication { get; } 25 public abstract class TimeSeriesPrognosisInstanceProvider : DataAnalysisInstanceProvider<ITimeSeriesPrognosisProblemData, TimeSeriesPrognosisImportType> { 93 26 } 94 27 }
Note: See TracChangeset
for help on using the changeset viewer.