Exemplo n.º 1
0
 def test_key_error_feature_name_to_index(
     self, X_columns, y_columns, target_to_feature_dict, expected
 ):
     with pytest.raises(KeyError):
         MultiFeatureGAR._feature_name_to_index(
             target_to_feature_dict, X_columns, y_columns
         )
Exemplo n.º 2
0
 def test_fit_target_to_feature_dict_working(self, data, X_y, estimator):
     X, y = X_y
     X_train, y_train, X_test, y_test = FeatureSplitter().transform(X, y)
     target_to_feature_dict = data.draw(
         str_target_to_feature_dicts(targets=y.columns, features=X.columns)
     )
     multi_feature_gar = MultiFeatureGAR(estimator)
     multi_feature_gar.fit(X_train, y_train, target_to_features_dict=target_to_feature_dict)
Exemplo n.º 3
0
 def test_fit_target_to_feature_dict_consistent(self, data, X_y, estimator):
     X, y = X_y
     X_train, y_train, X_test, y_test = FeatureSplitter().transform(X, y)
     target_to_feature_dict = data.draw(
         str_target_to_feature_dicts(targets=y.columns, features=X.columns)
     )
     multi_feature_gar = MultiFeatureGAR(estimator)
     multi_feature_gar.fit(X_train, y_train, target_to_features_dict=target_to_feature_dict)
     for i, estimator_ in enumerate(multi_feature_gar.estimators_):
         expected_n_features = len(target_to_feature_dict[y.columns[i]])
         assert len(estimator_.coef_) == expected_n_features
Exemplo n.º 4
0
    def test_fit_as_multi_output_regressor_if_target_to_feature_none(
        self, estimator, X_y
    ):
        X, y = X_y
        X_train, y_train, X_test, y_test = FeatureSplitter().transform(X, y)
        multi_feature_gar = MultiFeatureGAR(estimator)
        multi_feature_gar.fit(X_train, y_train)

        gar = GAR(estimator)
        gar.fit(X_train, y_train)

        pd.testing.assert_frame_equal(
            multi_feature_gar.predict(X_test), gar.predict(X_test),
        )
Exemplo n.º 5
0
 def test_feature_name_to_index(
     self, X_columns, y_columns, target_to_feature_dict, expected
 ):
     computed = MultiFeatureGAR._feature_name_to_index(
         target_to_feature_dict, X_columns, y_columns
     )
     for key, value in computed.items():
         assert_array_equal(value, expected[key])
Exemplo n.º 6
0
 def test_predict_target_to_feature_dict_explainable(
         self, data, X_y, estimator):
     X, y = X_y
     X_train, y_train, X_test, y_test = FeatureSplitter().transform(X, y)
     target_to_feature_dict = data.draw(
         str_target_to_feature_dicts(targets=y.columns, features=X.columns))
     multi_feature_gar = MultiFeatureGAR(estimator, explainer_type="shap")
     multi_feature_gar.target_to_features_dict = target_to_feature_dict
     multi_feature_gar.fit(X_train, y_train)
     multi_feature_gar.predict(X_test)
Exemplo n.º 7
0
 def test_error_predict_target_to_feature_dict_wrong_X_shape(
         self, data, X_y, estimator):
     X, y = X_y
     X_train, y_train, X_test, y_test = FeatureSplitter().transform(X, y)
     target_to_feature_dict = data.draw(
         str_target_to_feature_dicts(targets=y.columns, features=X.columns))
     multi_feature_gar = MultiFeatureGAR(
         estimator, target_to_features_dict=target_to_feature_dict)
     multi_feature_gar.fit(X_train, y_train)
     X_test = X_test.iloc[:, :2]
     with pytest.raises(ValueError):
         multi_feature_gar.predict(X_test)
Exemplo n.º 8
0
 def test_error_predict_with_no_fit(self, estimator, X):
     regressor = MultiFeatureGAR(estimator)
     with pytest.raises(NotFittedError):
         regressor.predict(X)
Exemplo n.º 9
0
 def test_constructor(self, estimator):
     multi_feature_gar = MultiFeatureGAR(estimator)
     assert multi_feature_gar.n_jobs == 1