Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 有人能解释一下如何通过快速傅立叶变换(FFT)对时间序列中的季节性进行建模吗?_Python_Scikit Learn_Jupyter Notebook_Fft - Fatal编程技术网

Python 有人能解释一下如何通过快速傅立叶变换(FFT)对时间序列中的季节性进行建模吗?

Python 有人能解释一下如何通过快速傅立叶变换(FFT)对时间序列中的季节性进行建模吗?,python,scikit-learn,jupyter-notebook,fft,Python,Scikit Learn,Jupyter Notebook,Fft,序列yt可分解并建模如下: yt=漂移(或趋势)+季节性+噪音,这与帕塞瓦尔定理一致 用于模拟序列季节性的技术之一是FFT算法的应用。我读过几篇关于它(FFT)的文章,我了解它的作用,但在建模噪声之前,我如何将它重新纳入模型 我假设FFT将信号转换为构成信号的频率的正弦和余弦函数的线性组合。那么,如何将其合并回模型中?我读过几个我没有完全理解的例子,或者我应该说我的好奇心还没有得到满足 例如,考虑系列yt: from sklearn.linear_model import LinearRegre

序列yt可分解并建模如下:

yt=漂移(或趋势)+季节性+噪音
,这与帕塞瓦尔定理一致

用于模拟序列季节性的技术之一是FFT算法的应用。我读过几篇关于它(FFT)的文章,我了解它的作用,但在建模噪声之前,我如何将它重新纳入模型

我假设FFT将信号转换为构成信号的频率的正弦和余弦函数的线性组合。那么,如何将其合并回模型中?我读过几个我没有完全理解的例子,或者我应该说我的好奇心还没有得到满足

例如,考虑系列yt:

from sklearn.linear_model import LinearRegression
from sklearn.preprocessing import PolynomialFeature
from sklearn.pipeline import Pipeline, FeatureUnion
from sklearn.model_selection import train_test_split


# data
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)

# estimators
linear_model = LinearRegression()
poly_feat = PolynomialFeatures(degree=3)

# modeling trend
pipe = Pipeline([ ('poly_trans', poly_feat), ('regressor', linear_model) ])
pipe.fit(X_train, y_train).score(X_test, y_test) # 0.76
现在假设我要在这个系列中建模季节性,在这里我使用FFT,我想我会尝试使用一个特征联合来结合趋势和季节效应,因此:

from scipy.fftpack import fft

poly_fft_union = FeatureUnion([ ('poly_trans', poly_feat), ('fft', fft) ])
这就是我被困的地方。fft变换返回复数。我不想分享更多的信息,因为我不想周围的人假设我知道这件事的某些方面。我在线学习的例子要么避免使用fft,要么编写了一个直接应用正弦/余弦傅里叶变换公式的自定义估计器

如果我没有陷入困境,那么我会对趋势和季节性进行建模

pipe = Pipeline([ ('union', poly_fft_union), ('regressor', linear_model)
pipe.fit(X_train, y_train)
我需要满足我的好奇心。求你了,有人吗