如何转换时间序列数据,以便使用更简单的技术进行故障预测?

机器算法验证 时间序列 机器学习 数据转换
2022-03-13 19:50:59

我知道这主要是一个统计网站,所以如果我跑题了,请重定向我。

我有一个泵系统,有时会损坏,需要更换。我希望能够预测故障,从而为更换泵的人员提供早期预警。我有泵过程的历史数据,例如流量、压力、液体高度等。

我在使用机器学习技术对数据进行分类方面只有少量经验——基本上我在 coursera 上跟随并完成了 Andrew Ng 的机器学习课程以及 Andrew Conway 的 Statistics One 的练习,并且我从未使用过机器学习对时间序列进行分类。我正在考虑如何改变我的问题,以便我可以使用我现有的知识。以我有限的知识,我不会得到一个非常理想的预测,但我希望从中学习,对于这个问题,任何小的预测改进都是有用的,而不是等待故障发生。

我提出的方法是将时间序列变成一个正常的分类问题。输入将是时间序列窗口的摘要,其中包含窗口中每种数据类型的平均值、标准偏差、最大值等。对于输出,我不确定什么效果最好。一种方法是输出将是泵是否在窗口结束后的特定时间段内发生故障的二进制分类。另一个是输出将是泵发生故障之前的剩余时间,因此不是分类,而是回归(在机器学习意义上)。

您认为这种方法可能会产生结果吗?是否是“取决于领域和历史数据”的问题。是否有我没有考虑过的更好的转换(输入和输出),或者基于时间序列数据的故障预测与更标准的故障预测有很大不同,我的时间最好花在阅读时间序列的机器学习上?

2个回答

您可能需要查看生存分析,通过它您可以估计生存函数(故障时间大于特定时间的概率)和危险函数(一个单元发生故障的瞬时概率,假设它没有到目前为止经历了失败)。使用大多数生存分析方法,您可以输入时不变和时变预测变量。

有多种不同的生存分析方法,包括半参数Cox 比例风险模型(又名 Cox 回归)和参数模型。Cox 回归不要求您指定基本的基本风险函数,但您可能会发现您需要一个参数模型来正确捕获数据中的故障模式。有时参数加速失效时间模型是合适的,其中失效率随时间增加。

您可以尝试从 Cox 回归开始,因为它使用起来最简单,并且可以检查您在保持测试集上预测失败的能力。我怀疑通过某种明确考虑时间和审查(尚未发生故障的泵)的生存分析,您可能会得到更好的结果,而不是试图将其转变为非基于时间的分类问题。

我会根据数据的可用性(后者需要知道故障发生的确切时间,前者不需要)以及是否确实需要估计故障时间您的问题(我的默认设置是先尝试分类)。