Project Icon

tsfeatures

时间序列特征提取的Python工具库

tsfeatures是一个Python库,用于计算时间序列数据的多种特征。作为R语言tsfeatures包的Python实现,它提供了自相关、异方差、熵、平稳性等统计指标的计算功能。该库支持自定义特征函数和处理不同频率的时间序列数据,并允许与R版本结果进行对比。tsfeatures适用于需要进行时间序列分析和建模的数据处理场景。

构建 PyPI版本fury.io 下载量 Python 3.6+ 许可证: MIT

tsfeatures

计算时间序列数据的各种特征。这是R包_tsfeatures_的Python实现。

安装

你可以通过Python包索引安装tsfeatures发布版本:

pip install tsfeatures

使用方法

tsfeatures的主要函数默认计算Montero-Manso、Talagala、Hyndman和Athanasopoulos在他们的FFORMA模型实现中使用的特征。

from tsfeatures import tsfeatures

这个函数接收一个包含unique_iddsy列的面板pandas数据框,以及可选的数据频率参数。

<img src=https://raw.githubusercontent.com/FedericoGarza/tsfeatures/master/.github/images/y_train.png width="152">

tsfeatures(panel, freq=7)

默认情况下(freq=None),该函数会尝试推断每个时间序列的频率(使用pandas的infer_freq函数处理ds列),并根据内置的FREQS字典分配季节性周期:

FREQS = {'H': 24, 'D': 1,
         'M': 12, 'Q': 4,
         'W':1, 'Y': 1}

你可以使用dict_freqs参数来使用自己的字典:

tsfeatures(panel, dict_freqs={'D': 7, 'W': 52})

可用特征列表

特征
acf_featuresheterogeneityseries_length
arch_statholt_parameterssparsity
count_entropyhurststability
crossing_pointshw_parametersstl_features
entropyintervalsunitroot_kpss
flat_spotslumpinessunitroot_pp
frequencynonlinearity
guerreropacf_features

查看文档以了解特征的描述。要使用包中包含的特定特征,你需要导入它:

from tsfeatures import acf_features

tsfeatures(panel, freq=7, features=[acf_features])

你还可以定义自己的函数,并将其与包含的特征一起使用:

def number_zeros(x, freq):

    number = (x == 0).sum()
    return {'number_zeros': number}

tsfeatures(panel, freq=7, features=[acf_features, number_zeros])

tsfeatures可以处理接收numpy数组x和频率freq(即使你不使用它,这个参数也是必需的)并返回一个字典的函数,字典以特征名称为键,特征值为值。

R实现

你可以使用这个包在Python内部调用R的tsfeatures(你需要安装R、forecasttsfeatures包;以及Python包rpy2):

from tsfeatures.tsfeatures_r import tsfeatures_r

tsfeatures_r(panel, freq=7, features=["acf_features"])

注意,这个函数接收的是字符串列表,而不是函数列表。

与R实现的比较(绝对差之和)

非季节性数据(100个每日M4时间序列)

特征差异特征差异特征差异特征差异
e_acf100e_acf10diff2_acf10alpha3.2
季节性周期0尖峰0diff1_acf100arch_acf3.3
周期数0曲率0x_acf10beta4.04
线性度0交叉点0非线性0garch_r24.74
hw_gamma0凸凹性0diff2x_pacf50赫斯特指数5.45
hw_beta0diff1x_pacf50单位根_kpss0garch_acf5.53
hw_alpha0diff1_acf100x_pacf5011.65
趋势0arch_lm0x_acf100
平坦点0diff1_acf10单位根_pp0
序列长度0稳定性0arch_r21.37

要复现这些结果,请使用:

python -m tsfeatures.compare_with_r --results_directory /some/path
                                    --dataset_name Daily --num_obs 100

季节性数据(100个小时级M4时间序列)

特征差异特征差异特征差异特征差异
序列长度0seas_acf10趋势2.28赫斯特指数26.02
平坦点0x_acf10arch_r22.29hw_beta32.39
周期数0单位根_kpss0alpha2.52低谷35
交叉点0非线性0beta3.67峰值69
季节性周期0diff1_acf100线性度3.97
凸凹性0x_acf100曲率4.8
稳定性0seas_pacf0e_acf107.05
arch_lm0单位根_pp0garch_r27.32
diff2_acf10尖峰0hw_gamma7.32
diff2_acf100季节性强度0.79hw_alpha7.47
diff1_acf10e_acf11.67garch_acf7.53
diff2x_pacf50arch_acf2.189.45

要复现这些结果,请使用:

python -m tsfeatures.compare_with_r --results_directory /some/path \
                                    --dataset_name Hourly --num_obs 100

作者

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

白日梦AI

白日梦AI提供专注于AI视频生成的多样化功能,包括文生视频、动态画面和形象生成等,帮助用户快速上手,创造专业级内容。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

讯飞绘镜

讯飞绘镜是一个支持从创意到完整视频创作的智能平台,用户可以快速生成视频素材并创作独特的音乐视频和故事。平台提供多样化的主题和精选作品,帮助用户探索创意灵感。

Project Cover

讯飞文书

讯飞文书依托讯飞星火大模型,为文书写作者提供从素材筹备到稿件撰写及审稿的全程支持。通过录音智记和以稿写稿等功能,满足事务性工作的高频需求,帮助撰稿人节省精力,提高效率,优化工作与生活。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号