微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

按时间序列分类模式

如何解决按时间序列分类模式

我正在处理时间序列数据中的重复模式。我的目标是将每个模式分类为1,将不遵循该模式的任何分类为0。该模式在每两个峰值之间重复一次,如下图所示。

模式不一定固定为样本量,而是保持在近似的样本量之内,例如500个样本+ -10%。峰的高度可以改变。随机信号(我称其为随机信号,但基本上意味着不遵循图案形状)也可以改变值。

数据来自传感器。模式是指设备运行正常时的状态。如果设备出现故障,那么我将看不到这些模式,并且会得到类似于图像中显示的0级的东西。

到目前为止,我所做的是建立逻辑回归模型。这是我的数据准备步骤:

  1. 在每两个连续的峰之间获取数据,将其重新采样为100个样本的固定大小,将数据缩放为[0-1]。这是第1类。

  2. 针对山谷之间的数据重复步骤1,并将其称为0类。

  3. 我产生了一些噪音,并在500个样本的块上重复了步骤1,以构建额外的0类数据。

下图显示了我对测试数据集的预测。对噪声块的预测不是很好。我担心在真实数据中我可能会得到更多的误报。关于如何改善预测的任何想法?没有可用的0类数据时,还有更好的方法吗?

我看到了类似的问题here。我对隐马尔可夫模型的了解有限,但我相信它可用于预测未来数据。我的目标是对整个数据中500个样本的滑动窗口进行分类

enter image description here

解决方法

我有一些建议,您可以尝试一下。 首先,我认为在该领域中经常使用递归神经网络(例如LSTM)。但是我也听说有些人也使用基于树的方法,例如light gbm(我认为Aileen Nielsen使用这种方法)。

因此,如果您不想涉入神经网络(这可能不是必需的),因为您的信号似乎相对容易区分,则可以给gbm(或其他树编码方法)一个机会。

如果您知道一个正样本的最大长度,则可以定义成为输入向量的“滑动样本窗口”的长度(因此,滑动窗口中的每个样本都将成为一个输入特征),那么我将添加一个额外的属性,带有最后一个峰出现时(样本窗口的外部/之前)的样本数量。然后,您可以检查让窗口在数据上滑动多少步骤。这也取决于您可用于此的内存。 但是,然后跳过正负之间的某些窗口是明智的选择,因为状态可能无法明确分类。

万一记忆成为问题,神经网络可能是更好的选择,因为对于训练而言,神经网络不需要一次获得所有可用的训练数据,因此您可以批量生成输入数据。使用基于树的方法,这种可能性不存在或仅以非常有限的方式存在。

,

我不确定您要达到的目标。

如果要表征峰是不是(这是事实分类之后的结果),则可以使用简单的规则来定义诸如signal(t) - average(signal,t-N to t) > T之类的峰,其中{ {1}}个特定阈值和T个数据点向后看。

这将限定峰(类别1)和不峰(类别0),因此对模式进行分类。

如果您的目标是要预测,则使用{{1} }至N为特征,那么逻辑回归不一定是最佳选择。

要找到正确的模型,必须首先可视化每个t-n1t-n2t-n1的功能,并查看是否可以找到任何模式。它可以是任何东西:

  • 在t之前的t-n2天中有高峰吗?
  • 有趋势吗?
  • 是否存在异常值(将数据转换为指数)

为了比较这些模式,请考虑对其进行归一化,以使peak(t)数据点从0变为1。

如果您在视觉上找到一种模式,那么您将知道哪种模型可能适用于哪些功能。

如果不这样做,则添加的白噪声可能会同样好。因此您可能找不到好的预测模型。

但是,您的底部图形还不错。您在超过15个预测中只有2个主要误报。这暗示了更好的功能工程。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。