Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
05/14/12 15:21:28 (12 years ago)
Author:
sforsten
Message:

#1784: changes have been applied, according to the review comments of mkommend

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/RegressionInstanceProvider.cs

    r7759 r7805  
    2323using System.Collections;
    2424using System.Collections.Generic;
     25using System.Globalization;
    2526using System.IO;
    2627using System.Linq;
     
    2930
    3031namespace HeuristicLab.Problems.Instances.Regression {
    31   public abstract class RegressionInstanceProvider : IProblemInstanceProvider<RegressionProblemData> {
    32     public RegressionProblemData LoadData(string path) {
    33       TableFileParser csvFileParser = new TableFileParser();
    34       csvFileParser.Parse(path);
     32  public abstract class RegressionInstanceProvider : IProblemInstanceProvider<IRegressionProblemData> {
    3533
    36       Dataset dataset = new Dataset(csvFileParser.VariableNames, csvFileParser.Values);
    37       string targetVar = csvFileParser.VariableNames.Last();
    38       IEnumerable<string> allowedInputVars = csvFileParser.VariableNames.Where(x => !x.Equals(targetVar));
     34    public IRegressionProblemData LoadData(string path) {
     35      NumberFormatInfo numberFormat;
     36      DateTimeFormatInfo dateFormat;
     37      char separator;
     38      TableFileParser.DetermineFileFormat(path, out numberFormat, out dateFormat, out separator);
    3939
    40       RegressionProblemData regData = new RegressionProblemData(dataset, allowedInputVars, targetVar);
     40      IRegressionProblemData regData = LoadData(new FileStream(path, FileMode.Open), numberFormat, dateFormat, separator);
     41
    4142      int pos = path.LastIndexOf('\\');
    4243      if (pos < 0)
     
    4647        regData.Name = path.Substring(pos, path.Length - pos);
    4748      }
     49      return regData;
     50    }
     51
     52    protected IRegressionProblemData LoadData(Stream stream, NumberFormatInfo numberFormat, DateTimeFormatInfo dateFormat, char separator) {
     53      TableFileParser csvFileParser = new TableFileParser();
     54
     55      csvFileParser.Parse(stream, numberFormat, dateFormat, separator);
     56
     57      Dataset dataset = new Dataset(csvFileParser.VariableNames, csvFileParser.Values);
     58      string targetVar = csvFileParser.VariableNames.Last();
     59      IEnumerable<string> allowedInputVars = csvFileParser.VariableNames.Where(x => !x.Equals(targetVar));
     60
     61      RegressionProblemData regData = new RegressionProblemData(dataset, allowedInputVars, targetVar);
    4862
    4963      int trainingPartEnd = csvFileParser.Rows * 2 / 3;
     
    5266      regData.TestPartition.Start = trainingPartEnd;
    5367      regData.TestPartition.End = csvFileParser.Rows;
     68
    5469      return regData;
    5570    }
    5671
    57     public void SaveData(RegressionProblemData instance, string path) {
     72    public void SaveData(IRegressionProblemData instance, string path) {
    5873      StringBuilder strBuilder = new StringBuilder();
    5974
     
    8095
    8196    public abstract IEnumerable<IDataDescriptor> GetDataDescriptors();
    82     public abstract RegressionProblemData LoadData(IDataDescriptor descriptor);
     97    public abstract IRegressionProblemData LoadData(IDataDescriptor descriptor);
    8398
    8499    public abstract string Name { get; }
Note: See TracChangeset for help on using the changeset viewer.