diff --git a/spatio_temporal_dataset/coordinates/transformed_coordinates/transformation/abstract_transformation.py b/spatio_temporal_dataset/coordinates/transformed_coordinates/transformation/abstract_transformation.py index aaa82a541d4ee86a9dbc8af924f4b55dfe5bb411..e6a5012ba5db3bc555b9154971b4d1becb134325 100644 --- a/spatio_temporal_dataset/coordinates/transformed_coordinates/transformation/abstract_transformation.py +++ b/spatio_temporal_dataset/coordinates/transformed_coordinates/transformation/abstract_transformation.py @@ -1,6 +1,6 @@ import pandas as pd import numpy as np -from sklearn.preprocessing import Normalizer +from sklearn.preprocessing import Normalizer, StandardScaler class AbstractTransformation(object): @@ -37,9 +37,9 @@ class CenteredScaledNormalization(AbstractTransformation): def __init__(self, df_coordinates): super().__init__(df_coordinates) assert self.nb_dimensions == 1 - self.transformer = Normalizer().fit(df_coordinates.transpose().values.reshape(-1, 1)) + self.scaler = StandardScaler().fit(df_coordinates.transpose().values.reshape(-1, 1)) def transform_array(self, coordinate: np.ndarray): - return self.transformer.transform(np.array([coordinate]))[0] + return self.scaler.transform(np.array([coordinate]))[0] diff --git a/test/test_spatio_temporal_dataset/test_transformation.py b/test/test_spatio_temporal_dataset/test_transformation.py index 96ed89ca14a8b29fd787d43e28e99958ad84cd91..bbce70517a838390ce587c149b075c0948741c06 100644 --- a/test/test_spatio_temporal_dataset/test_transformation.py +++ b/test/test_spatio_temporal_dataset/test_transformation.py @@ -6,6 +6,8 @@ from spatio_temporal_dataset.coordinates.spatio_temporal_coordinates.generated_s GeneratedSpatioTemporalCoordinates, UniformSpatioTemporalCoordinates from spatio_temporal_dataset.coordinates.temporal_coordinates.generated_temporal_coordinates import \ ConsecutiveTemporalCoordinates +from spatio_temporal_dataset.coordinates.transformed_coordinates.transformation.abstract_transformation import \ + CenteredScaledNormalization from spatio_temporal_dataset.coordinates.transformed_coordinates.transformation.uniform_normalization import \ BetweenZeroAndOneNormalization, BetweenMinusOneAndOneNormalization @@ -15,17 +17,19 @@ class TestTransformation(unittest.TestCase): def test_temporal_normalization(self): nb_steps = 3 start = 1950 - transformation_class_to_expected = {BetweenZeroAndOneNormalization: [0.0, 0.5, 1.0], - BetweenMinusOneAndOneNormalization: [-1.0, 0.0, 1.0]} + transformation_class_to_expected = { + BetweenZeroAndOneNormalization: [0.0, 0.5, 1.0], + BetweenMinusOneAndOneNormalization: [-1.0, 0.0, 1.0], + CenteredScaledNormalization: [-1.22474487, 0., 1.22474487], + } for transformation_class, expected in transformation_class_to_expected.items(): temporal_coordinates = ConsecutiveTemporalCoordinates.from_nb_temporal_steps(nb_temporal_steps=nb_steps, start=start, transformation_class=transformation_class) normalized_coordinates = temporal_coordinates.df_coordinates().iloc[:, 0].values expected_coordinates = np.array(expected) - equals = normalized_coordinates == expected_coordinates - self.assertTrue(equals.all(), - msg="expected: {}, res:{}".format(expected_coordinates, normalized_coordinates)) + equal = np.allclose(normalized_coordinates , expected_coordinates) + self.assertTrue(equal, msg="expected: {}, res:{}".format(expected_coordinates, normalized_coordinates)) def test_spatio_temporal_normalization(self):