我们需要用 LSTM 模型实现一个时间序列问题。
但是,在实现相同功能的同时,我面临的主要挑战是特征选择问题。因为我们的数据集包含 2300 个观测值和 600 个特征。而且我们已经知道有很多功能根本不相关。但是,没有人具有领域专业知识来确认哪个功能是相关的。
我试过…
所有 600 个特征,[X 的形状变为 2280 X 20 X 600(如果时间步长为 20)]。准确率很差53-55%。
将单列视为预测变量(我们想要预测的特征)[X 的形状变为 2280 X 20 X 1(如果时间步长为 20)]。准确性也很差。
此外,尝试使用 PCA 将所有 600 个特征减少到 20 个特征[保留了大约 98% 的数据],但没有看到任何改进。
最后,我经历了一个非常漫长的过程。
一个。在 600 个特征中,每个特征都使用 LSTM 算法单独尝试。选择给出最佳结果的特征。
湾。所选特征与其余 599 个特征分别配对。然后,我选择提供最佳输出的最佳配对。
C。最好的一对将进一步尝试单独使用其余 598 个功能,并且此过程仍在继续...
这样做之后,截至目前,我们得到了 6 个特征,准确率提高到了 65%。
我的问题是,这是我可以在时间序列问题中进行特征选择的唯一方法吗?
在任何非时间序列问题的情况下,有很多方法可以进行特征选择。在时间序列问题中进行特征选择的最佳方法是什么?
让我们再举一个例子……
假设我们开发了具有 10 个预测变量/特征的 LSTM 模型。该模型运行良好,我们获得了 80% 的准确率。
现在,不知何故又增加了 100 个与导出目标 y 无关的特性。
因此,由于模型将关注 120 个预测变量/特征,其中 100 个不相关,因此准确性将下降。
那么,我们将如何消除这 100 个不需要的特征呢?