def test_not_normalized(self, dummy_data, monkeypatch): X, y, coef = dummy_data selector = ForwardSelector(normalize=False) mock_scaler = Mock() mock_scaler.fit_transform.return_value = X monkeypatch.setattr(selector, 'scaler', mock_scaler) final = selector.fit_transform(X, y) mock_scaler.fit_transform.assert_not_called()
def test_features_in(self, metric, n_params, dummy_train_test): X_train, X_test, y_train, y_test = dummy_train_test pl = Pipeline([('scaler', StandardScaler()), ('selector', ForwardSelector(metric=metric)), ('lr', LinearRegression())]) pl.fit(X_train, y_train) expected_params = n_params actual_lr_features = pl['lr'].n_features_in_ assert expected_params == actual_lr_features
def test_selected_params(self, metric, n_params, dummy_train_test): X_train, X_test, y_train, y_test = dummy_train_test pl = Pipeline([('scaler', StandardScaler()), ('selector', ForwardSelector(metric=metric)), ('lr', LinearRegression())]) pl.fit(X_train, y_train) expected_params = n_params actual_params = pl['selector'].get_support().sum() assert actual_params == expected_params
def test_not_fitted(self): selector = ForwardSelector() with pytest.raises(NotFittedError): selector.get_support()
def test_fit_one_params(self, dummy_data_one_relevant): X, y, coef = dummy_data_one_relevant selector = ForwardSelector() final = selector.fit_transform(X, y) np.testing.assert_equal(coef * selector.best_support_, coef)
def test_fit_bic(self, dummy_data): X, y, coef = dummy_data selector = ForwardSelector(metric='bic') final = selector.fit_transform(X, y) np.testing.assert_equal(coef * selector.best_support_, coef)