Вейвлет-преобразование увеличивает размерность данных на 1

Недавно я сам кодирую вейвлет-преобразование с помощью python, и получается, что после реконструкции моего вейвлета форма моего набора данных увеличивается с (2167,25) до (2168,26).

Прикреплен мой код, пожалуйста, дайте мне знать, если есть какие-либо ошибки в концепции или детали в коде.

Заранее спасибо. Питер

import pywt
from statsmodels.robust import mad

k = X_train
level = 2

kdec = pywt.wavedecn(data = k, wavelet = "haar", level = level)
udd = mad(kdec[1]["dd"]) * np.sqrt( 2*np.log(k.shape[0] ) )
kdec[1]["dd"] = list(( pywt.threshold( i, value=udd, mode="soft" ) for i in kdec[1]["dd"] ))
uda = mad(kdec[1]["da"]) * np.sqrt( 2*np.log(k.shape[0] ) )
kdec[1]["da"] = list(( pywt.threshold( i, value=uda, mode="soft" ) for i in kdec[1]["da"] ))
uad = mad(kdec[1]["ad"]) * np.sqrt( 2*np.log(k.shape[0] ) )
kdec[1]["ad"] = list(( pywt.threshold( i, value=uad, mode="soft" ) for i in kdec[1]["ad"] ))

udd = mad(kdec[2]["dd"]) * np.sqrt( 2*np.log(k.shape[0] ) )
kdec[2]["dd"] = list(( pywt.threshold( i, value=udd, mode="soft" ) for i in kdec[2]["dd"] ))
uda = mad(kdec[2]["da"]) * np.sqrt( 2*np.log(k.shape[0] ) )
kdec[2]["da"] = list(( pywt.threshold( i, value=uda, mode="soft" ) for i in kdec[2]["da"] ))
uad = mad(kdec[2]["ad"]) * np.sqrt( 2*np.log(k.shape[0] ) )
kdec[2]["ad"] = list(( pywt.threshold( i, value=uad, mode="soft" ) for i in kdec[2]["ad"] ))

k_new = pywt.waverecn(kdec, wavelet = "haar")

0 ответов

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