Python,从时间序列中提取特征(TSFRESH 包或者我可以使用什么?)

Python, extracting features form time series (TSFRESH package or what can I use?)

我需要一些时间序列特征提取方面的帮助,也许可以使用 TSFRESH 包。

我有大约 5000 个 CSV 文件,每个文件都是一个时间序列(它们的长度可能不同)。 CSV 时间序列非常简单:

CSV 时间序列文件示例: |日期 |价值 | | ------ | ----- | | 1904 年 1 月 1 日 01:00:00,000000 | 1,464844E-3 | | 1904 年 1 月 1 日 01:00:01,000000 | 1,953125E-3 | | 1904 年 1 月 1 日 01:00:02,000000 | 4,882813E-4 | | 1904 年 1 月 1 日 01:00:03,000000 | -2,441406E-3 | | 1904 年 1 月 1 日 01:00:04,000000 | -9,765625E-4 | | ... | ... |

除了这些 CSV 文件外,我还有一个元数据文件(CSV 格式),其中每一行代表 5000 个 CSV 时间序列中的一个,并报告有关该时间序列的更多一般信息,例如能量等

元数据 CSV 文件示例: | CSV 时间序列的路径 |标签 |能源 |渗透 |孔隙率 | | ------ | ----- | ------ | ----- | ----- | ---------- | | ... | ... | ... | ... | ... | ... | | ... | ... | ... | ... | ... | ... | | ... | ... | ... | ... | ... | ... |

最重要的列是“标签”列,因为它报告 CSV 时间序列是否被标记为:

  1. 不好

我还应该考虑能量、渗透和孔隙率列,因为这些值在时间序列的标记中起着重要作用。 (我已经通过仅查看特征尝试了决策树,现在我想分析时间序列以提取知识)

我打算从时间序列中提取特征,这样我就可以理解是什么特征使一个时间序列被标记为“好”或“坏”。

如何使用 TSFRESH 执行此操作? 还有其他方法吗?

你能告诉我怎么做吗?谢谢:)

我目前正在做类似的事情并且 this example jupyter notebook from github 帮助了我。

基本流程简述:

  1. 以可接受的格式引入时间序列,有关详细信息,请参阅the tsfresh documentation
  2. 使用 X = extract_features(...)
  3. 从时间序列中提取特征
  4. Select 使用 X_filtered = select_features(X, y) 的相关功能,y 是您的标签,好或坏例如1 和 0.
  5. 将 select 个特征放入分类器中,也显示在 jupyter notebook 中。