def test_iris(self, basis): X, y = load_iris(return_X_y=True) scml = SCML_Supervised(basis=basis, n_basis=85, k_genuine=7, k_impostor=5, random_state=42) scml.fit(X, y) csep = class_separation(scml.transform(X), y) assert csep < 0.24
def test_big_n_features(self): X, y = make_classification(n_samples=100, n_classes=3, n_features=60, n_informative=60, n_redundant=0, n_repeated=0, random_state=42) X = StandardScaler().fit_transform(X) scml = SCML_Supervised(random_state=42) scml.fit(X, y) csep = class_separation(scml.transform(X), y) assert csep < 0.7
def test_iris(self, basis): """ SCML applied to Iris dataset should give better results when computing class separation. """ X, y = load_iris(return_X_y=True) before = class_separation(X, y) scml = SCML_Supervised(basis=basis, n_basis=85, k_genuine=7, k_impostor=5, random_state=42) scml.fit(X, y) after = class_separation(scml.transform(X), y) assert before > after + 0.03 # It's better by a margin of 0.03