Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
03/09/10 20:26:03 (14 years ago)
Author:
gkronber
Message:

Fixed bugs in MLP operators, extended operators to work for time series prognosis and added pre-configured engine for time series prognosis with MLP. #882 (Artificial neural networks engine for time series prognosis)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/sources/HeuristicLab.ArtificialNeuralNetworks/3.2/MultiLayerPerceptronEvaluator.cs

    r2562 r2985  
    5252                               select ((StringData)x).Data;
    5353      string targetVariable = GetVariableValue<StringData>("TargetVariable", scope, true).Data;
    54       int targetVariableIndex = dataset.GetVariableIndex(targetVariable);
     54      // int targetVariableIndex = dataset.GetVariableIndex(targetVariable);
    5555      int start = GetVariableValue<IntData>("SamplesStart", scope, true).Data;
    5656      int end = GetVariableValue<IntData>("SamplesEnd", scope, true).Data;
     
    6161      MultiLayerPerceptron model = GetVariableValue<MultiLayerPerceptron>("MultiLayerPerceptron", scope, true);
    6262
    63       double[,] values = new double[end - start, 2];
    64       for (int i = 0; i < end - start; i++) {
     63      double[] targetVector;
     64      double[,] inputMatrix;
     65      MultiLayerPerceptronRegressionOperator.PrepareDataset(dataset, targetVariable, inputVariableNames, start, end, minTimeOffset, maxTimeOffset,
     66        out inputMatrix, out targetVector);
     67
     68      double[,] values = new double[targetVector.Length, 2];
     69      for (int i = 0; i < targetVector.Length; i++) {
    6570        double[] output = new double[1];
    66         double[] inputRow = new double[dataset.Columns - 1];
    67         for (int c = 1; c < inputRow.Length; c++) {
    68           inputRow[c - 1] = dataset.GetValue(i + start, c);
     71        double[] inputRow = new double[inputMatrix.GetLength(1)];
     72        for (int c = 0; c < inputRow.Length; c++) {
     73          inputRow[c] = inputMatrix[i, c];
    6974        }
    7075        alglib.mlpbase.multilayerperceptron p = model.Perceptron;
    7176        alglib.mlpbase.mlpprocess(ref p, ref inputRow, ref output);
    7277        model.Perceptron = p;
    73         values[i, 0] = dataset.GetValue(start + i, targetVariableIndex);
     78        values[i, 0] = targetVector[i];
    7479        values[i, 1] = output[0];
    7580      }
Note: See TracChangeset for help on using the changeset viewer.