def test_create_tree(self): tree = dt._create_decision_node(self.x, self.labels_train) assert(tree.split[0] == 2) for i in range(2): assert tree.children[i].majority == i assert tree.children[1].split is None
def test_create_tree(self): tree = dt._create_decision_node(self.x, self.labels_train) assert (tree.split[0] == 2) for i in range(2): assert tree.children[i].majority == i assert tree.children[1].split is None
def test_min_obs_split(self): min_obs = 5 tree = dt._create_decision_node(X_TRAIN, self.labels_train, min_obs_split=min_obs) for desc in tree.descendents(): if len(dt._data_at_node(tree, desc, X_TRAIN)) < min_obs: assert desc.split is None
def test_first_split(self): tree = dt._create_decision_node(self.x, self.labels_train) x_sorted = np.sort(self.x[:,2]) zero_ind = np.searchsorted(x_sorted, 0) assert tree.split[0] == 2 assert (tree.split[1] == x_sorted[zero_ind] or tree.split[1] == x_sorted[zero_ind-1])
def test_first_split(self): tree = dt._create_decision_node(self.x, self.labels_train) x_sorted = np.sort(self.x[:, 2]) zero_ind = np.searchsorted(x_sorted, 0) assert tree.split[0] == 2 assert (tree.split[1] == x_sorted[zero_ind] or tree.split[1] == x_sorted[zero_ind - 1])
def test__data_at_node(self): tree = dt._create_decision_node(self.x, self.labels_train) assert np.all( self.x[self.x[:,2] < 0] == dt._data_at_node(tree, tree.children[0], self.x) ) assert np.all( self.x[self.x[:,2] > 0] == dt._data_at_node(tree, tree.children[1], self.x) )
def test_num_nodes_min_split(self): tree_minobs0 = dt._create_decision_node(X_TRAIN, self.labels_train) tree_minobs10 = dt._create_decision_node(X_TRAIN, self.labels_train, min_obs_split=10) assert tree_minobs0.num_nodes() > tree_minobs10.num_nodes()
def test_stumps(self): tree = dt._create_decision_node(X_TRAIN, self.labels_train) for stump in tree.stumps(): for i in range(2): assert (stump.children[i].split is None)
def test_stumps(self): tree = dt._create_decision_node(self.x, self.labels_train) assert (len(tree.stumps()) == 1) assert (tree.stumps()[0] is tree)
def test__data_at_node(self): tree = dt._create_decision_node(self.x, self.labels_train) assert np.all(self.x[self.x[:, 2] < 0] == dt._data_at_node( tree, tree.children[0], self.x)) assert np.all(self.x[self.x[:, 2] > 0] == dt._data_at_node( tree, tree.children[1], self.x))
def test_stumps_nodepth(self): tree = dt._create_decision_node(self.x, self.labels_train, max_depth=0) assert(len(tree.stumps()) == 0)
def test_tree_max_depth(self): tree = dt._create_decision_node(self.x, self.labels_train, max_depth=0) assert tree.split is None
def test_classify(self): tree = dt._create_decision_node(X_TRAIN, self.labels_train) for obs, label in zip(X_TRAIN, self.labels_train): assert tree.classify_obs(obs) == label
def test_stumps(self): tree = dt._create_decision_node(X_TRAIN, self.labels_train) for stump in tree.stumps(): for i in range(2): assert(stump.children[i].split is None)
def test_tree_print(self): tree = dt._create_decision_node(X_TRAIN, self.labels_train) print(tree)
def test_num_nodes1(self): tree = dt._create_decision_node(self.x, self.labels_train, max_depth=0) assert tree.num_nodes() == 1
def test_stumps(self): tree = dt._create_decision_node(self.x, self.labels_train) assert(len(tree.stumps()) == 1) assert(tree.stumps()[0] is tree)
def test_num_nodes(self): tree = dt._create_decision_node(self.x, self.labels_train) assert tree.num_nodes() == 3
def test_descendents(self): tree = dt._create_decision_node(self.x, self.labels_train) assert len(tree.descendents()) == 3 assert tree in tree.descendents() for i in range(2): assert tree.children[i] in tree.descendents()
def test_classify(self): tree = dt._create_decision_node(self.x, self.labels_train) for obs, label in zip(self.x, self.labels_train): assert tree.classify_obs(obs) == label
def test_stumps_nodepth(self): tree = dt._create_decision_node(self.x, self.labels_train, max_depth=0) assert (len(tree.stumps()) == 0)