基于过去和未来值的每个时间序列步骤的二进制分类

数据挖掘 分类 喀拉斯 时间序列 lstm
2021-09-14 11:08:22

我目前面临机器学习问题,并且已经到了需要一些帮助才能继续的地步。

我有传感器跟踪的各种时间序列的位置 ( x, y, ) 数据。z我开发了更多功能。例如,我栅格化了整个 3D 空间并为每个时间步计算了acell_x时间序列本身具有可变长度。cell_ycell_z

我的目标是建立一个模型,用标签01(基于过去和未来值的二进制分类)对每个时间步进行分类。因此,我有很多已经设置标签的训练时间序列。

可能非常有问题的一件事是1数据中的标签非常少(例如,800 个样本中只有 3 个带有标签1)。

如果有人可以在正确的方向上帮助我,那就太好了,因为有太多可能的问题:

  • 错误的超参数
  • 型号不正确
  • 的标签太少1,但我认为这不是一个大问题,因为我只需要模型来建议正确的时间步骤。所以我只会使用输出的峰值。
  • 训练数据不好或太少
  • 不好的功能

我感谢任何帮助和提示。

1个回答

您面临一个非常普遍的问题:处理不平衡的数据。对于神经网络,典型的过程是:

  1. 拥有适当的指标:不应使用全局准确性。
  2. 过采样少数类:随机生成少数类的副本,直到不平衡消失。您还可以对少数类进行数据增强。可以使用 SMOTE 算法从特征空间生成合成数据,但我不知道它如何应用于神经网络。
  3. 对多数类进行欠采样:随机删除多数类的实例。它会降低大多数类的性能
  4. 在损失函数中包含类权重:这个想法是惩罚少数类的错误分类。权重通常与每个类别的出现频率成反比。
  5. 每个类使用不同的学习率:您可以为多数类使用更大的学习率,因此网络停止从多数类学习比从少数类更早

我推荐 1(总是)、2 和 4 的组合。为了更深入地了解这个非常重要的主题,我建议阅读:

  1. https://dl.acm.org/citation.cfm?id=1592322
  2. https://arxiv.org/pdf/1710.05381.pdf