Example #1
0
 def testGradingTraining(self):
     
     # Coordinates plane for classification task
     #                  1111111
     # X      01234567890123456   #Y
     grid = [' 1 1 1 1 1 1    0', #0
             ' 1 1 1   1      0', #1
             ' 1 1  1         0', #2
             '  1   1      0  0', #3
             ' 1 1       0 0 0 ', #4
             ' 1  1      0 0  0', #5
             '  1        0 0 00', #6
             ' 1     0   0 00 0', #7
             
             ]
     
     dataset = ClassificationDataSet(2, nb_classes=2, class_labels= ['0', '1'])
     
     createFromGrid(grid, dataset)
     
     
     optimizer = GradientOptimizer(minChange=1e-6)
     optimizer.maxLearningSteps = 1000
     optimizer.verbose = False
     lrf = LogisticRegressionFactory(optimizer)
     gradingFactory = GradingFactory([lrf, lrf, lrf], lrf, 0.7, MajorVoting)
     
     gradingClassifier = gradingFactory.buildClassifier(dataset)
     
     self.assertEqual(gradingClassifier.getPrediction([0, 0]), 1)
     self.assertEqual(gradingClassifier.getPrediction([16, 7]), 0)
Example #2
0
    def testUsingPredictions(self):
        # Coordinates plane for classification task
        #                  1111111
        # X      01234567890123456   #Y
        grid = [' 0   0     11  11', #0
                ' 0   0     1 1  1', #1
                '   0           1 ', #2
                '   0  0      1  1', #3
                '  0           1 1', #4
                ' 0  0   0     111', #5
                '      0   0    11', #6
                '  0 0   0  0   11', #7
                
                ]

        dataset = ClassificationDataSet(2, nb_classes=2, class_labels= ['0', '1'])
        
        createFromGrid(grid, dataset)
        
        optimizer = GradientOptimizer(minChange=1e-6)
        optimizer.maxLearningSteps = 1000
        optimizer.verbose = False
        lrf = LogisticRegressionFactory(optimizer)
        
        stackingFactory = StackingFactory([lrf, lrf], lrf, useDistributions=True)
        stackingClassifier = stackingFactory.buildClassifier(dataset)
                
        self.assertEqual(stackingClassifier.getPrediction([2, 6]), 0)
        self.assertEqual(stackingClassifier.getPrediction([1, 8]), 0)
        self.assertEqual(stackingClassifier.getPrediction([3, 7]), 0)
        self.assertEqual(stackingClassifier.getPrediction([14, 2]), 1)
        self.assertEqual(stackingClassifier.getPrediction([13, 0]), 1)
        self.assertEqual(stackingClassifier.getPrediction([16, 4]), 1)
Example #3
0
 def testLogisticWithMulticlass(self):
     # Coordinates plane for classification task
     #                  1111111
     # X      01234567890123456   #Y
     grid = [' 0   0           ', #0
             ' 0   0       2  2', #1
             '                 ', #2
             '             2  2', #3
             '                 ', #4
             '    1   1        ', #5
             '                 ', #6
             '    1   1        ', #7
             
             ]
     
     dataset = ClassificationDataSet(2, nb_classes=3, class_labels= ['0', '1', '2'])
     
     createFromGrid(grid, dataset)
     
     optimizer = GradientOptimizer(minChange=1e-6)
     optimizer.maxLearningSteps = 1000
     optimizer.verbose = False
     lrf = LogisticRegressionFactory(optimizer)
     allVsAll = AllVsAllFactory(lrf)
     classifier = allVsAll.buildClassifier(dataset)
     
     self.assertEqual(classifier.getPrediction([3, 0]),  0)
     self.assertEqual(classifier.getPrediction([4, 1]),  0)
     self.assertEqual(classifier.getPrediction([6, 5]),  1)
     self.assertEqual(classifier.getPrediction([6, 6]),  1)
     self.assertEqual(classifier.getPrediction([15, 2]), 2)
     self.assertEqual(classifier.getPrediction([14, 2]), 2)  
    def testTwoDimensionalClassification1(self):
        # Coordinates plane for classification task
        #                  1111111
        # X      01234567890123456   #Y
        grid = [
            " 1   1           ",  # 0
            " 1   1       0  0",  # 1
            "                 ",  # 2
            "             0  0",  # 3
            "                 ",  # 4
            "    0   0        ",  # 5
            "                 ",  # 6
            "    0   0        ",  # 7
        ]

        dataset = ClassificationDataSet(2, nb_classes=2, class_labels=["0", "1"])

        createFromGrid(grid, dataset)

        optimizer = GradientOptimizer(minChange=1e-6)
        optimizer.maxLearningSteps = 1000
        optimizer.verbose = False
        lrf = LogisticRegressionFactory(optimizer)
        classifier = lrf.buildClassifier(dataset)

        self.assertEqual(classifier.getPrediction([3, 0]), 1)
        self.assertEqual(classifier.getPrediction([4, 1]), 1)
Example #5
0
 def testMulticlassTaskWithProbabilityEstimation(self):
     # Coordinates plane for classification task
     #                  1111111
     # X      01234567890123456   #Y
     grid = [' 0   0           ', #0
             ' 0   0       2  2', #1
             '                 ', #2
             '             2  2', #3
             '                 ', #4
             '    1   1        ', #5
             '                 ', #6
             '    1   1        ', #7
             
             ]
     
     dataset = ClassificationDataSet(2, nb_classes=3, class_labels= ['0', '1', '2'])
     
     createFromGrid(grid, dataset)
     
     svmf = SVMFactory(C=100, estimateProbability=True)
     classifier = svmf.buildClassifier(dataset)
     
     self.assertEqual(classifier.getPrediction([3, 0]),  0)
     self.assertEqual(classifier.getPrediction([4, 1]),  0)
     self.assertEqual(classifier.getPrediction([6, 5]),  1)
     self.assertEqual(classifier.getPrediction([6, 6]),  1)
     self.assertEqual(classifier.getPrediction([15, 2]), 2)
     self.assertEqual(classifier.getPrediction([14, 2]), 2)
Example #6
0
 def testLinearSeparableNuSVCTypeEstimateProbability(self):
     # Coordinates plane for classification task
     #                  1111111
     # X      01234567890123456   #Y
     grid = [' 1   1           ', #0
             ' 1   1       0  0', #1
             '                 ', #2
             '             0  0', #3
             '                 ', #4
             '    0   0        ', #5
             '                 ', #6
             '    0   0        ', #7
             
             ]
     
     dataset = ClassificationDataSet(2, nb_classes=2, class_labels= ['0', '1'])
     
     createFromGrid(grid, dataset)
     
     svmf = SVMFactory(nu = 0.3, estimateProbability=True, svmType=SVMType.NU_SVC)
     classifier = svmf.buildClassifier(dataset)
     
     self.assertEqual(classifier.getPrediction([3, 0]),  1)
     self.assertEqual(classifier.getPrediction([4, 1]),  1)
     self.assertEqual(classifier.getPrediction([6, 5]),  0)
     self.assertEqual(classifier.getPrediction([6, 6]),  0)
     self.assertEqual(classifier.getPrediction([15, 2]), 0)
     self.assertEqual(classifier.getPrediction([14, 2]), 0)