Module - Preprocessing#

[12]:
# Import to be able to import python package from src
import sys
sys.path.insert(0, '../src')
[13]:
import pandas as pd
import numpy as np
from darts.datasets import EnergyDataset
[14]:
import ontime as on

Load data#

[15]:
ts = EnergyDataset().load()
ts = ts.astype(np.float32)

Common Preprocessing#

[16]:
from ontime.module import processing

Normalize#

[17]:
ts_t = processing.common.normalize(ts)
/home/benjy/.cache/pypoetry/virtualenvs/ontime-2OQVvbNf-py3.10/lib/python3.10/site-packages/sklearn/utils/_array_api.py:472: RuntimeWarning: All-NaN slice encountered
  return xp.asarray(numpy.nanmin(X, axis=axis))
/home/benjy/.cache/pypoetry/virtualenvs/ontime-2OQVvbNf-py3.10/lib/python3.10/site-packages/sklearn/utils/_array_api.py:489: RuntimeWarning: All-NaN slice encountered
  return xp.asarray(numpy.nanmax(X, axis=axis))

Train test split (for time series)#

[18]:
train, test = processing.common.train_test_split(ts_t, train_split=0.8)

Split time series in windows#

[19]:
train_list = processing.common.split_in_windows(train, 100, 100)
test_list = processing.common.split_in_windows(test, 100, 100)

Split in X and y#

[20]:
X_train, y_train = processing.common.split_inputs_from_targets(train_list, 70, 30)
X_test, y_test = processing.common.split_inputs_from_targets(test_list, 70, 30)

Transform in generic data type#

[21]:
X_train = processing.common.timeseries_list_to_numpy(X_train)
y_train = processing.common.timeseries_list_to_numpy(y_train)
X_test = processing.common.timeseries_list_to_numpy(X_test)
y_test = processing.common.timeseries_list_to_numpy(y_test)
[22]:
print(X_train.shape)
print(y_train.shape)
print(X_test.shape)
print(y_test.shape)
(280, 28, 70)
(280, 28, 30)
(70, 28, 70)
(70, 28, 30)