Temporian:高效、安全的时间序列数据预处理与特征工程库
项目介绍
Temporian 是一个用于时间序列数据预处理和特征工程的 Python 库,旨在提供安全、简单和高效的处理方式。Temporian 支持多变量时间序列、多变量时间序列序列、事件日志以及跨源事件流等多种时间数据类型。它就像 Pandas 之于表格数据一样,是时间序列数据的理想选择。
项目技术分析
Temporian 的核心计算部分采用 C++ 实现,并针对时间序列数据进行了优化。这使得 Temporian 在处理时间序列数据时,性能比市面上其他数据处理库快 1000 倍以上。此外,Temporian 不进行任何机器学习模型训练,而是无缝集成到现有的机器学习生态系统中,如 PyTorch、Scikit-Learn、Jax、TensorFlow、XGBoost 和 Yggdrasil Decision Forests 等。
项目及技术应用场景
Temporian 适用于各种需要处理时间序列数据的场景,包括但不限于:
- 金融分析:处理股票价格、交易量等时间序列数据。
- 物联网(IoT):分析传感器数据,预测设备故障。
- 医疗健康:处理患者生命体征数据,进行疾病预测。
- 零售业:分析销售数据,优化库存管理。
项目特点
- 支持多种时间数据类型:无论是均匀采样还是非均匀采样的数据,单变量还是多变量数据,Temporian 都能轻松处理。
- 防止未来数据泄露:通过
tp.leak
显式指定,确保特征计算不会依赖未来数据,避免潜在的错误和成本。 - 易于集成:无缝集成到现有的机器学习生态系统中,方便用户进行后续的模型训练和预测。
- 高性能:核心计算采用 C++ 实现,并针对时间序列数据进行了优化,性能卓越。
快速开始
安装
通过 pip
从 PyPI 安装 Temporian:
pip install temporian -U
目前 Temporian 支持 Linux 和 MacOS(ARM 和 Intel),Windows 支持正在开发中。
示例
假设我们有一份销售记录,包含 timestamp
、store
和 revenue
字段。我们的目标是计算每个商店在工作日晚上 11 点的每日收入总和。
import temporian as tp
# 加载销售数据
sales = tp.from_csv("sales.csv")
# 按商店索引销售数据
sales_per_store = sales.add_index("store")
# 列出工作日
days = sales_per_store.tick_calendar(hour=22)
work_days = (days.calendar_day_of_week() <= 5).filter()
# 计算每日收入总和
daily_revenue = sales_per_store["revenue"].moving_sum(tp.duration.days(1), sampling=work_days).rename("daily_revenue")
# 导出结果为 Pandas DataFrame
tp.to_pandas(daily_revenue)
更多详细信息,请参考 Getting Started 教程。
下一步
新用户可以参考 Getting Started 指南,了解 Temporian 的关键概念和操作。之后,可以深入阅读 User Guide,或者通过 Tutorials 进行实践学习。
文档
完整的文档可以在 temporian.readthedocs.io 找到。
贡献
欢迎为 Temporian 贡献代码!请参考 Contributing guide 开始你的贡献之旅。
致谢
Temporian 由 Google 和 Tryolabs 合作开发。