Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
10/05/12 11:58:17 (12 years ago)
Author:
mkommend
Message:

#1081: Merged trunk changes and fixed compilation errors due to the merge.

Location:
branches/HeuristicLab.TimeSeries/HeuristicLab.Problems.Instances.DataAnalysis/3.3
Files:
11 edited
3 copied

Legend:

Unmodified
Added
Removed
  • branches/HeuristicLab.TimeSeries/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Classification/CSV/ClassifiactionCSVInstanceProvider.cs

    r8430 r8742  
    2121
    2222using System;
     23using System.Collections;
    2324using System.Collections.Generic;
     25using System.Globalization;
    2426using System.IO;
    2527using System.Linq;
    2628using System.Text;
     29using HeuristicLab.Common;
    2730using HeuristicLab.Problems.DataAnalysis;
    2831
     
    6164
    6265      Dataset dataset = new Dataset(csvFileParser.VariableNames, csvFileParser.Values);
    63       string targetVar = csvFileParser.VariableNames.Where(x => dataset.DoubleVariables.Contains(x)).Last();
    64       IEnumerable<string> allowedInputVars = dataset.DoubleVariables.Where(x => !x.Equals(targetVar));
     66      string targetVar = dataset.DoubleVariables.Last();
    6567
    66       ClassificationProblemData claData = new ClassificationProblemData(dataset, allowedInputVars, targetVar);
    67 
    68       int trainingPartEnd = csvFileParser.Rows * 2 / 3;
    69       claData.TrainingPartition.Start = 0;
    70       claData.TrainingPartition.End = trainingPartEnd;
    71       claData.TestPartition.Start = trainingPartEnd;
    72       claData.TestPartition.End = csvFileParser.Rows;
    73       int pos = path.LastIndexOf('\\');
    74       if (pos < 0)
    75         claData.Name = path;
    76       else {
    77         pos++;
    78         claData.Name = path.Substring(pos, path.Length - pos);
     68      // turn of input variables that are constant in the training partition
     69      var allowedInputVars = new List<string>();
     70      var trainingIndizes = Enumerable.Range(0, (csvFileParser.Rows * 2) / 3);
     71      if (trainingIndizes.Count() >= 2) {
     72        foreach (var variableName in dataset.DoubleVariables) {
     73          if (dataset.GetDoubleValues(variableName, trainingIndizes).Range() > 0 &&
     74            variableName != targetVar)
     75            allowedInputVars.Add(variableName);
     76        }
     77      } else {
     78        allowedInputVars.AddRange(dataset.DoubleVariables.Where(x => x.Equals(targetVar)));
    7979      }
    8080
    81       return claData;
     81      ClassificationProblemData classificationData = new ClassificationProblemData(dataset, allowedInputVars, targetVar);
     82
     83      int trainingPartEnd = trainingIndizes.Last();
     84      classificationData.TrainingPartition.Start = trainingIndizes.First();
     85      classificationData.TrainingPartition.End = trainingPartEnd;
     86      classificationData.TestPartition.Start = trainingPartEnd;
     87      classificationData.TestPartition.End = csvFileParser.Rows;
     88
     89      classificationData.Name = Path.GetFileName(path);
     90
     91      return classificationData;
     92    }
     93
     94    public override IClassificationProblemData ImportData(string path, DataAnalysisImportType type) {
     95      TableFileParser csvFileParser = new TableFileParser();
     96      csvFileParser.Parse(path);
     97
     98      int trainingPartEnd = (csvFileParser.Rows * type.Training) / 100;
     99      List<IList> values = csvFileParser.Values;
     100      if (type.Shuffle) {
     101        values = Shuffle(values);
     102      }
     103
     104      Dataset dataset = new Dataset(csvFileParser.VariableNames, values);
     105      string targetVar = dataset.DoubleVariables.Last();
     106
     107      // turn of input variables that are constant in the training partition
     108      var allowedInputVars = new List<string>();
     109      var trainingIndizes = Enumerable.Range(0, trainingPartEnd);
     110      foreach (var variableName in dataset.DoubleVariables) {
     111        if (trainingIndizes.Count() >= 2 && dataset.GetDoubleValues(variableName, trainingIndizes).Range() > 0 &&
     112          variableName != targetVar)
     113          allowedInputVars.Add(variableName);
     114      }
     115
     116      ClassificationProblemData classificationData = new ClassificationProblemData(dataset, allowedInputVars, targetVar);
     117
     118      classificationData.TrainingPartition.Start = 0;
     119      classificationData.TrainingPartition.End = trainingPartEnd;
     120      classificationData.TestPartition.Start = trainingPartEnd;
     121      classificationData.TestPartition.End = csvFileParser.Rows;
     122
     123      classificationData.Name = Path.GetFileName(path);
     124
     125      return classificationData;
    82126    }
    83127
     
    86130    }
    87131    public override void ExportData(IClassificationProblemData instance, string path) {
    88       StringBuilder strBuilder = new StringBuilder();
    89 
    90       foreach (var variable in instance.InputVariables) {
    91         strBuilder.Append(variable + ";");
     132      var strBuilder = new StringBuilder();
     133      var colSep = CultureInfo.CurrentCulture.TextInfo.ListSeparator;
     134      foreach (var variable in instance.Dataset.VariableNames) {
     135        strBuilder.Append(variable.Replace(colSep, String.Empty) + colSep);
    92136      }
    93       strBuilder.Remove(strBuilder.Length - 1, 1);
     137      strBuilder.Remove(strBuilder.Length - colSep.Length, colSep.Length);
    94138      strBuilder.AppendLine();
    95139
    96       Dataset dataset = instance.Dataset;
     140      var dataset = instance.Dataset;
    97141
    98142      for (int i = 0; i < dataset.Rows; i++) {
    99143        for (int j = 0; j < dataset.Columns; j++) {
    100           strBuilder.Append(dataset.GetValue(i, j) + ";");
     144          if (j > 0) strBuilder.Append(colSep);
     145          strBuilder.Append(dataset.GetValue(i, j));
    101146        }
    102         strBuilder.Remove(strBuilder.Length - 1, 1);
    103147        strBuilder.AppendLine();
    104148      }
    105149
    106       using (StreamWriter writer = new StreamWriter(path)) {
     150      using (var writer = new StreamWriter(path)) {
    107151        writer.Write(strBuilder);
    108152      }
  • branches/HeuristicLab.TimeSeries/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Classification/ClassificationInstanceProvider.cs

    r8430 r8742  
    2323
    2424namespace HeuristicLab.Problems.Instances.DataAnalysis {
    25   public abstract class ClassificationInstanceProvider : ProblemInstanceProvider<IClassificationProblemData> {
     25  public abstract class ClassificationInstanceProvider : DataAnalysisInstanceProvider<IClassificationProblemData> {
    2626  }
    2727}
  • branches/HeuristicLab.TimeSeries/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Clustering/CSV/ClusteringCSVInstanceProvider.cs

    r8211 r8742  
    2121
    2222using System;
     23using System.Collections;
    2324using System.Collections.Generic;
     25using System.Globalization;
    2426using System.IO;
     27using System.Linq;
    2528using System.Text;
     29using HeuristicLab.Common;
    2630using HeuristicLab.Problems.DataAnalysis;
    2731
     
    5660    public override IClusteringProblemData ImportData(string path) {
    5761      var csvFileParser = new TableFileParser();
    58 
    5962      csvFileParser.Parse(path);
    6063
    61       var dataset = new Dataset(csvFileParser.VariableNames, csvFileParser.Values);
    62       var claData = new ClusteringProblemData(dataset, dataset.DoubleVariables);
     64      Dataset dataset = new Dataset(csvFileParser.VariableNames, csvFileParser.Values);
     65      string targetVar = dataset.DoubleVariables.Last();
    6366
    64       int trainingPartEnd = csvFileParser.Rows * 2 / 3;
    65       claData.TrainingPartition.Start = 0;
    66       claData.TrainingPartition.End = trainingPartEnd;
    67       claData.TestPartition.Start = trainingPartEnd;
    68       claData.TestPartition.End = csvFileParser.Rows;
    69       int pos = path.LastIndexOf('\\');
    70       if (pos < 0)
    71         claData.Name = path;
    72       else {
    73         pos++;
    74         claData.Name = path.Substring(pos, path.Length - pos);
     67      // turn of input variables that are constant in the training partition
     68      var allowedInputVars = new List<string>();
     69      var trainingIndizes = Enumerable.Range(0, (csvFileParser.Rows * 2) / 3);
     70      if (trainingIndizes.Count() >= 2) {
     71        foreach (var variableName in dataset.DoubleVariables) {
     72          if (dataset.GetDoubleValues(variableName, trainingIndizes).Range() > 0 &&
     73            variableName != targetVar)
     74            allowedInputVars.Add(variableName);
     75        }
     76      } else {
     77        allowedInputVars.AddRange(dataset.DoubleVariables.Where(x => x.Equals(targetVar)));
    7578      }
    7679
    77       return claData;
     80      ClusteringProblemData clusteringData = new ClusteringProblemData(dataset, allowedInputVars);
     81
     82      int trainingPartEnd = trainingIndizes.Last();
     83      clusteringData.TrainingPartition.Start = trainingIndizes.First();
     84      clusteringData.TrainingPartition.End = trainingPartEnd;
     85      clusteringData.TestPartition.Start = trainingPartEnd;
     86      clusteringData.TestPartition.End = csvFileParser.Rows;
     87
     88      clusteringData.Name = Path.GetFileName(path);
     89
     90      return clusteringData;
     91    }
     92
     93    public override IClusteringProblemData ImportData(string path, DataAnalysisImportType type) {
     94      TableFileParser csvFileParser = new TableFileParser();
     95      csvFileParser.Parse(path);
     96
     97      List<IList> values = csvFileParser.Values;
     98      if (type.Shuffle) {
     99        values = Shuffle(values);
     100      }
     101
     102      Dataset dataset = new Dataset(csvFileParser.VariableNames, values);
     103      string targetVar = dataset.DoubleVariables.Last();
     104
     105      // turn of input variables that are constant in the training partition
     106      var allowedInputVars = new List<string>();
     107      int trainingPartEnd = (csvFileParser.Rows * type.Training) / 100;
     108      var trainingIndizes = Enumerable.Range(0, trainingPartEnd);
     109      foreach (var variableName in dataset.DoubleVariables) {
     110        if (trainingIndizes.Count() >= 2 && dataset.GetDoubleValues(variableName, trainingIndizes).Range() > 0 &&
     111          variableName != targetVar)
     112          allowedInputVars.Add(variableName);
     113      }
     114
     115      ClusteringProblemData clusteringData = new ClusteringProblemData(dataset, allowedInputVars);
     116
     117      clusteringData.TrainingPartition.Start = 0;
     118      clusteringData.TrainingPartition.End = trainingPartEnd;
     119      clusteringData.TestPartition.Start = trainingPartEnd;
     120      clusteringData.TestPartition.End = csvFileParser.Rows;
     121
     122      clusteringData.Name = Path.GetFileName(path);
     123
     124      return clusteringData;
    78125    }
    79126
     
    83130    public override void ExportData(IClusteringProblemData instance, string path) {
    84131      var strBuilder = new StringBuilder();
    85 
    86       foreach (var variable in instance.InputVariables) {
    87         strBuilder.Append(variable + ";");
     132      var colSep = CultureInfo.CurrentCulture.TextInfo.ListSeparator;
     133      foreach (var variable in instance.Dataset.VariableNames) {
     134        strBuilder.Append(variable.Replace(colSep, String.Empty) + colSep);
    88135      }
    89       strBuilder.Remove(strBuilder.Length - 1, 1);
     136      strBuilder.Remove(strBuilder.Length - colSep.Length, colSep.Length);
    90137      strBuilder.AppendLine();
    91138
     
    94141      for (int i = 0; i < dataset.Rows; i++) {
    95142        for (int j = 0; j < dataset.Columns; j++) {
    96           strBuilder.Append(dataset.GetValue(i, j) + ";");
     143          if (j > 0) strBuilder.Append(colSep);
     144          strBuilder.Append(dataset.GetValue(i, j));
    97145        }
    98         strBuilder.Remove(strBuilder.Length - 1, 1);
    99146        strBuilder.AppendLine();
    100147      }
  • branches/HeuristicLab.TimeSeries/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Clustering/ClusteringInstanceProvider.cs

    r8192 r8742  
    2323
    2424namespace HeuristicLab.Problems.Instances.DataAnalysis {
    25   public abstract class ClusteringInstanceProvider : ProblemInstanceProvider<IClusteringProblemData> {
     25  public abstract class ClusteringInstanceProvider : DataAnalysisInstanceProvider<IClusteringProblemData> {
    2626  }
    2727}
  • branches/HeuristicLab.TimeSeries/HeuristicLab.Problems.Instances.DataAnalysis/3.3/HeuristicLab.Problems.Instances.DataAnalysis-3.3.csproj

    r8430 r8742  
    9898  </PropertyGroup>
    9999  <ItemGroup>
    100     <Reference Include="HeuristicLab.Collections-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL">
    101       <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Collections-3.3.dll</HintPath>
    102     </Reference>
    103     <Reference Include="HeuristicLab.Common-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL">
    104       <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Common-3.3.dll</HintPath>
    105     </Reference>
    106     <Reference Include="HeuristicLab.Core-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL">
    107       <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Core-3.3.dll</HintPath>
    108     </Reference>
    109     <Reference Include="HeuristicLab.Data-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL">
    110       <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Data-3.3.dll</HintPath>
    111     </Reference>
    112     <Reference Include="HeuristicLab.PluginInfrastructure-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL">
    113       <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.PluginInfrastructure-3.3.dll</HintPath>
    114     </Reference>
    115     <Reference Include="HeuristicLab.Problems.Instances-3.3">
    116       <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Problems.Instances-3.3.dll</HintPath>
    117     </Reference>
    118     <Reference Include="HeuristicLab.Random-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL">
    119       <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Random-3.3.dll</HintPath>
    120     </Reference>
    121     <Reference Include="ICSharpCode.SharpZipLib, Version=0.85.4.369, Culture=neutral, PublicKeyToken=1b03e6acf1164f73, processorArchitecture=MSIL">
     100    <Reference Include="HeuristicLab.Collections-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL" />
     101    <Reference Include="HeuristicLab.Common-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL" />
     102    <Reference Include="HeuristicLab.Core-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL" />
     103    <Reference Include="HeuristicLab.Data-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL" />
     104    <Reference Include="HeuristicLab.PluginInfrastructure-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL" />
     105    <Reference Include="HeuristicLab.Problems.Instances-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL" />
     106    <Reference Include="HeuristicLab.Random-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL" />
     107    <Reference Include="ICSharpCode.SharpZipLib">
     108      <HintPath>..\..\HeuristicLab.PluginInfrastructure\3.3\ICSharpCode.SharpZipLib.dll</HintPath>
    122109      <Private>False</Private>
    123110    </Reference>
     
    137124    <Compile Include="Classification\ClassificationInstanceProvider.cs" />
    138125    <Compile Include="Classification\CSV\ClassifiactionCSVInstanceProvider.cs" />
    139     <Compile Include="Classification\RealWorld\Iris.cs" />
    140     <Compile Include="Classification\RealWorld\Mammography.cs" />
    141     <Compile Include="Classification\RealWorld\ClassificationRealWorldInstanceProvider.cs" />
    142126    <Compile Include="Classification\ResourceClassificationDataDescriptor.cs" />
    143127    <Compile Include="Classification\ResourceClassificationInstanceProvider.cs" />
     128    <Compile Include="Classification\UCI\Mammography.cs" />
     129    <Compile Include="Classification\UCI\UCIInstanceProvider.cs" />
     130    <Compile Include="Classification\UCI\Wine.cs" />
    144131    <Compile Include="Clustering\ClusteringInstanceProvider.cs" />
    145132    <Compile Include="Clustering\CSV\ClusteringCSVInstanceProvider.cs" />
     133    <Compile Include="DataAnalysisImportType.cs" />
     134    <Compile Include="DataAnalysisInstanceProvider.cs" />
    146135    <Compile Include="Plugin.cs" />
    147136    <Compile Include="Properties\AssemblyInfo.cs" />
     
    219208  </ItemGroup>
    220209  <ItemGroup>
    221     <EmbeddedResource Include="Classification\Data\ClassificationRealWorld.zip" />
     210    <EmbeddedResource Include="Classification\Data\UCI.zip" />
    222211    <None Include="HeuristicLab.snk" />
    223212    <None Include="Plugin.cs.frame" />
     
    234223  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
    235224  <PropertyGroup>
    236     <PreBuildEvent>set Path=%25Path%25;$(ProjectDir);$(SolutionDir)
     225    <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">set Path=%25Path%25;$(ProjectDir);$(SolutionDir)
    237226set ProjectDir=$(ProjectDir)
    238227set SolutionDir=$(SolutionDir)
     
    240229
    241230call PreBuildEvent.cmd</PreBuildEvent>
     231    <PreBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
     232export ProjectDir=$(ProjectDir)
     233export SolutionDir=$(SolutionDir)
     234
     235$SolutionDir/PreBuildEvent.sh
     236</PreBuildEvent>
    242237  </PropertyGroup>
    243238  <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
  • branches/HeuristicLab.TimeSeries/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Plugin.cs.frame

    r8430 r8742  
    2525  [Plugin("HeuristicLab.Problems.Instances.DataAnalysis", "3.3.7.$WCREV$")]
    2626  [PluginFile("HeuristicLab.Problems.Instances.DataAnalysis-3.3.dll", PluginFileType.Assembly)]
     27  [PluginDependency("HeuristicLab.Common", "3.3")]
    2728  [PluginDependency("HeuristicLab.Core", "3.3")]
    2829  [PluginDependency("HeuristicLab.Data", "3.3")]
  • branches/HeuristicLab.TimeSeries/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/CSV/RegressionCSVInstanceProvider.cs

    r8430 r8742  
    2121
    2222using System;
     23using System.Collections;
    2324using System.Collections.Generic;
     25using System.Globalization;
    2426using System.IO;
    2527using System.Linq;
    2628using System.Text;
     29using HeuristicLab.Common;
    2730using HeuristicLab.Problems.DataAnalysis;
    2831
     
    5962
    6063      Dataset dataset = new Dataset(csvFileParser.VariableNames, csvFileParser.Values);
    61       string targetVar = csvFileParser.VariableNames.Where(x => dataset.DoubleVariables.Contains(x)).Last();
     64      string targetVar = dataset.DoubleVariables.Last();
    6265
    63       IEnumerable<string> allowedInputVars = dataset.DoubleVariables.Where(x => !x.Equals(targetVar));
     66      // turn of input variables that are constant in the training partition
     67      var allowedInputVars = new List<string>();
     68      var trainingIndizes = Enumerable.Range(0, (csvFileParser.Rows * 2) / 3);
     69      foreach (var variableName in dataset.DoubleVariables) {
     70        if (trainingIndizes.Count() >= 2 && dataset.GetDoubleValues(variableName, trainingIndizes).Range() > 0 &&
     71          variableName != targetVar)
     72          allowedInputVars.Add(variableName);
     73      }
    6474
    65       IRegressionProblemData regData = new RegressionProblemData(dataset, allowedInputVars, targetVar);
     75      IRegressionProblemData regressionData = new RegressionProblemData(dataset, allowedInputVars, targetVar);
    6676
    67       int trainingPartEnd = csvFileParser.Rows * 2 / 3;
    68       regData.TrainingPartition.Start = 0;
    69       regData.TrainingPartition.End = trainingPartEnd;
    70       regData.TestPartition.Start = trainingPartEnd;
    71       regData.TestPartition.End = csvFileParser.Rows;
     77      var trainingPartEnd = trainingIndizes.Last();
     78      regressionData.TrainingPartition.Start = trainingIndizes.First();
     79      regressionData.TrainingPartition.End = trainingPartEnd;
     80      regressionData.TestPartition.Start = trainingPartEnd;
     81      regressionData.TestPartition.End = csvFileParser.Rows;
    7282
    73       int pos = path.LastIndexOf('\\');
    74       if (pos < 0)
    75         regData.Name = path;
    76       else {
    77         pos++;
    78         regData.Name = path.Substring(pos, path.Length - pos);
     83      regressionData.Name = Path.GetFileName(path);
     84
     85      return regressionData;
     86    }
     87
     88    public override IRegressionProblemData ImportData(string path, DataAnalysisImportType type) {
     89      TableFileParser csvFileParser = new TableFileParser();
     90      csvFileParser.Parse(path);
     91
     92      List<IList> values = csvFileParser.Values;
     93      if (type.Shuffle) {
     94        values = Shuffle(values);
    7995      }
    80       return regData;
     96      Dataset dataset = new Dataset(csvFileParser.VariableNames, values);
     97      string targetVar = dataset.DoubleVariables.Last();
     98
     99      // turn of input variables that are constant in the training partition
     100      var allowedInputVars = new List<string>();
     101      int trainingPartEnd = (csvFileParser.Rows * type.Training) / 100;
     102      trainingPartEnd = trainingPartEnd > 0 ? trainingPartEnd : 1;
     103      var trainingIndizes = Enumerable.Range(0, trainingPartEnd);
     104      if (trainingIndizes.Count() >= 2) {
     105        foreach (var variableName in dataset.DoubleVariables) {
     106          if (dataset.GetDoubleValues(variableName, trainingIndizes).Range() > 0 &&
     107            variableName != targetVar)
     108            allowedInputVars.Add(variableName);
     109        }
     110      } else {
     111        allowedInputVars.AddRange(dataset.DoubleVariables.Where(x => x.Equals(targetVar)));
     112      }
     113
     114      RegressionProblemData regressionData = new RegressionProblemData(dataset, allowedInputVars, targetVar);
     115
     116      regressionData.TrainingPartition.Start = 0;
     117      regressionData.TrainingPartition.End = trainingPartEnd;
     118      regressionData.TestPartition.Start = trainingPartEnd;
     119      regressionData.TestPartition.End = csvFileParser.Rows;
     120
     121      regressionData.Name = Path.GetFileName(path);
     122
     123      return regressionData;
    81124    }
    82125
     
    85128    }
    86129    public override void ExportData(IRegressionProblemData instance, string path) {
    87       StringBuilder strBuilder = new StringBuilder();
    88 
    89       foreach (var variable in instance.InputVariables) {
    90         strBuilder.Append(variable + ";");
     130      var strBuilder = new StringBuilder();
     131      var colSep = CultureInfo.CurrentCulture.TextInfo.ListSeparator;
     132      foreach (var variable in instance.Dataset.VariableNames) {
     133        strBuilder.Append(variable.Replace(colSep, String.Empty) + colSep);
    91134      }
    92       strBuilder.Remove(strBuilder.Length - 1, 1);
     135      strBuilder.Remove(strBuilder.Length - colSep.Length, colSep.Length);
    93136      strBuilder.AppendLine();
    94137
    95       Dataset dataset = instance.Dataset;
     138      var dataset = instance.Dataset;
    96139
    97140      for (int i = 0; i < dataset.Rows; i++) {
    98141        for (int j = 0; j < dataset.Columns; j++) {
    99           strBuilder.Append(dataset.GetValue(i, j) + ";");
     142          if (j > 0) strBuilder.Append(colSep);
     143          strBuilder.Append(dataset.GetValue(i, j));
    100144        }
    101         strBuilder.Remove(strBuilder.Length - 1, 1);
    102145        strBuilder.AppendLine();
    103146      }
    104147
    105       using (StreamWriter writer = new StreamWriter(path)) {
     148      using (var writer = new StreamWriter(path)) {
    106149        writer.Write(strBuilder);
    107150      }
  • branches/HeuristicLab.TimeSeries/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/RegressionInstanceProvider.cs

    r8430 r8742  
    2323
    2424namespace HeuristicLab.Problems.Instances.DataAnalysis {
    25   public abstract class RegressionInstanceProvider : ProblemInstanceProvider<IRegressionProblemData> {
     25  public abstract class RegressionInstanceProvider : DataAnalysisInstanceProvider<IRegressionProblemData> {
    2626  }
    2727}
  • branches/HeuristicLab.TimeSeries/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/ValueGenerator.cs

    r8430 r8742  
    2323using System.Collections.Generic;
    2424using System.Linq;
     25using HeuristicLab.Common;
    2526using HeuristicLab.Random;
    2627
     
    4041      if (stepWidth <= 0) throw new ArgumentException("stepwith must be larger than zero.", "stepWidth");
    4142      double x = start;
    42       while (x <= end) {
     43      // x<=end could skip the last value because of numerical problems
     44      while (x < end || x.IsAlmost(end)) {
    4345        yield return x;
    4446        x += stepWidth;
  • branches/HeuristicLab.TimeSeries/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/Various/FriedmanTwo.cs

    r7860 r8742  
    3636    }
    3737    protected override string TargetVariable { get { return "Y"; } }
    38     protected override string[] InputVariables { get { return new string[] { "X1", "X2", "X3", "X4", "X5", "Y" }; } }
    39     protected override string[] AllowedInputVariables { get { return new string[] { "X1", "X2", "X3", "X4", "X5" }; } }
     38    protected override string[] InputVariables { get { return new string[] { "X1", "X2", "X3", "X4", "X5", "X6", "X7", "X8", "X9", "X10", "Y" }; } }
     39    protected override string[] AllowedInputVariables { get { return new string[] { "X1", "X2", "X3", "X4", "X5", "X6", "X7", "X8", "X9", "X10" }; } }
    4040    protected override int TrainingPartitionStart { get { return 0; } }
    4141    protected override int TrainingPartitionEnd { get { return 5000; } }
  • branches/HeuristicLab.TimeSeries/HeuristicLab.Problems.Instances.DataAnalysis/3.3/TableFileParser.cs

    r7851 r8742  
    3232namespace HeuristicLab.Problems.Instances.DataAnalysis {
    3333  public class TableFileParser {
    34     private const int BUFFER_SIZE = 1024;
     34    private const int BUFFER_SIZE = 65536;
    3535    private static readonly char[] POSSIBLE_SEPARATORS = new char[] { ',', ';', '\t' };
    3636    private Tokenizer tokenizer;
Note: See TracChangeset for help on using the changeset viewer.