def test_evaluate_only_added_features_true(self): """ The boolean flag `evaluate_only_extracted_features` makes sure that only the time series based features are filtered. This unit tests checks that """ augmenter = RelevantFeatureAugmenter( feature_extraction_settings=self.extraction_settings, evaluate_only_added_features=True, column_value="val", column_id="id", column_sort="sort", column_kind="kind") y = pd.Series({10: 1, 500: 0}) X = pd.DataFrame(index=[10, 500]) X["pre_feature"] = 0 augmenter.set_timeseries_container(self.test_df) augmenter.fit(X, y) transformed_X = augmenter.transform(X.copy()) self.assertEqual( sum(["pre_feature" == column for column in transformed_X.columns]), 1)
def test_evaluate_only_added_features_false(self): """ The boolean flag `evaluate_only_extracted_features` makes sure that only the time series based features are filtered. This unit tests checks that """ augmenter = RelevantFeatureAugmenter( feature_extraction_settings=self.extraction_settings, evaluate_only_added_features=False, column_value="val", column_id="id", column_sort="sort", column_kind="kind") df, y = self.create_test_data_sample_with_target() X = pd.DataFrame(index=np.unique(df.id)) X["pre_drop"] = 0 X["pre_keep"] = y augmenter.set_timeseries_container(df) augmenter.fit(X, y) transformed_X = augmenter.transform(X.copy()) self.assertEqual( sum(["pre_keep" == column for column in transformed_X.columns]), 1) self.assertEqual( sum(["pre_drop" == column for column in transformed_X.columns]), 0)
def test_nothing_relevant(self): augmenter = RelevantFeatureAugmenter(kind_to_fc_parameters=self.kind_to_fc_parameters, column_value="val", column_id="id", column_sort="sort", column_kind="kind") y = pd.Series({10: 1, 500: 0}) X = pd.DataFrame(index=[10, 500]) augmenter.set_timeseries_container(self.test_df) augmenter.fit(X, y) transformed_X = augmenter.transform(X.copy()) self.assertEqual(list(transformed_X.columns), []) self.assertEqual(list(transformed_X.index), list(X.index))
def test_impute_works(self): self.extraction_settings.kind_to_calculation_settings_mapping["a"].update({"kurtosis": None}) augmeter = RelevantFeatureAugmenter(feature_extraction_settings=self.extraction_settings, column_value="val", column_id="id", column_sort="sort", column_kind="kind") y = pd.Series({10: 1, 500: 0}) X = pd.DataFrame(index=[10, 500]) augmeter.set_timeseries_container(self.test_df) augmeter.fit(X, y) transformed_X = augmeter.transform(X.copy()) self.assertEqual(list(transformed_X.columns), []) self.assertEqual(list(transformed_X.index), list(X.index))
def test_nothing_relevant(self): augmenter = RelevantFeatureAugmenter( feature_extraction_settings=self.extraction_settings, column_value="val", column_id="id", column_sort="sort", column_kind="kind") y = pd.Series({1: 1, 5: 0}) X = pd.DataFrame(index=[1, 5]) augmenter.set_timeseries_container(self.test_df) augmenter.fit(X, y) transformed_X = augmenter.transform(X.copy()) self.assertEqual(list(transformed_X.columns), []) self.assertEqual(list(transformed_X.index), list(X.index))
def test_evaluate_only_added_features_true(self): """ The boolean flag `evaluate_only_extracted_features` makes sure that only the time series based features are filtered. This unit tests checks that """ augmenter = RelevantFeatureAugmenter(kind_to_fc_parameters=self.kind_to_fc_parameters, filter_only_tsfresh_features=True, column_value="val", column_id="id", column_sort="sort", column_kind="kind") y = pd.Series({10: 1, 500: 0}) X = pd.DataFrame(index=[10, 500]) X["pre_feature"] = 0 augmenter.set_timeseries_container(self.test_df) augmenter.fit(X, y) transformed_X = augmenter.transform(X.copy()) self.assertEqual(sum(["pre_feature" == column for column in transformed_X.columns]), 1)
def test_evaluate_only_added_features_false(self): """ The boolean flag `evaluate_only_extracted_features` makes sure that only the time series based features are filtered. This unit tests checks that """ augmenter = RelevantFeatureAugmenter(kind_to_fc_parameters=self.kind_to_fc_parameters, filter_only_tsfresh_features=False, column_value="val", column_id="id", column_sort="sort", column_kind="kind") df, y = self.create_test_data_sample_with_target() X = pd.DataFrame(index=np.unique(df.id)) X["pre_drop"] = 0 X["pre_keep"] = y augmenter.set_timeseries_container(df) augmenter.fit(X, y) transformed_X = augmenter.transform(X.copy()) self.assertEqual(sum(["pre_keep" == column for column in transformed_X.columns]), 1) self.assertEqual(sum(["pre_drop" == column for column in transformed_X.columns]), 0)