public static void InitializeForPrediction(List <DenseVector> dataSet, out CasesData trainingCases, out CasesData testCases, int outputCount, int historyLength, float trainSetPercentage = 0.7f) { int inputCount = dataSet[0].Count() - outputCount; if (inputCount < 1 || outputCount < 1) { throw new ArgumentException("Niepoprawne dane w plikach .csv"); } if (trainSetPercentage <= 0 || trainSetPercentage > 1) { throw new ArgumentException("Train Set Percentage should be between 0 and 1"); } List <DenseVector> trainSet = new List <DenseVector>(); List <DenseVector> testSet = new List <DenseVector>(); int atIndex = 0; for (atIndex = 0; atIndex < dataSet.Count * trainSetPercentage; atIndex++) { trainSet.Add(dataSet[atIndex]); } if (trainSetPercentage == 1.0f) // special mode (testing on train set) { testSet = trainSet; } else { atIndex -= historyLength; // move back to have a "buffer" for historical data. while (atIndex < dataSet.Count) { testSet.Add(dataSet[atIndex++]); } } trainingCases = new CasesData(ProblemType.Regression, trainSet.Select(x => x.CreateSubVector(0, inputCount)) .ToList(), trainSet.Select(x => x.CreateSubVector(inputCount, outputCount)) .ToList(), outputCount, historyLength); testCases = new CasesData(ProblemType.Regression, testSet.Select(x => x.CreateSubVector(0, inputCount)).ToList(), testSet.Select(x => x.CreateSubVector(inputCount, outputCount)) .ToList(), outputCount, historyLength); }
public static void InitializeAllData(List <DenseVector> trainingData, List <DenseVector> testData, ProblemType problem, out CasesData trainingCases, out CasesData testCases) { int input = testData.First().Count(); int output = trainingData.First().Count() - input; if (input < 1 || output < 1) { throw new ArgumentException("Niepoprawne dane w plikach .csv"); } trainingCases = new CasesData(problem, trainingData.Select(x => x.CreateSubVector(0, input)) .ToList(), trainingData.Select(x => x.CreateSubVector(input, output)) .ToList(), output); testCases = new CasesData(problem, testData, null, (problem == ProblemType.Regression) ? output : trainingCases.ClassCount); testCases.ClassIndexes = trainingCases.ClassIndexes; }