def test_different_shape(): n, p, k = 100, 200, 5 X, y, important_betas = _generate_dummy_regression_data(n=n, k=k) base_estimator = Pipeline([('scaler', StandardScaler()), ('model', Lasso())]) lambdas_grid = np.logspace(-1, 1, num=10) selector = StabilitySelection(base_estimator=base_estimator, lambda_name='model__alpha', lambda_grid=lambdas_grid) selector.fit(X, y) selector.transform(X[:, :-2])
def test_stability_selection_classification(): n, p, k = 1000, 1000, 5 X, y, important_betas = _generate_dummy_classification_data(n=n, k=k) selector = StabilitySelection(lambda_grid=np.logspace(-5, -1, 25), verbose=1) selector.fit(X, y) chosen_betas = selector.get_support(indices=True) X_r = selector.transform(X) assert_almost_equal(important_betas, chosen_betas) assert (X_r.shape == (n, k)) assert (selector.stability_scores_.shape == ( p, selector.lambda_grid.shape[0]))
def test_no_features(): n, p, k = 100, 200, 0 X, y, important_betas = _generate_dummy_regression_data(n=n, k=k) base_estimator = Pipeline([('scaler', StandardScaler()), ('model', Lasso())]) lambdas_grid = np.logspace(-1, 1, num=10) selector = StabilitySelection(base_estimator=base_estimator, lambda_name='model__alpha', lambda_grid=lambdas_grid) selector.fit(X, y) assert_almost_equal(selector.transform(X), np.empty(0).reshape((X.shape[0], 0)))