Changeset 6802


Ignore:
Timestamp:
09/20/11 10:11:14 (8 years ago)
Author:
gkronber
Message:

#1081 added classes (problem, evaluators, analyzers, solution, model, online-calculators, and views) for time series prognosis problems and added an algorithm implementation to generation linear AR (auto-regressive) time series prognosis solution.

Location:
trunk/sources
Files:
45 added
8 edited

Legend:

Unmodified
Added
Removed
  • trunk/sources/HeuristicLab 3.3.sln

    r6745 r6802  
    110110    {B7A64A60-B538-479F-9C47-A3180C458F6C} = {B7A64A60-B538-479F-9C47-A3180C458F6C}
    111111    {6F18ED66-2333-4B5C-B882-AC99FB3CDCE5} = {6F18ED66-2333-4B5C-B882-AC99FB3CDCE5}
     112    {07486E68-1517-4B9D-A58D-A38E99AE71AB} = {07486E68-1517-4B9D-A58D-A38E99AE71AB}
    112113    {4AE3FC69-C575-42D2-BC46-0FAD5850EFC5} = {4AE3FC69-C575-42D2-BC46-0FAD5850EFC5}
    113114    {56F9106A-079F-4C61-92F6-86A84C2D84B7} = {56F9106A-079F-4C61-92F6-86A84C2D84B7}
     
    125126    {70DFD984-B1D9-46FE-8EB7-4DE92D71A9FC} = {70DFD984-B1D9-46FE-8EB7-4DE92D71A9FC}
    126127    {06D4A186-9319-48A0-BADE-A2058D462EEA} = {06D4A186-9319-48A0-BADE-A2058D462EEA}
     128    {5B9B9E8C-2706-43C2-80B8-A08341E431F7} = {5B9B9E8C-2706-43C2-80B8-A08341E431F7}
    127129    {997F018D-AEA2-4F21-9301-82FAF6A5612D} = {997F018D-AEA2-4F21-9301-82FAF6A5612D}
    128130    {8FA6898D-E4B0-4E08-A6D6-F9F520E7959F} = {8FA6898D-E4B0-4E08-A6D6-F9F520E7959F}
     
    151153    {E4CFB0C3-0589-4893-B38E-8BEDF885C765} = {E4CFB0C3-0589-4893-B38E-8BEDF885C765}
    152154    {79271BC8-4446-40E2-BB89-9BE4E17174FE} = {79271BC8-4446-40E2-BB89-9BE4E17174FE}
     155    {02766ECC-D0F5-4115-9ECA-47409167B638} = {02766ECC-D0F5-4115-9ECA-47409167B638}
    153156    {7A2531CE-3F7C-4F13-BCCA-ED6DC27A7086} = {7A2531CE-3F7C-4F13-BCCA-ED6DC27A7086}
    154157    {236459CE-80CF-4991-972F-DE74C826BCCC} = {236459CE-80CF-4991-972F-DE74C826BCCC}
     
    413416EndProject
    414417Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.DayView-1.0", "HeuristicLab.ExtLibs\HeuristicLab.DayView\1.0\HeuristicLab.DayView-1.0.csproj", "{02766ECC-D0F5-4115-9ECA-47409167B638}"
     418EndProject
     419Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.DataAnalysis.Symbolic.TimeSeriesPrognosis-3.4", "HeuristicLab.Problems.DataAnalysis.Symbolic.TimeSeriesPrognosis\3.4\HeuristicLab.Problems.DataAnalysis.Symbolic.TimeSeriesPrognosis-3.4.csproj", "{07486E68-1517-4B9D-A58D-A38E99AE71AB}"
    415420EndProject
    416421Global
     
    19031908    {02766ECC-D0F5-4115-9ECA-47409167B638}.Release|x86.ActiveCfg = Release|x86
    19041909    {02766ECC-D0F5-4115-9ECA-47409167B638}.Release|x86.Build.0 = Release|x86
     1910    {07486E68-1517-4B9D-A58D-A38E99AE71AB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
     1911    {07486E68-1517-4B9D-A58D-A38E99AE71AB}.Debug|Any CPU.Build.0 = Debug|Any CPU
     1912    {07486E68-1517-4B9D-A58D-A38E99AE71AB}.Debug|x64.ActiveCfg = Debug|x64
     1913    {07486E68-1517-4B9D-A58D-A38E99AE71AB}.Debug|x64.Build.0 = Debug|x64
     1914    {07486E68-1517-4B9D-A58D-A38E99AE71AB}.Debug|x86.ActiveCfg = Debug|x86
     1915    {07486E68-1517-4B9D-A58D-A38E99AE71AB}.Debug|x86.Build.0 = Debug|x86
     1916    {07486E68-1517-4B9D-A58D-A38E99AE71AB}.Release|Any CPU.ActiveCfg = Release|Any CPU
     1917    {07486E68-1517-4B9D-A58D-A38E99AE71AB}.Release|Any CPU.Build.0 = Release|Any CPU
     1918    {07486E68-1517-4B9D-A58D-A38E99AE71AB}.Release|x64.ActiveCfg = Release|x64
     1919    {07486E68-1517-4B9D-A58D-A38E99AE71AB}.Release|x64.Build.0 = Release|x64
     1920    {07486E68-1517-4B9D-A58D-A38E99AE71AB}.Release|x86.ActiveCfg = Release|x86
     1921    {07486E68-1517-4B9D-A58D-A38E99AE71AB}.Release|x86.Build.0 = Release|x86
    19051922  EndGlobalSection
    19061923  GlobalSection(SolutionProperties) = preSolution
  • trunk/sources/HeuristicLab.Algorithms.DataAnalysis/3.4/HeuristicLab.Algorithms.DataAnalysis-3.4.csproj

    r6777 r6802  
    134134    </Compile>
    135135    <Compile Include="Linear\AlglibUtil.cs" />
     136    <Compile Include="Linear\LinearTimeSeriesPrognosis.cs" />
    136137    <Compile Include="Linear\LinearDiscriminantAnalysis.cs" />
    137138    <Compile Include="Linear\LinearRegression.cs">
     
    240241      <Name>HeuristicLab.Problems.DataAnalysis.Symbolic.Regression-3.4</Name>
    241242    </ProjectReference>
     243    <ProjectReference Include="..\..\HeuristicLab.Problems.DataAnalysis.Symbolic.TimeSeriesPrognosis\3.4\HeuristicLab.Problems.DataAnalysis.Symbolic.TimeSeriesPrognosis-3.4.csproj">
     244      <Project>{07486E68-1517-4B9D-A58D-A38E99AE71AB}</Project>
     245      <Name>HeuristicLab.Problems.DataAnalysis.Symbolic.TimeSeriesPrognosis-3.4</Name>
     246    </ProjectReference>
    242247    <ProjectReference Include="..\..\HeuristicLab.Problems.DataAnalysis.Symbolic\3.4\HeuristicLab.Problems.DataAnalysis.Symbolic-3.4.csproj">
    243248      <Project>{3D28463F-EC96-4D82-AFEE-38BE91A0CA00}</Project>
  • trunk/sources/HeuristicLab.Algorithms.DataAnalysis/3.4/HeuristicLabAlgorithmsDataAnalysisPlugin.cs.frame

    r6548 r6802  
    4242  [PluginDependency("HeuristicLab.Problems.DataAnalysis.Symbolic.Classification", "3.4")]
    4343  [PluginDependency("HeuristicLab.Problems.DataAnalysis.Symbolic.Regression", "3.4")]
     44  [PluginDependency("HeuristicLab.Problems.DataAnalysis.Symbolic.TimeSeriesPrognosis", "3.4")]
    4445  public class HeuristicLabAlgorithmsDataAnalysisPlugin : PluginBase {
    4546  }
  • trunk/sources/HeuristicLab.Algorithms.DataAnalysis/3.4/Linear/AlglibUtil.cs

    r6740 r6802  
    2727  public static class AlglibUtil {
    2828    public static double[,] PrepareInputMatrix(Dataset dataset, IEnumerable<string> variables, IEnumerable<int> rows) {
    29       List<string> variablesList = variables.ToList();
     29      return PrepareInputMatrix(dataset, variables, rows, new int[] { 0 });
     30    }
     31
     32    public static double[,] PrepareInputMatrix(Dataset dataset, IEnumerable<string> variables, IEnumerable<int> rows, IEnumerable<int> lags) {
     33      int maxLag = lags.Max();
     34
     35      // drop last variable (target variable)
     36      List<string> inputVariablesList = variables
     37        .Reverse()
     38        .Skip(1)
     39        .Reverse()
     40        .ToList();
     41      string targetVariable = variables.Last();
    3042      List<int> rowsList = rows.ToList();
    31 
    32       double[,] matrix = new double[rowsList.Count, variablesList.Count];
     43      int nRows = rowsList.Count - maxLag;
     44      double[,] matrix = new double[nRows, inputVariablesList.Count * lags.Count() + 1];
    3345
    3446      int col = 0;
    35       foreach (string column in variables) {
    36         var values = dataset.GetDoubleValues(column, rows);
    37         int row = 0;
    38         foreach (var value in values) {
    39           matrix[row, col] = value;
    40           row++;
     47      int row = 0;
     48      // input variables
     49      foreach (int lag in lags) {
     50        foreach (string column in inputVariablesList) {
     51          var values = dataset.GetDoubleValues(column, rows.Select(x => x - lag).Take(nRows));
     52          row = 0;
     53          foreach (var value in values) {
     54            if (row >= 0) {
     55              matrix[row, col] = value;
     56            }
     57            row++;
     58          }
     59          col++;
    4160        }
    42         col++;
    4361      }
    44 
     62      // target variable
     63      row = 0;
     64      foreach (var value in dataset.GetDoubleValues(targetVariable, rows).Take(nRows)) {
     65        matrix[row, col] = value;
     66        row++;
     67      }
    4568      return matrix;
    4669    }
  • trunk/sources/HeuristicLab.Algorithms.DataAnalysis/3.4/SupportVectorMachine/SupportVectorRegression.cs

    r6240 r6802  
    143143      parameter.Probability = false;
    144144
    145 
    146145      SVM.Problem problem = SupportVectorMachineUtil.CreateSvmProblem(dataset, targetVariable, allowedInputVariables, rows);
    147146      SVM.RangeTransform rangeTransform = SVM.RangeTransform.Compute(problem);
  • trunk/sources/HeuristicLab.Problems.DataAnalysis.Views/3.4/HeuristicLab.Problems.DataAnalysis.Views-3.4.csproj

    r6672 r6802  
    122122      <DependentUpon>ClassificationEnsembleSolutionModelView.cs</DependentUpon>
    123123    </Compile>
     124    <Compile Include="Solution Views\TimeSeriesPrognosisSolutionView.cs">
     125      <SubType>UserControl</SubType>
     126    </Compile>
     127    <Compile Include="Solution Views\TimeSeriesPrognosisSolutionView.Designer.cs">
     128      <DependentUpon>TimeSeriesPrognosisSolutionView.cs</DependentUpon>
     129    </Compile>
     130    <Compile Include="TimeSeriesPrognosis\TimeSeriesPrognosisSolutionLineChartView.cs">
     131      <SubType>UserControl</SubType>
     132    </Compile>
     133    <Compile Include="TimeSeriesPrognosis\TimeSeriesPrognosisSolutionLineChartView.Designer.cs">
     134      <DependentUpon>TimeSeriesPrognosisSolutionLineChartView.cs</DependentUpon>
     135    </Compile>
     136    <Compile Include="TimeSeriesPrognosis\TimeSeriesPrognosisSolutionPrognosedValuesView.cs">
     137      <SubType>UserControl</SubType>
     138    </Compile>
     139    <Compile Include="TimeSeriesPrognosis\TimeSeriesPrognosisSolutionPrognosedValuesView.Designer.cs">
     140      <DependentUpon>TimeSeriesPrognosisSolutionPrognosedValuesView.cs</DependentUpon>
     141    </Compile>
     142    <Compile Include="TimeSeriesPrognosis\TimeSeriesPrognosisSolutionScatterPlotView.cs">
     143      <SubType>UserControl</SubType>
     144    </Compile>
     145    <Compile Include="TimeSeriesPrognosis\TimeSeriesPrognosisSolutionScatterPlotView.Designer.cs">
     146      <DependentUpon>TimeSeriesPrognosisSolutionScatterPlotView.cs</DependentUpon>
     147    </Compile>
    124148    <Compile Include="DataAnalysisSolutionEvaluationView.cs">
    125149      <SubType>UserControl</SubType>
  • trunk/sources/HeuristicLab.Problems.DataAnalysis/3.4/HeuristicLab.Problems.DataAnalysis-3.4.csproj

    r6643 r6802  
    127127    </Compile>
    128128    <Compile Include="Implementation\Regression\RegressionEnsembleSolution.cs" />
     129    <Compile Include="Implementation\TimeSeriesPrognosis\TimeSeriesPrognosisProblem.cs" />
     130    <Compile Include="Implementation\TimeSeriesPrognosis\TimeSeriesPrognosisProblemData.cs" />
     131    <Compile Include="Implementation\TimeSeriesPrognosis\TimeSeriesPrognosisSolution.cs" />
     132    <Compile Include="Implementation\TimeSeriesPrognosis\TimeSeriesPrognosisSolutionBase.cs" />
    129133    <Compile Include="Interfaces\Classification\IClassificationEnsembleModel.cs">
    130134      <SubType>Code</SubType>
     
    139143    <Compile Include="Interfaces\Regression\IRegressionEnsembleSolution.cs" />
    140144    <Compile Include="Implementation\Regression\RegressionSolutionBase.cs" />
     145    <Compile Include="Interfaces\TimeSeriesPrognosis\ITimeSeriesPrognosisModel.cs" />
     146    <Compile Include="Interfaces\TimeSeriesPrognosis\ITimeSeriesPrognosisProblem.cs" />
     147    <Compile Include="Interfaces\TimeSeriesPrognosis\ITimeSeriesPrognosisProblemData.cs" />
     148    <Compile Include="Interfaces\TimeSeriesPrognosis\ITimeSeriesPrognosisSolution.cs" />
     149    <Compile Include="OnlineCalculators\OnlineDirectionalSymmetryCalculator.cs" />
    141150    <Compile Include="OnlineCalculators\OnlineMeanAbsoluteErrorCalculator.cs" />
    142151    <Compile Include="OnlineCalculators\OnlineLinearScalingParameterCalculator.cs" />
     
    174183    <Compile Include="OnlineCalculators\OnlinePearsonsRSquaredCalculator.cs" />
    175184    <Compile Include="Implementation\Regression\RegressionSolution.cs" />
     185    <Compile Include="OnlineCalculators\OnlineTheilsUStatisticCalculator.cs" />
     186    <Compile Include="OnlineCalculators\OnlineWeightedDirectionalSymmetryCalculator.cs" />
    176187    <Compile Include="TableFileParser.cs" />
    177188    <Compile Include="Implementation\Classification\ThresholdCalculators\AccuracyMaximizationThresholdCalculator.cs" />
  • trunk/sources/HeuristicLab/3.3/Files.txt

    r6745 r6802  
    6969HeuristicLab.Problems.DataAnalysis.Symbolic.Regression\3.4:HeuristicLab.Problems.DataAnalysis.Symbolic.Regression-3.4.dll
    7070HeuristicLab.Problems.DataAnalysis.Symbolic.Regression.Views\3.4:HeuristicLab.Problems.DataAnalysis.Symbolic.Regression.Views-3.4.dll
     71HeuristicLab.Problems.DataAnalysis.Symbolic.TimeSeriesPrognosis\3.4:HeuristicLab.Problems.DataAnalysis.Symbolic.TimeSeriesPrognosis-3.4.dll
    7172HeuristicLab.Problems.DataAnalysis.Views\3.3:HeuristicLab.Problems.DataAnalysis.Views-3.3.dll
    7273HeuristicLab.Problems.DataAnalysis.Views\3.4:HeuristicLab.Problems.DataAnalysis.Views-3.4.dll
Note: See TracChangeset for help on using the changeset viewer.