catch22: 规范时间序列特征
catch22 是一个由22个用C语言编写的时间序列特征组成的集合,可以在Python、R、Matlab和Julia中运行,采用 GNU GPL v3 许可证(或更高版本)。 catch22 特征是 hctsa 中超过7000个特征中表现最佳的子集。
这些特征是基于它们在93个真实世界时间序列分类问题中的分类性能而选择的,详细描述请参阅我们的开放获取论文 📗 Lubba et al. (2019). catch22: 规范时间序列特征。
📙📘📗catch22 文档
catch22 有全面的文档,包括:
- 安装说明(适用于C、Python、R、Julia和Matlab)
- 每个特征背后的理论和行为信息
- 使用或扩展 catch22 的出版物列表
- 以及更多内容 :yum:
在Python、R、Matlab、Julia和编译C中的安装和使用
其他编程语言也有此代码的原生版本:
- Rcatch22 (R)
install.packages("Rcatch22")
- pycatch22 (Python)
pip install pycatch22
- Catch22.jl (Julia)
Pkg.add("Catch22")
你也可以直接使用C编译的特征,或在Matlab中使用,请参考wiki上的详细安装说明。
致谢 :+1:
如果您使用此软件,请阅读并引用这篇开放获取文章:
- 📗 Lubba et al. catch22: 规范时间序列特征,Data Min Knowl Disc 33,1821(2019)。
性能摘要
catch22 特征集在93个分类问题上的性能摘要,以及与 hctsa 特征集 的比较(参见我们的论文中的图4):
注意事项
- 在展示使用 catch22 的结果时,必须标明所使用的版本,以便清晰地复现您的结果。例如,从v0.3版本开始,
CO_f1ecac
从整数值输出改为线性插值的实数值输出。 - catch22 特征仅评估时间序列的动态特性,不响应位置(如均值)或分布(如方差)的基本差异。
- 如果原始时间序列分布的位置和分布对您的应用很重要,您应该在调用所选语言的 catch22 函数时使用函数参数
catch24 = true
(在R中为TRUE
,在Python中为True
)。这将计算24个特征:catch22 特征加上均值和标准差。 - 时间序列在内部进行 z 分数标准化(除了均值和标准差特征外),这意味着常数时间序列将导致
NaN
输出。 - 时间序列数据被视为有序值序列(无时间戳)。我们假设时间序列是均匀采样的。
- 有关特定语言的使用信息,请参见 wiki。
- 用于生成 catch22 特征集的计算流程在
op_importance
仓库中。