Вейвлет-преобразование увеличивает размерность данных на 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")