我正处于一个更大的项目的起点,以识别时间序列中的常见模式。
目的是自动找到时间序列中的分割点,以将序列分为常用模式。 (稍后,我想根据分割点来分割时间序列,以在两者之间独立使用时间序列。)

一个时间序列包括:


n个基于固定时间间隔的数据序列作为输入
x轴表示从0到m的间隔索引
y轴表示特定时间序列的值


例如,它可能看起来像这样:

pos_x,pos_y,pos_z,force_x,force_y,force_z,speed,is_split_point
 2,     3,    4,  0.4232, 0.4432,    0,     0.6, false
 2,     3,    4,  0.4232, 0.4432,    0,     0.6, false
 2,     3,    4,  0.4232, 0.4432,    0,     0.6, true


我最好的选择是使用机器学习解决此问题,因为我需要一种通用的方法来预先基于用户选择来检测模式。
因此,我有很多带标签的数据,其中分割点已经由用户手动设置。

目前,我有两个想法可以解决此问题:


分析标记数据中拆分点周围的数据,以得出不同数据维度之间的相关性,并将其用作未标记数据上的新功能。
分析两个关键帧之间的模式以在未标记的数据中找到相似的模式。


我更喜欢1.,因为我认为找出定义分割点的位置更重要。
我很好奇神经网络是否非常适合此任务?

我问的问题不是要解决这个问题,我只想对此有第二意见。我对机器学习还比较陌生,这就是为什么为这个问题找到一个好的起点有点不知所措。我对可以解决此问题并能为我提供良好起点的任何想法,技术和有用资源感到非常满意。

最佳答案

哇,真是个大疑问。
实际上,我也有一些想法要给您,其中一些已经过测试,并针对与我遇到的异常事件有关的基于时间的不同问题进行了研究。

首先,无论您将使用哪种解决方案,分析数据始终是一种更好地理解问题的好方法。这样,您可以确保不向模型提供垃圾。用于分析的工具可以是截断的过去窗口中的峰,导数等。

然后,您可以使用t-sne绘制数据,并查看数据中是否存在某种分隔。

但是,仅使用神经网络可能会出现问题,因为您的拆分点数量很少,非拆分点数量很多。
您可以使用LSTM并在多对一配置中训练它们,在其中创建平衡数量的正例和负例。 LSTM将帮助您克服示例的不同长度,并为时域赋予更多含义。

朝这个方向前进,您可以使用截断的过去并以is_split_point作为标签作为示例,并通过平衡地提取样本来使用i.i.d模型。 DNNS也可以在该配置中使用。

以上所有都是我发现有用的实验方法。
希望对您有所帮助。祝好运!

关于machine-learning - 根据标记的数据找到分割n维时间序列的点,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49513509/

10-12 17:55
查看更多