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)
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)
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)
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)
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)