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); }
private ProblemData(ProblemData original, Cloner cloner) : base(original, cloner) { RegisterParameterEvents(); }
private ProblemData(ProblemData original, Cloner cloner) : base(original, cloner) { RegisterParameterEvents(); }