我一直在学习使用LSTM进行时间序列预测时的张力流教程: HTPS://www.TRESOR.org/教程/结构_数据/时间_系列?_smm_byp=IVvpds34qn5fqcv

我的目标是在项目中使用这种架构之前先玩它。在这个示例中,数据集中有10个特性,但是我想研究的那个特性大约有14000个。

因此,继图托关于"多步骤模型"的最后一节之后,我尝试添加一个主成分(PC)转换来获取前3个主要组件,而不是仅仅随机选择3个特征。

我的假设是,我应该在性能上略有提高,或者什么也没有,但结果却是下降了,错误率翻了一番。

在此输入图像描述

我在运行修改的部分之前设置种子,以比较结果与图托。

以下是我修改后的代码位,其中包括:

from sklearn.decomposition import PCA

features = df.drop(["Date Time"], axis = 1)

features.index = df['Date Time']
dataset = PCA(n_components = 3).fit_transform(features)
data_mean = dataset[:TRAIN_SPLIT].mean(axis=0)
data_std = dataset[:TRAIN_SPLIT].std(axis=0)

dataset = (dataset-data_mean)/data_std

有人知道为什么会发生这种行为吗?我错过了什么吗?

我在论文中看到过在RNN出现前的时间序列中使用过pca,所以这种方法并不无效。

多谢,


下面修改的代码工作得很好,我不得不移动缩放之前的常设仲裁院。

from sklearn.decomposition import PCA

features = df.drop(["Date Time"], axis = 1)
features.index = df['Date Time']
data_mean = features[:TRAIN_SPLIT].mean(axis=0)
data_std = features[:TRAIN_SPLIT].std(axis=0)

features = (features-data_mean)/data_std

dataset = PCA(n_components = 3).fit_transform(features)

您必须先应用数据缩放,然后再装配机

马斯科塞里亚尼:我虽然西基特学习到了五氯苯甲醚的实现,但它是自动调整的。不是这样的吗?

当然不。..请只在您的X_TREIN上执行主要操作程序/缩放,然后将转换应用于X_有效性/X_测试

谢谢你,马尔克塞拉尼,我现在按预期的做,并给予苏士坦蒂亚尔改进。

记住只在火车上,而不是在所有数据上安装缩放和五氯苯甲醚;-)

谢谢,但我不明白为什么。在TUTO扩展中,既应用于培训数据,也应用于验证数据,如果我只应用于我的培训数据,它将如何对尚未被转换的新数据进行遗传化处理?

转换是你需要的。..因为穿衣服就像欺骗