Beispiel #1
0
        /// <summary>
        /// Returns a collation of all unassigned, training, validation, and test data points.
        /// </summary>
        /// <returns></returns>
        public DataPoint[] GetWholeSet()
        {
            DataPoint[] set = new DataPoint[unassigned.Count + TrainingSet.Length +
                                            ValidationSet.Length + TestSet.Length];

            TrainingSet.CopyTo(set, 0);
            ValidationSet.CopyTo(set, TrainingSet.Length);
            TestSet.CopyTo(set, TrainingSet.Length + ValidationSet.Length);
            unassigned.CopyTo(set, set.Length - unassigned.Count);

            return(set);
        }
Beispiel #2
0
        /// <summary>
        /// Randomly assign any unassigned points to the training, validation, and test sets with
        /// the given ratio of probabilities.
        /// </summary>
        /// <param name="trainingRatio"></param>
        /// <param name="validationRatio"></param>
        /// <param name="testRatio"></param>
        public void AssignDataPoints(double trainingRatio, double validationRatio,
                                     double testRatio)
        {
            // Calculate probability cutoffs for assignment
            double cutoff1 = trainingRatio / (trainingRatio + validationRatio + testRatio);
            double cutoff2 = (trainingRatio + validationRatio) /
                             (trainingRatio + validationRatio + testRatio);

            List <DataPoint> training   = new List <DataPoint>();
            List <DataPoint> validation = new List <DataPoint>();
            List <DataPoint> test       = new List <DataPoint>();

            while (unassigned.Count > 0)
            {
                double randomDouble = random.NextDouble();
                if (randomDouble < cutoff1)
                {
                    training.Add(unassigned.Dequeue());
                }
                else if (randomDouble < cutoff2)
                {
                    validation.Add(unassigned.Dequeue());
                }
                else
                {
                    test.Add(unassigned.Dequeue());
                }
            }

            // Construct new arrays
            DataPoint[] trainingBuffer = new DataPoint[TrainingSet.Length + training.Count];
            TrainingSet.CopyTo(trainingBuffer, training.Count);
            training.CopyTo(trainingBuffer, 0);
            TrainingSet = trainingBuffer;

            DataPoint[] validationBuffer = new DataPoint[ValidationSet.Length + validation.Count];
            ValidationSet.CopyTo(validationBuffer, validation.Count);
            validation.CopyTo(validationBuffer, 0);
            ValidationSet = validationBuffer;

            DataPoint[] testBuffer = new DataPoint[TestSet.Length + test.Count];
            TestSet.CopyTo(testBuffer, test.Count);
            test.CopyTo(testBuffer, 0);
            TestSet = testBuffer;
        }
Beispiel #3
0
 /// <summary>
 /// Konstruktor s validacnymi pravidlami
 /// </summary>
 /// <param name="rules"></param>
 public KvValidator(ValidationSet rules)
 {
     this.Rules = rules;
 }