用于处理序列和时间序列数据的资源集合
📦 软件包
Python
- adtk 一个基于规则/无监督的时间序列异常检测Python工具包。
- aeon 一个统一的时间序列机器学习框架。
- alibi-detect 用于异常值、对抗性和漂移检测的算法。
- AutoTS 一个为快速大规模部署高精度预测而设计的Python时间序列包。
- Auto_TS 只需一行代码即可在时间序列数据集上自动构建ARIMA、SARIMAX、VAR、FB Prophet和XGBoost模型。现已更新Dask以处理数百万行数据。
- cesium 开源时间序列推理平台。
- darts 让Python中的时间序列变得简单。一个用于轻松操作和预测时间序列的Python库。
- deeptime 用于分析时间序列数据的Python库,包括降维、聚类和马尔可夫模型估计。
- dtw-python R语言综合动态时间规整算法包的Python移植版。
- etna ETNA是一个易用的时间序列预测框架。
- fost 预测开源工具旨在提供一个易用的空间-时间预测工具。
- functime 大规模时间序列机器学习和嵌入。
- gluon-ts AWS提供的Python概率时间序列建模工具。
- gordo 利用时间序列数据构建数千个模型来监控系统。
- greykite LinkedIn开发的灵活、直观且快速的预测库。
- hmmlearn Python中的隐马尔可夫模型,具有类似
scikit-learn
的API。 - HyperTS 全流程自动化时间序列(AutoTS)分析工具包。
- kats 用于分析时间序列数据的工具包,是一个轻量级、易用、通用且可扩展的框架,用于执行时间序列分析,从了解关键统计数据和特征,检测变化点和异常,到预测未来趋势。
- libmaxdiv 用于多变量时空时间序列异常检测的最大发散区间算法实现。
- lifelines Python中的生存分析。
- luminaire 一个提供机器学习驱动的时间序列数据监控解决方案的Python包。Luminaire提供多种异常检测和预测功能,结合了数据随时间的相关性和季节性模式以及不可控变化。
- mass-ts Mueen的相似性搜索算法,一个用于在z标准化欧几里得距离下搜索时间序列子序列相似性的库。
- matrixprofile 一个Python库,使用矩阵剖面算法,让时间序列数据挖掘任务对每个人都变得可访问。
- Merlion 一个时间序列智能Python库。它提供了一个端到端的机器学习框架,包括加载和转换数据、构建和训练模型、后处理模型输出和评估模型性能。
- neuralforecast 可扩展且用户友好的神经网络预测算法。
- nixtla 自动化时间序列处理和预测。
- orbit Uber开发的一个具有面向对象设计和概率模型的贝叶斯预测包。
- pastas 用于分析水文时间序列的开源Python框架。
- pmdarima 一个旨在填补Python时间序列分析能力空白的统计库,包括R语言
auto.arima
函数的等效实现。 - prophet 用于生成具有多重季节性和线性或非线性增长的高质量时间序列预测的工具。
- pyaf PyAF是一个基于流行的pydata模块构建的开源Python自动时间序列预测库。
- PyDLM 贝叶斯时间序列建模包。基于贝叶斯动态线性模型(Harrison和West,1999),并针对快速模型拟合和推理进行了优化。
- PyFlux Python的开源时间序列库。
- pyFTS Python的开源模糊时间序列库。
- Pyod 一个用于可扩展异常检测(异常检测)的Python工具箱。
- PyPOTS 一个用于部分观测时间序列(又称不规则采样时间序列)数据挖掘的Python工具箱/库,支持对不完整多变量时间序列进行预测/插补/分类/聚类任务。
- pyspi 多变量时间序列中成对交互的比较分析。
- pytimetk Python的时间序列工具包。
- rrcf 用于流数据异常检测的鲁棒随机剪切森林算法实现。
- scalecast Python中可扩展的时间序列预测方法
- scikit-hts 具有熟悉API的层次时间序列预测。
- seglearn 一个用于时间序列或序列机器学习的Python包。
- shyft Python和C++的时间序列,包括分布式存储和计算水文预测工具箱、高性能灵活堆栈,包括校准能源市场模型和微服务。
- similarity_measures 量化任意两条曲线之间的差异。
- skforecast 使用scikit-learn模型进行时间序列预测。
- sktime 一个与
scikit-learn
兼容的Python工具箱,用于时间序列学习。 - statsforecast 使用统计和计量经济学模型进行闪电般快速的预测。
- statsmodels.tsa 时间序列分析(tsa)
statsmodels.tsa
包含对时间序列分析有用的模型类和函数。 - stumpy 一个强大且可扩展的Python库,可用于各种时间序列数据挖掘任务。
- TICC 一个Python求解器,用于高效地分割和聚类多变量时间序列。
- tick 统计学习模块,特别侧重于时间依赖建模。
- timemachines 持续评估、功能性、增量式的时间序列预测。
- TimeSeers 基于Prophet的分层贝叶斯时间序列模型,使用PyMC3编写。
- TimesFM TimesFM(时间序列基础模型)是谷歌研究开发的用于时间序列预测的预训练时间序列基础模型。
- Time Series Generator 为Keras中直接多步输出限制提供解决方案。
- tods 一个自动化时间序列异常检测系统。
- torchtime 用于PyTorch的时间序列数据集。
- TSDB 时间序列数据库:一个帮助轻松加载时间序列数据集的Python工具箱。
- tsai 用于时间序列和序列的最先进深度学习库。
- tscv 时间序列交叉验证 - scikit-learn的扩展。
- tsflex 灵活的时间序列特征提取和处理。
- tslearn Python中用于时间序列分析的机器学习工具包。
- tslumen 一个用于时间序列探索性数据分析(EDA)的库。
- tsmoothie 一个用于向量化方式进行时间序列平滑和异常检测的Python库。
日期和时间
用于处理日期和时间的库。
- astral Python计算太阳和月亮的位置。
- Arrow - 一个Python库,提供了一种明智且人性化的方法来创建、操作、格式化和转换日期、时间和时间戳。
- Chronyk - 一个Python 3库,用于解析人类书写的时间和日期。
- dateutil - 标准Python datetime 模块的扩展。
- delorean - 一个用于解决处理日期时间时出现的不便真相的库。
- maya - 为人类设计的日期时间。
- moment - 一个处理日期/时间的Python库。灵感来自 Moment.js。
- Pendulum - 简化Python日期时间操作。
- PyTime - 一个易于使用的Python模块,旨在通过字符串操作日期/时间/日期时间。
- pytz - 世界时区定义,现代和历史。将 tz数据库 引入Python。
- when.py - 提供用户友好的函数来帮助执行常见的日期和时间操作。
特征工程
- AntroPy 用于计算时间序列熵和复杂度的高效算法。
- catch22 规范时间序列特征,22个高性能时间序列特征,支持C、Python和Julia。
- featuretools 一个用于自动化特征工程的开源Python库。
- temporian Temporian是一个开源Python库,用于预处理⚡和特征工程🛠时间数据📈,适用于机器学习应用🤖
- tsfeatures 计算时间序列数据的各种特征。R包tsfeatures的Python实现。
- tsfel 一个直观的库,用于从时间序列中提取特征。
- tsflex 灵活高效的时间序列特征提取和处理包。
- tsfresh 该包包含许多特征提取方法和一个强大的特征选择算法。
时间序列分段和变点检测
- bayesian_changepoint_detection 获取时间序列中变点概率的方法。提供在线和离线方法。
- changepy 纯Python实现的时间序列变点检测。
- RBEAST 贝叶斯变点检测和时间序列分解。
- ruptures 一个用于离线变点检测的Python库。该包提供了非平稳信号分析和分割的方法。
- TCPDBench 图灵变点检测基准,对变点检测算法的基准评估。
时间序列生成和增强
- DeepEcho 混合类型、多变量时间序列的合成数据生成。
- deltapy 表格数据增强和特征工程。
- time_series_augmentation 使用Keras的时间序列增强方法示例。
- TimeSynth 一个用于Python中合成时间序列的多用途库。
- tsaug 一个用于时间序列增强的Python包。
- tsgm 合成时间序列生成和时间序列增强。
可视化
- atlair Python的声明式统计可视化库。
- matplotlib 一个用于创建静态、动画和交互式可视化的综合库。
- plotly 一个用于制作交互式、出版质量图表的绘图库。
- plotly-resampler Plotly图形的包装器,使大型顺序图表可扩展。
- seaborn 基于matplotlib的数据可视化库,提供了绘制有吸引力和信息丰富的统计图形的高级接口。
- tsdownsample 用于可视化的极快时间序列下采样。
基准测试和竞赛
- timeseries-elo-ratings 计算Elo评级。
- m6 提供M6竞赛的实用工具
- Microprediction时间序列竞赛
- SKAB 斯科尔科沃异常基准。用于评估异常检测算法的时间序列数据。
R
- bcp 变点问题的贝叶斯分析。
- CausalImpact 一个使用贝叶斯结构时间序列模型进行因果推断的R包。
- changepoint 实现各种主流和专门的变点方法,用于在数据中查找单个和多个变点。
- cpm 使用参数和非参数方法进行序列和批量变化检测。
- EnvCpt 气候和环境时间序列的结构变化检测。
- fable tidyverts包系列中用于整洁时间序列预测的包。
- fasster tidyverts包系列中用于季节性、趋势和外生回归因子可加切换预测的包。
- feasts tidyverts包系列中用于时间序列特征提取和统计的包。
- fpop 使用最优分区和函数剪枝进行分段。
- greybox R中的回归模型构建和预测。
- modeltime Modeltime在一个框架中解锁时间序列预测模型和机器学习。
- penaltyLearning 用于变化检测惩罚函数的监督学习算法。
- Rcatch22 用于计算22个规范时间序列特征的R包。
- smooth 用于时间序列分析和预测的平滑函数集。
- theft 用于处理时间序列特征提取的R工具包。
- timetk 一个用于可视化、整理和转换时间序列数据的
tidyverse
工具包。 - tsibble tidyverts包系列中提供整洁时间数据框和工具的包。
- tsrepr TSrepr:用于时间序列表示的R包。
Java
JavaScript
可视化
- cubism 一个用于可视化时间序列的D3插件。使用Cubism构建更好的实时仪表板,从Graphite、Cube和其他来源拉取数据。
- echarts 一个免费、强大的图表和可视化库,提供了一种简单的方式来为商业产品添加直观、交互式和高度可定制的图表。
- fusiontime 帮助您使用几行代码在JavaScript中可视化时间序列和股票数据。
- highcharts 一个基于SVG的JavaScript图表库,对旧浏览器有VML和canvas的后备方案。
- synchro-charts 一个前端组件库,提供一系列用于可视化时间序列数据的组件。
Spark
- flint Apache Spark的时间序列库。
MATLAB
- hctsa 高度比较的时间序列分析。
🗄️ 数据库
- atlas Netflix的内存维度时间序列数据库。
- cassandra Apache Cassandra是一个开源的NoSQL分布式数据库,被数千家公司信任,可提供可扩展性和高可用性,而不影响性能。
- ClickHouse 一个开源的、高性能的列式OLAP数据库管理系统,用于使用SQL进行实时分析。
- cratedb 用于工业物联网复杂、大规模时间序列工作负载的SQL数据库。
- druid 一个高性能实时分析数据库。
- fauna Fauna是一个灵活、对开发者友好的事务型数据库,以安全和可扩展的云API形式提供,具有原生GraphQL支持。
- InfluxDB 是必不可少的时间序列工具包 - 仪表板、查询、任务和代理都集中在一处。
- KairosDB 基于Cassandra的快速时间序列数据库。
- opendTSDB 可扩展的时间序列数据库。
- prometheus 一个最初由SoundCloud构建的开源系统监控和告警工具包。
- QuestDB 一个专为处理时间序列数据而设计的开源SQL数据库,速度更快。
- SiriDB 一个高度可扩展、稳健且超快的时间序列数据库。
- TimeScaleDB TimescaleDB是领先的开源关系数据库,支持时间序列数据。
- TDengine 一个开源的高性能、可扩展且支持SQL的时间序列数据库。
托管数据库服务
- Amazon Timestream 一个快速、可扩展且无服务器的时间序列数据库服务,适用于物联网和运营应用。
- Azure Database for PostgreSQL 完全托管、智能且可扩展的PostgreSQL,支持TimeScaleDB。
- Azure time series insights 实时可视化物联网数据。
- InfluxDB Cloud 这是一个快速、弹性、无服务器的实时监控平台、仪表板引擎、分析服务以及事件和指标处理器。
- TimeScaleDB Cloud 托管的TimeScaleDB服务。
- TDengine Cloud 用于时间序列数据的无服务器、完全托管的云服务
✏️ 标注和标记
- AnnotateChange - 一个简单的Flask应用程序,用于收集Turing Change Point Dataset的注释,这是一个用于变点检测算法的基准数据集。
- Curve - 一个开源工具,帮助标注时间序列数据中的异常
- TagAnomaly - 异常检测分析和标注工具,专门用于多个时间序列(每个类别一个时间序列)
- time-series-annotator - 时间序列注释库,实现时间序列的分类任务。
- WDK - 可穿戴设备开发工具包(WDK)是一套工具,用于促进可穿戴设备活动识别应用的开发。
📝 附代码的论文
-
TS2Vec: 面向时间序列的通用表示, Zhihan Yue, Yujing Wang, Juanyong Duan, Tianmeng Yang, Congrui Huang, Yunhai Tong, Bixiong Xu, 2022
-
动态时间序列的保形预测区间, Chen Xu, Yao Xie, 国际机器学习会议2021(长演讲)
-
时间序列分类的深度学习综述, H. I. Fawaz, G. Forestier, J. Weber, L. Idoumghar, P-A. Muller, 数据挖掘与知识发现2019
-
多变量时间序列的贪婪高斯分割, D. Hallac, P. Nystrup, and S. Boyd, 数据分析与分类进展, 13(3), 727–751, 2019.
-
U-Time:应用于睡眠分期的时间序列分割全卷积网络, Mathias Perslev, Michael Jensen, Sune Darkner, Poul Jørgen Jennum, Christian Igel, NeurIPS, 2019.
-
分段线性时间序列分割的更佳替代方案, Daniel Lemire, SIAM数据挖掘, 2007.
-
时间序列生成对抗网络, Jinsung Yoon, Daniel Jarrett, Mihaela van der Schaar, NeurIPS, 2019.
-
使用LSTM循环神经网络学习诊断, Zachary C. Lipton, David C. Kale, Charles Elkan, Randall Wetzel, arXiv:1511.03677, 2015.
-
基于相干性的时间序列标签传播用于加速主动学习, Yooju Shin, Susik Yoon, Sundong Kim, Hwanjun Song, Jae-Gil Lee, Byung Suk Lee, ICLR, 2022.
💻 包含模型的仓库
- ESRNN-GPU ES-RNN模型的PyTorch GPU实现,用于时间序列预测。
- LSTM-Neural-Network-for-Time-Series-Prediction 使用Keras Python包构建的LSTM,用于预测时间序列步骤和序列。
- ROCKET 使用随机卷积核进行异常快速和准确的时间序列分类。
- TensorFlow-Time-Series-Examples 使用
tf.contrib.timeseries
进行时间序列预测 - TimeSeries 在PyTorch中实现时间序列深度学习模型。
- UCR_Time_Series_Classification_Deep_Learning_Baseline 用于最先进时间序列分类的全卷积神经网络。
- wtte-rnn WTTE-RNN,一个用于客户流失和事件时间预测的框架。
⚙️ 应用
- binjr 一个时间序列数据浏览器。
- CompEngine 一个自组织的时间序列数据库,允许你上传时间序列数据并交互式地可视化其他人测量的类似数据。
📚 书籍
- 贝叶斯时间序列模型 💲 David Barber, A. Taylan Cemgil, Silvia Chiappa,剑桥学术出版社 2011
- 使用KNIME进行无代码时间序列分析 💲 Corey Weisinger, Maarit Widmann, 和 Daniele Tonini,Packt出版社 2022
- 预测原理与实践(第3版) 🆓 Rob J Hyndman 和 George Athanasopoulos 2021
- 实用时间序列分析 💲 Avishek Pal, PKS Prakash,Packt 2017
- 实用时间序列分析:使用统计和机器学习进行预测 💲 Aileen Nielsen,O'Reilly 2019
- Python机器学习时间序列 💲 Ben Auffarth,Packt出版社 2021
- 时间序列分析手册 🆓 亚洲管理学院2023届数据科学博士生
- 面向时间数据的可视化 💲 Wolfgang Aigner, Silvia Miksch, Heidrun Schumann, Christian Tominski,Springer-Verlag 2011
🎓 课程
- Analytics Vidhya - 使用Python进行时间序列预测
- Coursera - R语言时间序列分析入门
- Coursera - 序列、时间序列和预测
- Coursera - 实用时间序列分析
- Data For Science - 面向所有人的时间序列
- Kaggle - 时间序列
- Udacity - 时间序列预测
教程
💬 社区
- r/TimeSeries 时间序列图表和基于时间序列预测的Reddit子版块。
- sktime gitter
- microprediction slack 邀请链接。
- pycaret slack 查看时间序列聊天。
🗃 组织
💼 商业平台
- HAKOM TSM平台 为各种分析和操作目的提供全面的功能,用于预处理和存储来自不同来源、不同格式的时间序列。
🕶️ 更多精彩资源
- cuge1995/awesome-time-series
- MaxBenChrist/awesome_time_series_in_python
- vinta/awesome-python
- xephonhq/awesome-time-series-database 精选的优秀时间序列数据库、基准测试和论文列表。
- awesome python benchmarks 主要是时间序列基准测试。
- Alro10/deep-learning-time-series 聚焦于深度学习的最新论文列表,以及用于时间序列预测的深度学习资源、代码和实验。
- hctsa - 时间序列资源 时间序列分析的优质资源集合(包括其他编程语言如Python和R)。