Example #1
0
        public override IProblemData ImportData(string path)
        {
            TableFileParser csvFileParser = new TableFileParser();

            csvFileParser.Parse(path, csvFileParser.AreColumnNamesInFirstLine(path));

            Dataset dataset   = new Dataset(csvFileParser.VariableNames, csvFileParser.Values);
            string  targetVar = (from v in dataset.DoubleVariables
                                 where dataset.GetReadOnlyDoubleValues(v).Min() <= 0
                                 where dataset.GetReadOnlyDoubleValues(v).Max() >= 0
                                 select v).LastOrDefault();

            if (targetVar == null)
            {
                throw new ArgumentException("The target variable must contain changes (deltas) of the asset price over time.");
            }

            // turn off input variables that are constant in the training partition
            var allowedInputVars = new List <string>();
            var trainingIndizes  = Enumerable.Range(0, (csvFileParser.Rows * 2) / 3);

            if (trainingIndizes.Count() >= 2)
            {
                foreach (var variableName in dataset.DoubleVariables)
                {
                    if (dataset.GetDoubleValues(variableName, trainingIndizes).Range() > 0)
                    {
                        allowedInputVars.Add(variableName);
                    }
                }
            }
            else
            {
                allowedInputVars.AddRange(dataset.DoubleVariables);
            }

            IProblemData problemData = new ProblemData(dataset, allowedInputVars, targetVar);

            var trainingPartEnd = trainingIndizes.Last();

            problemData.TrainingPartition.Start = trainingIndizes.First();
            problemData.TrainingPartition.End   = trainingPartEnd;
            problemData.TestPartition.Start     = trainingPartEnd;
            problemData.TestPartition.End       = csvFileParser.Rows;

            problemData.Name = Path.GetFileName(path);

            return(problemData);
        }
Example #2
0
 private ProblemData(ProblemData original, Cloner cloner)
     : base(original, cloner)
 {
     RegisterParameterEvents();
 }
Example #3
0
 private ProblemData(ProblemData original, Cloner cloner)
   : base(original, cloner) {
   RegisterParameterEvents();
 }