Должен ли я выполнять стационарное вейвлет-преобразование отдельно для наборов для обучения, проверки и тестирования? - PullRequest
0 голосов
/ 13 ноября 2018

У меня есть данные массива временных рядов с 10000 выборками.Я разделил данные на обучающие, проверочные и тестовые массивы следующим образом:

import numpy as np
import pywt

data = np.random.rand(10000,)

train = data[:8000]
validate = data[8000:9000]
test = data[9000:]

Я хочу реализовать эту бумагу.Автор статьи говорит:

Исходные данные были разложены на серию деталей (DW) с использованием модифицированной версии DWT (, чтобы будущие значения данных не использовалисьв расчете ).

2 вопроса:

1) Что он имеет в виду, когда говорит: так что будущие значения данныхне используются в расчете ?Имеет ли он в виду, что мы должны попытаться выполнить SWT на поездах, проверять и тестировать наборы по отдельности, как показано ниже?

[(cA_train,cD_train)] = pywt.swt(train, wavelet='db4', level=1)

[(cA_validate,cD_validate)] = pywt.swt(validate, wavelet='db4', level=1)

[(cA_test,cD_test)] = pywt.swt(test, wavelet='db4', level=1)

2) Это неправильноесли я выполню SWT на всех данных, как показано ниже, а затем разделю их на обучающие, проверяю и проверяю?

[(cA_data,cD_data)] = pywt.swt(data, wavelet='db4', level=1)
...