def test_get_subspaces(self): dataset = np.random.random((10, 16)) y = np.random.randint(0, 2, 10) expected_values = [ ("auto", 4), ("log2", 4), ("sqrt", 4), (0.5, 8), (3, 3), (None, 16), ] clf = Stree() for max_features, expected in expected_values: clf.set_params(**dict(max_features=max_features)) clf.fit(dataset, y) computed, indices = clf.splitter_.get_subspace( dataset, y, clf.max_features_) self.assertListEqual(dataset[:, indices].tolist(), computed.tolist()) self.assertEqual(expected, len(indices))
def test_max_features(self): n_features = 16 expected_values = [ ("auto", 4), ("log2", 4), ("sqrt", 4), (0.5, 8), (3, 3), (None, 16), ] clf = Stree() clf.n_features_ = n_features for max_features, expected in expected_values: clf.set_params(**dict(max_features=max_features)) computed = clf._initialize_max_features() self.assertEqual(expected, computed) # Check bogus max_features values = ["duck", -0.1, 0.0] for max_features in values: clf.set_params(**dict(max_features=max_features)) with self.assertRaises(ValueError): _ = clf._initialize_max_features()