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.25
  • order: 傅里叶特征的阶数,决定了要计算的特征数量

函数返回值:

  • 一个包含傅里叶特征的数据帧

使用示例:

假设有一个名为 y 的时间序列,它具有每日观测值和年度季节性。可以使用以下代码计算 y 的傅里叶特征,并将阶数设置为 4:

fourier_features(y, freq=365.25, order=4)

代码解释:

  1. 函数首先使用 np.arange 创建一个时间序列的索引数组。
  2. 然后计算角频率 k,它等于 2π 乘以时间除以频率。
  3. 接着使用循环,计算不同阶数的正弦和余弦特征,并将其存储在一个字典中。
  4. 最后,函数将字典转换为一个 Pandas 数据帧,并返回。

应用场景:

傅里叶特征常用于时间序列预测模型,以捕获时间序列中的季节性和周期性模式。将这些特征添加到时间序列模型中,可以提高模型的预测准确性。


原文地址: http://www.cveoy.top/t/topic/nUX4 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录