Esempio n. 1
0
    def test_reshaping_transformer(self):

        estimator = wrap(ReshapingEstimator(new_shape=(-1, 2)),
                         reshapes='feat_1')

        # test DataArray
        X_da = self.X.var_3d

        y = X_da[:, :2].drop('feat_1')
        y['dummy'] = y.dummy[:, 0]

        estimator.fit(X_da)
        yp = estimator.transform(X_da)

        assert_allclose(yp, y)

        # test Dataset
        X_ds = self.X.var_2d.to_dataset()

        y = X_ds.var_2d[:, :2].drop('feat_1')
        y['dummy'] = y.dummy[:, 0]

        estimator.fit(X_ds)
        yp = estimator.transform(X_ds).var_2d

        assert_allclose(yp, y)
Esempio n. 2
0
    def test_ndim_reshaping_estimator(self):

        estimator = wrap(ReshapingEstimator(new_shape=(-1, 5, 0)),
                         reshapes={'feature': ['feat_1', 'feat_2']})

        # test DataArray
        X_da = self.X.var_3d

        Xt = X_da[:, :5, 0].drop(['feat_1',
                                  'feat_2']).rename({'feat_1': 'feature'})
        Xt['dummy'] = Xt.dummy[:, 0]

        estimator.fit(X_da)
        Xt_da = estimator.transform(X_da)
        Xr_da = estimator.inverse_transform(Xt_da)

        assert_allclose(Xt_da, Xt)

        # test Dataset
        X_ds = self.X.var_3d.to_dataset()

        y = X_ds.var_3d[:, :5, 0].drop(['feat_1', 'feat_2'])
        y = y.rename({'feat_1': 'feature'})
        y['dummy'] = y.dummy[:, 0]

        estimator.fit(X_ds)
        yp = estimator.predict(X_ds).var_3d

        assert_allclose(yp, y)
Esempio n. 3
0
    def test_reshaping_estimator_singleton(self):

        estimator = wrap(
            ReshapingEstimator(new_shape=(-1, 0)),
            reshapes='feat_1'
        )

        # test DataArray
        X_da = self.X.var_2d

        y = X_da[:, 0].drop('feat_1')
        estimator.fit(X_da)
        yp = estimator.predict(X_da)

        assert_allclose(yp, y)

        # test Dataset
        X_ds = self.X

        y = X_ds.var_2d[:, 0].drop('feat_1')

        estimator.fit(X_ds)
        yp = estimator.predict(X_ds).var_2d

        assert_allclose(yp, y)
Esempio n. 4
0
    def test_update_restore_dims(self):

        estimator = wrap(ReshapingEstimator(new_shape=(-1, 0, 5)),
                         reshapes={'feature': ['feat_1', 'feat_2']})

        X = self.X.var_3d

        estimator.fit(X)

        X_out = estimator.estimator_.transform(X.values)
        dims_new = estimator._update_dims(X, X_out)
        Xt = xr.DataArray(X_out, dims=dims_new)

        assert dims_new == ['sample', 'feature']

        Xr_out = estimator.estimator_.inverse_transform(X_out)
        dims_old = estimator._restore_dims(Xt, Xr_out)

        assert dims_old == ['sample', 'feat_1', 'feat_2']