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

У меня есть данные массива временных рядов с 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)

0 ответов

Другие вопросы по тегам