Encog Analyst Wizard, использующий сбои временных рядов. Ошибка найдена

Я пытаюсь использовать Encog Analyst Wizard 3.3.0 С# в коде. Работает нормально, когда не используются временные ряды, но установит счетчик ввода равным 0, если LagWindowSize > 0.

        FileInfo rawFile = new FileInfo("data.csv");       // The one and only input
        FileInfo analystFile = new FileInfo("data.ega");   // Wizard output file

        EncogAnalyst encog = new EncogAnalyst();
        encog.AddAnalystListener(new ConsoleAnalystListener());
        AnalystWizard wiz = new AnalystWizard(encog);

        wiz.Goal = AnalystGoal.Regression;
        wiz.TargetFieldName = "Close";
        wiz.IncludeTargetField = true;
->>>>   wiz.LagWindowSize = 10;              // No inputCount if LagWindowSize > 0
        wiz.LeadWindowSize = 2; 

        wiz.TaskSegregate = true; 
        wiz.MaxError = 0.01;
        wiz.TaskNormalize = true;
        wiz.Range = NormalizeRange.Zero2One;    // Sigmoid

        wiz.TaskCluster = false;
        wiz.TaskRandomize = false;
        wiz.TaskBalance = false;

        wiz.Wizard(rawFile, true, AnalystFileFormat.DecpntComma);
//                              
// Crashes on task Create below because inputCount becomes 0 with.LagWindowSize > 0
// but works if wiz.LagWindowSize is set to 0 ... What am I missing here???
//
  ->>>>   encog.ExecuteTask("task-full");   // task-create fails !

С уважением Питер


person Community    schedule 27.01.2015    source источник


Ответы (1)


После некоторой отладки я обнаружил ошибку в AnalystWizard.cs v3.3, прибл. private void ExpandTimeSlices(). строка 700:

// swap back in
oldList.Clear(); // oldList is cleared and then used in a foreach …

// Original line:  foreach (AnalystField item in oldList)

// New line:
foreach (AnalystField item in newList)  // Correct list !!!
{
    oldList.Add(item);
}

Эти строки выполняются, только если wiz.LagWindowSize > 0

person Community    schedule 28.01.2015
comment
Спасибо, я посмотрю на это. - person JeffHeaton; 30.01.2015
comment
Да, это ошибка. Я только что проверил предложенное исправление, оно будет включено в следующую версию Encog. github.com/encog/encog-dotnet-core/commit/ - person JeffHeaton; 01.02.2015