machine-learning - 根据标记数据找到分割n维时间序列的点

标签 machine-learning time-series feature-extraction

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

一个时间序列包括:

  • 基于固定时间间隔的 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. 分析标记数据中分割点周围的数据,以得出不同数据维度之间的相关性,并将其用作未标记数据的新特征。
  2. 分析两个关键帧之间的模式以查找未标记数据中的相似模式。

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

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

最佳答案

哇,这是一个很好的问题。 事实上,我也有一些想法可以提供给你们,其中一些想法经过了测试,并针对我遇到的异常事件的不同基于时间的问题进行了测试。

首先,无论您使用什么解决方案,分析数据始终是更好地理解问题的好方法。这样你就可以确保你不会给你的模型喂垃圾。用于此分析的工具可以是截断的过去窗口中的峰值、导数等。

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

但是,简单地使用神经网络可能会出现问题,因为分割点数量较少,非分割点数量较多。 您可以使用 LSTM 并在多对一配置中训练它们,在其中创建数量均衡的正例和负例。 LSTM 将帮助您克服示例长度的变化,并赋予时域更多意义。

朝着这个方向,您可以使用截断的过去并将其作为以 is_split_point 作为标签的示例,并通过以平衡的方式提取样本来使用 i.i.d 模型。 DNNS 也适用于该配置。

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

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

相关文章:

machine-learning - 训练网络时,Caffe 在验证阶段的测试准确性保持不变

machine-learning - 构建模型,在两个类别之间的差异过大时做出决策

python - Pandas .resample() 或 .asfreq() 向前填充时间

python - 有没有办法像使用 SARIMAX 模型一样使用 LSTM 来预测具有外生变量的时间序列?

c++ - OpenCV 聚类词袋 K-Means

matlab - 多个类别的 T 检验 (>2)

machine-learning - 如何将依赖路径编码为分类特征?

c++ - 应用于神经网络反向传播的交叉熵

java - 使用 KEA 或其他 python 库提取关键字

mysql - 聚合具有不规则时间戳的 SQL 函数