Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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;
        }