Python 傅里叶特征计算函数 - fourier_features
Python 傅里叶特征计算函数 - fourier_features
该代码定义了一个名为 fourier_features 的 Python 函数,用于计算时间序列数据的傅里叶特征。该函数接受索引、频率和阶数作为参数,并返回一个包含傅里叶特征的数据帧。
import numpy as np
import pandas as pd
def fourier_features(index, freq, order):
time = np.arange(len(index), dtype=np.float32)
k = 2 * np.pi * (1 / freq) * time
features = {}
for i in range(1, order + 1):
features.update({
f'sin_{freq}_{i}': np.sin(i * k),
f'cos_{freq}_{i}': np.cos(i * k),
})
return pd.DataFrame(features, index=index)
函数参数:
index: 时间序列的索引freq: 频率,例如,对于年度季节性,频率为 365.25order: 傅里叶特征的阶数,决定了要计算的特征数量
函数返回值:
- 一个包含傅里叶特征的数据帧
使用示例:
假设有一个名为 y 的时间序列,它具有每日观测值和年度季节性。可以使用以下代码计算 y 的傅里叶特征,并将阶数设置为 4:
fourier_features(y, freq=365.25, order=4)
代码解释:
- 函数首先使用
np.arange创建一个时间序列的索引数组。 - 然后计算角频率
k,它等于 2π 乘以时间除以频率。 - 接着使用循环,计算不同阶数的正弦和余弦特征,并将其存储在一个字典中。
- 最后,函数将字典转换为一个 Pandas 数据帧,并返回。
应用场景:
傅里叶特征常用于时间序列预测模型,以捕获时间序列中的季节性和周期性模式。将这些特征添加到时间序列模型中,可以提高模型的预测准确性。
原文地址: http://www.cveoy.top/t/topic/nUX4 著作权归作者所有。请勿转载和采集!