def testSetMaxDepth(self): maxDepth = 20 decisionTree = DecisionTree() decisionTree.setMaxDepth(maxDepth) decisionTree.learnModel(self.X, self.y) #self.assertTrue(DecisionTree.depth(decisionTree.getClassifier().tree) <= maxDepth+1) maxDepth = 5 decisionTree = DecisionTree() decisionTree.setMaxDepth(maxDepth) decisionTree.learnModel(self.X, self.y)
def testSetWeight(self): #Try weight = 0 and weight = 1 decisionTree = DecisionTree() decisionTree.setWeight(0.0) decisionTree.learnModel(self.X, self.y) predY = decisionTree.predict(self.X) self.assertTrue((predY == numpy.zeros(predY.shape[0])).all()) decisionTree.setWeight(1.0) decisionTree.learnModel(self.X, self.y) predY = decisionTree.predict(self.X) self.assertTrue((predY == numpy.ones(predY.shape[0])).all())
def testMinSplit(self): decisionTree = DecisionTree() decisionTree.setMinSplit(20) decisionTree.learnModel(self.X, self.y) size = decisionTree.getTree().node_count #orngTree.printTree(decisionTree.getClassifier()) decisionTree.setMinSplit(1) decisionTree.learnModel(self.X, self.y) size2 = decisionTree.getTree().node_count #orngTree.printTree(decisionTree.getClassifier()) self.assertTrue(size < size2)
def testPredict(self): decisionTree = DecisionTree() decisionTree.learnModel(self.X, self.y) predY = decisionTree.predict(self.X) inds = numpy.random.permutation(self.X.shape[0]) predY2 = decisionTree.predict(self.X[inds, :]) self.assertTrue((predY[inds] == predY2).all()) #Let's test on -1, +1 labels y2 = (self.y*2)-1 decisionTree.learnModel(self.X, y2) predY2 = decisionTree.predict(self.X) self.assertTrue((predY2 == predY*2-1).all())
def testLearnModel(self): decisionTree = DecisionTree() decisionTree.learnModel(self.X, self.y) tree = decisionTree.getClassifier()