Exemplo n.º 1
0
def test_takens_embedding_3D_no_flatten():
    """Test the return values of TakensEmbedding on 3D input or list of 2D
    input, with `flatten` set to ``False``."""
    signals = np.arange(20).reshape(2, 2, 5)
    TE = TakensEmbedding(flatten=False)
    signals_emb = TE.fit_transform(signals)
    signals_emb_list = TE.fit_transform(list(signals))
    signals_emb_exp = np.array([[[[0, 1],
                                  [1, 2],
                                  [2, 3],
                                  [3, 4]],
                                 [[5, 6],
                                  [6, 7],
                                  [7, 8],
                                  [8, 9]]],
                                [[[10, 11],
                                  [11, 12],
                                  [12, 13],
                                  [13, 14]],
                                 [[15, 16],
                                  [16, 17],
                                  [17, 18],
                                  [18, 19]]]])
    assert np.array_equal(signals_emb, signals_emb_exp)
    assert np.array_equal(np.asarray(signals_emb_list), signals_emb_exp)
Exemplo n.º 2
0
def test_takens_embedding_plot():
    trace_params = {"mode": "lines+markers"}
    layout_params = {"title": "New title"}
    TE = TakensEmbedding()
    plotly_params = {"trace": trace_params, "layout": layout_params}
    TE.fit_transform_plot([np.arange(20)], sample=0,
                          plotly_params=plotly_params)
Exemplo n.º 3
0
def test_embedder_resample():
    embedder = TakensEmbedding(parameters_type='fixed',
                               time_delay=3,
                               dimension=2,
                               stride=3)
    embedder.fit(signal)
    y_resampled = embedder.resample(y)
    assert_almost_equal(y_resampled, y[np.arange(4, 20, 3)])
Exemplo n.º 4
0
def test_takens_embedding_validation(params):
    if "flatten" not in params and "ensure_last_value" not in params:
        exception_type = ValueError
    else:
        exception_type = TypeError
    with pytest.raises(exception_type):
        TE = TakensEmbedding(**params)
        TE.fit(signal[None, :])
 def tokens_embeddings_(self, X):
     X_transformed = list()
     for series in X:
         te = TakensEmbedding(parameters_type='search',
                              dimension=self.tokens_embedding_dim_,
                              time_delay=self.tokens_embedding_delay_,
                              n_jobs=self.n_job)
         X_transformed.append(te.fit_transform(series))
     return X_transformed
Exemplo n.º 6
0
def test_takens_embedding_3D_default():
    """Test the return values of TakensEmbedding on 3D input or list of 2D
    input, with default parameters."""
    signals = np.arange(20).reshape(2, 2, 5)
    TE = TakensEmbedding()
    signals_emb = TE.fit_transform(signals)
    signals_emb_list = TE.fit_transform(list(signals))
    signals_emb_exp = np.array([[[0, 1, 5, 6],
                                 [1, 2, 6, 7],
                                 [2, 3, 7, 8],
                                 [3, 4, 8, 9]],
                                [[10, 11, 15, 16],
                                 [11, 12, 16, 17],
                                 [12, 13, 17, 18],
                                 [13, 14, 18, 19]]])
    assert np.array_equal(signals_emb, signals_emb_exp)
    assert np.array_equal(np.asarray(signals_emb_list), signals_emb_exp)
Exemplo n.º 7
0
def test_takens_embedding_2D():
    """Test the return values of TakensEmbedding on 2D input or list of 1D
     input, with default parameters."""
    signals = np.arange(10).reshape(2, 5)
    TE = TakensEmbedding()
    signals_emb = TE.fit_transform(signals)
    signals_emb_list = TE.fit_transform(list(signals))
    signals_emb_exp = np.array([[[0, 1],
                                 [1, 2],
                                 [2, 3],
                                 [3, 4]],
                                [[5, 6],
                                 [6, 7],
                                 [7, 8],
                                 [8, 9]]])
    assert np.array_equal(signals_emb, signals_emb_exp)
    assert np.array_equal(np.asarray(signals_emb_list), signals_emb_exp)
Exemplo n.º 8
0
def test_takens_embedding_consistent_with_single_takens_embedding(
        time_delay, dimension, stride
        ):
    """Test that TakensEmbedding and SingleTakensEmbedding give identical
    outputs (up to shape) on arrays representing single univariate time
    series."""
    n_points = (len(signal) - time_delay * (dimension - 1) - 1) // stride + 1
    single_embedder = SingleTakensEmbedding(parameters_type='fixed',
                                            time_delay=time_delay,
                                            dimension=dimension, stride=stride)
    embedder = TakensEmbedding(time_delay=time_delay, dimension=dimension,
                               stride=stride)
    if n_points <= 0:
        with pytest.raises(ValueError):
            single_embedder.fit_transform(signal)
        with pytest.raises(ValueError):
            embedder.fit_transform(signal[None, :])
    else:
        single_embedder_res = single_embedder.fit_transform(signal)
        embedder_res = embedder.fit_transform(signal[None, :])[0]
        assert np.array_equal(single_embedder_res, embedder_res)
Exemplo n.º 9
0
def test_embedder_transform(parameters_type, expected):
    embedder = TakensEmbedding(parameters_type=parameters_type)

    assert_almost_equal(embedder.fit_transform(signal), expected)
Exemplo n.º 10
0
def test_embedder_not_fitted():
    embedder = TakensEmbedding()
    with pytest.raises(NotFittedError):
        embedder.transform(signal)
Exemplo n.º 11
0
def test_embedder_params():
    parameters_type = 'not_defined'
    embedder = TakensEmbedding(parameters_type=parameters_type)
    with pytest.raises(ValueError):
        embedder.fit(signal)
stride = 2

SW = SlidingWindow(size=window_size, stride=stride)
X_sw, yr = SW.fit_transform_resample(X, y)
X_sw, yr

# In[11]:

X, y

# In[12]:

time_delay = 1
dimension = 2

TE = TakensEmbedding(time_delay=time_delay, dimension=dimension)
X_te = TE.fit_transform(X_sw)
X_te

# In[13]:

VR = VietorisRipsPersistence()  # No "precomputed" for point clouds
Ampl = Amplitude()
RFR = RandomForestRegressor()

pipe = make_pipeline(SW, TE, VR, Ampl, RFR)
pipe

# In[14]:

pipe.fit(X, y)
Exemplo n.º 13
0
def test_takens_embedding_plot():
    TE = TakensEmbedding()
    _ = TE.fit_transform_plot([np.arange(20)], sample=0)