Machine learning 在运行Fb prophet之前使用PCA是一个好主意吗?

Machine learning 在运行Fb prophet之前使用PCA是一个好主意吗?,machine-learning,time-series,pca,anomaly-detection,facebook-prophet,Machine Learning,Time Series,Pca,Anomaly Detection,Facebook Prophet,我试图在我的时间序列数据中发现异常,它有18个特征。由于Fb prophet不允许预测多变量时间序列,我想知道在降维之前使用PCA是否是一个好主意?我每15分钟有2年的数据 在每个特征的随机时间戳中都有大量缺失数据。我的数据有部分标记。我知道PCA可能会消除异常。我可以采用其他方法吗?我将试着将你的问题分为三个部分来回答,因为我认为你将三个不同的概念混为一谈,或者至少我不清楚你到底想建模什么 1) Facebook的prophet模型的主要目标是通过将单变量时间序列建模为时间的函数来进行预测。主

我试图在我的时间序列数据中发现异常,它有18个特征。由于Fb prophet不允许预测多变量时间序列,我想知道在降维之前使用PCA是否是一个好主意?我每15分钟有2年的数据


在每个特征的随机时间戳中都有大量缺失数据。我的数据有部分标记。我知道PCA可能会消除异常。我可以采用其他方法吗?

我将试着将你的问题分为三个部分来回答,因为我认为你将三个不同的概念混为一谈,或者至少我不清楚你到底想建模什么

1) Facebook的prophet模型的主要目标是通过将单变量时间序列建模为时间的函数来进行预测。主模型方程的形式为

y(t) = g(t) + s(t) + h(t) + error_t
式中,g表示趋势,s表示季节性,h表示假日效应

因此,我不会说prophet模型在任何方面都适合于检测时间序列中的异常值。Prophet可以用于预测数据中的
y
,无论是否存在异常值(我假设这就是你所说的异常?),但我不认为它对异常值检测有用

2) 关于时间序列的主成分分析: 为了减少时间序列中的维数(当它有意义时,例如当您的功能高度相关时),确实可以使用某些版本的PC

如果你能现实地假设你的序列是平稳的,方差和均值不会随时间而改变,那么你也许可以不用使用静态PCA。否则,请查看动态PCA和/或动态因子分析

再说一次,如果你所说的异常是指异常值,我也不知道主成分分析如何消除异常

3) 关于检测时间序列中的异常值: 我最近看到了应用隔离林来检测时间序列中的异常(如异常值)的应用。这也适用于多维空间

也许这类模型更适合您的任务



希望这能有所帮助,关于您的问题,我可以提供更多信息。

1@Jean_N我的数据具有来自机器不同传感器的值。我所说的异常是指错误的数据点,这些数据点可能是异常值或任何不正常的传感器行为。2.我已经应用了隔离林和一类支持向量机。但我最大的问题是没有合适的标签(针对故障点)来计算或验证我的准确性。我已经应用了隔离林和一类支持向量机。但我最大的问题是没有合适的标签(针对故障点)来计算或验证我的准确性。3.我已将数据分为测试和训练两部分。我采用的方法是:计算预测值和实际值之间的距离。与实际值相差甚远的预测是反常的。但是这种方法需要我在干净的数据上训练我的模型。好的,我知道你要做什么了。但我觉得很奇怪——Prophet不可能知道什么是异常值,什么不是异常值,因此这些观察结果会影响拟合本身——这可能会导致糟糕的模型。最后,如果你不能相信平均值的估计值,那么到观测值的距离(潜在的异常值)也不是很可信。关于隔离林:如果你有未标记的数据,你就有未标记的数据,也就是说,如果你没有标记,你就无法计算准确度。尽管如此,IF仍将为您估计在多维要素空间上远离其他要素的点。假设这些点是异常值是合理的。最后-您提到您的一些数据已标记。您可以在这些点上应用隔离林(在训练和测试中分割),并检查标记为异常值的测试集的准确性。这将给你信心,如果在整个数据集上你。听起来不错。我试试看。您建议使用LSTM自动编码器吗?有人建议。但我认为我的数据集太大了。我每15分钟有两年的数据。