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

时间:2018-10-11 18:34:48

标签: python fft dimensionality-reduction

我的数据集有2000个属性和200个样本。我需要减少它的尺寸。为此,我尝试使用傅立叶变换作为降维。当我输入数据作为输入时,傅立叶变换将返回离散傅立叶变换。但是我不知道如何使用它进行降维。

from scipy.fftpack import fft
import panda as pd

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

能帮我吗?

2 个答案:

答案 0 :(得分:0)

如果您的样本都是一个时间序列,那么傅里叶变换最适合。如果是,则可以从trainDataSet = np.array([[0.25,0.25,1,1],[0,0,1,1],[0.25,0.25,1,1]]) trainLabel = np.array([[0,1],[0,1],[1,0]]) 中提取每个样本的频域特征。以下列出了您可以考虑的时域和频域常见功能(reference):

enter image description here

答案 1 :(得分:0)

假设您有一个包含 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