特征提取时间序列、模型兼容性

人工智能 分类 决策树 时间序列
2021-11-15 07:31:20

我有一个带有传感器数据的时间序列(例如加速度计和陀螺仪)。我现在想从中提取活动(例如步行、站立、驾驶……)。关注了这个 Jupyter Notebook但是还有一些问题。

  1. 为什么他们只选择 500 行?
  2. 重新排列行/列有什么意义?
  3. 当他们使用训练数据构建决策树学习器时,他们会根据提取的特征构建它。但是我们如何才能将这棵树用于新的传感器数据呢?我们是否应该提取新数据的特征并将其作为树的输入传递?但是新的传感器数据可能没有火车数据那么多的特征。例如:(ValueError: Number of features of the model must match the input. Model n_features is 321 and input n_features is 312)
1个回答

这个问题有很多东西要解开。

为什么他们只选择 500 行?

我的猜测:为了让示例快速运行。tsfresh 通常需要一段时间来计算其特征。请注意,当他们评估他们的模型时,他们抽取了最后 500 个样本。

重新排列行/列有什么意义?

答:tsfresh 计算特征所需的数据框格式就是那个格式。这有点痛苦……尤其是当您需要跟踪其他数据的 id 列时。

当他们使用训练数据构建决策树学习器时,他们会根据提取的特征构建它。

回答:是的

但是我们如何才能将这棵树用于新的传感器数据呢?我们是否应该提取新数据的特征并将其作为树的输入传递?

回答:是的

但是新的传感器数据可能没有火车数据那么多的特征。例如:(ValueError:模型的特征数必须与输入匹配。模型n_features为321,输入n_features为312)

回答:是的,会的。我不知道您复制粘贴的错误消息来自哪里。当您使用 tsfresh 生成一组功能时,您可以通过几种不同的方式来完成。您可以生成所有这些,也可以生成其中的一个子集——它们生成了一个子集……但然后再次对其进行子集化(使用它们的重要性内容……无论您使用重要性方法还是其他方法来选择特征你最终会得到一堆你需要计算的特征)。如果您按照基于预定子集(在他们的情况下为相关特征)生成特征的过程,您最终将得到相同的特征#。这需要强调...不要生成您不需要的tsfeatures!因为这将需要 foooorever。