示例#1
0
 def test_LargeSample5Fold(self):
     stratifiedKFoldCrossValidation = StratifiedKFoldCrossValidation(
         self.largeSample, 5, 1)
     for i in range(5):
         items = set()
         trainFold = stratifiedKFoldCrossValidation.getTrainFold(i)
         testFold = stratifiedKFoldCrossValidation.getTestFold(i)
         items.update(trainFold)
         items.update(testFold)
         self.assertEquals(1800, len(testFold))
         self.assertEquals(7200, len(trainFold))
         self.assertEquals(9000, len(items))
         trainCounts = [0, 0, 0]
         for integer in trainFold:
             if integer < 1000:
                 trainCounts[0] = trainCounts[0] + 1
             elif integer < 4000:
                 trainCounts[1] = trainCounts[1] + 1
             else:
                 trainCounts[2] = trainCounts[2] + 1
         self.assertEquals(800, trainCounts[0])
         self.assertEquals(2400, trainCounts[1])
         self.assertEquals(4000, trainCounts[2])
         testCounts = [0, 0, 0]
         for integer in testFold:
             if integer < 1000:
                 testCounts[0] = testCounts[0] + 1
             elif integer < 4000:
                 testCounts[1] = testCounts[1] + 1
             else:
                 testCounts[2] = testCounts[2] + 1
         self.assertEquals(200, testCounts[0])
         self.assertEquals(600, testCounts[1])
         self.assertEquals(1000, testCounts[2])
示例#2
0
 def test_SmallSample2Fold(self):
     stratifiedKFoldCrossValidation = StratifiedKFoldCrossValidation(
         self.smallSample, 2, 1)
     expected3 = [
         "7", "9", "10", "8", "6", "22", "16", "28", "30", "20", "11", "27",
         "12", "26", "17"
     ]
     self.assertEquals(expected3,
                       stratifiedKFoldCrossValidation.getTestFold(0))
示例#3
0
 def execute(self, experiment: Experiment) -> ExperimentPerformance:
     result = ExperimentPerformance()
     for j in range(self.M):
         instanceList = experiment.getDataSet().getInstanceList()
         partition = Partition(instanceList, 0.25,
                               experiment.getParameter().getSeed(), True)
         crossValidation = StratifiedKFoldCrossValidation(
             Partition(partition.get(1)).getLists(), self.K,
             experiment.getParameter().getSeed())
         self.runExperiment(experiment.getClassifier(),
                            experiment.getParameter(), result,
                            crossValidation, partition.get(0))
     return result
示例#4
0
    def execute(self, experiment: Experiment) -> Performance:
        """
        Execute Stratified Single K-fold cross-validation with the given classifier on the given data set using the
        given parameters.

        PARAMETERS
        ----------
        experiment : Experiment
            Experiment to be run.

        RETURNS
        -------
        Performance
            A Performance instance.
        """
        crossValidation = StratifiedKFoldCrossValidation(
            experiment.getDataSet().getClassInstances(), self.__K,
            experiment.getParameter().getSeed())
        trainSet = InstanceList(crossValidation.getTrainFold(0))
        testSet = InstanceList(crossValidation.getTestFold(0))
        return experiment.getClassifier().singleRun(experiment.getParameter(),
                                                    trainSet, testSet)
    def execute(self, experiment: Experiment) -> ExperimentPerformance:
        """
        Execute Stratified K-fold cross-validation with the given classifier on the given data set using the given
        parameters.

        PARAMETERS
        ----------
        experiment : Experiment
            Experiment to be run.

        RETURNS
        -------
        ExperimentPerformance
            An ExperimentPerformance instance.
        """
        result = ExperimentPerformance()
        crossValidation = StratifiedKFoldCrossValidation(experiment.getDataSet().getClassInstances(), self.K,
                                                         experiment.getParameter().getSeed())
        self.runExperiment(experiment.getClassifier(), experiment.getParameter(), result, crossValidation)
        return result
示例#6
0
 def test_SmallSample5Fold(self):
     stratifiedKFoldCrossValidation = StratifiedKFoldCrossValidation(
         self.smallSample, 5, 1)
     expected2 = ["7", "9", "22", "16", "28", "30"]
     self.assertEquals(expected2,
                       stratifiedKFoldCrossValidation.getTestFold(0))
示例#7
0
 def test_SmallSample10Fold(self):
     stratifiedKFoldCrossValidation = StratifiedKFoldCrossValidation(
         self.smallSample, 10, 1)
     expected1 = ["7", "22", "16"]
     self.assertEquals(expected1,
                       stratifiedKFoldCrossValidation.getTestFold(0))