python 中的傅里叶变换作为降维技术

fourier transformation as a dimensional reduction technique in python

我的数据集有 2000 个属性和 200 个样本。我需要降低它的维度。为此,我尝试使用傅立叶变换作为降维方法。傅里叶变换 returns 当我将数据作为输入时的离散傅里叶变换。但我不知道如何将它用于降维。

from scipy.fftpack import fft
import panda as pd

price = pd.read_csv(priceFile(), sep=",")
transformed = fft(price )

你能帮帮我吗?

如果您的样本都是时间序列,则傅里叶变换最适合。如果是,您可以从 transformed 中提取每个样本的频域特征。以下是您可以考虑的时域和频域常见特征列表 (reference):

假设您有一个包含 2000 个属性和 200 个样本的 Pandas 数据框:

import numpy as np
df = pd.DataFrame(np.random.randint(0,100,size=(200, 2000)))

要使用 scipy 减少维数,您可以通过首先设置维数 (n_dimensions 来生成一个包含转换值的新数组) 并调用 scipy 函数 (fft).

首先我们调用函数,我们将其定义为fft

from scipy.fftpack import fft    

然后我们设置维数,在这种情况下我们将分配 1 个维

n_dimensions = 1

然后我们调用该函数,首先添加我们的数据框和维数。

transformed_data = fft(df,n=n_dimensions)

然后,如果我们想使用实数,您可以转换数组

df = df.real