跳转到主要内容

用于时间序列机器学习的统一框架

项目描述

欢迎使用 sktime

时间序列机器学习的统一接口

:rocket: 版本 0.33.1 现已发布! 在此查看发布说明

sktime 是一个用于 Python 的时间序列分析库。它为多个时间序列学习任务提供了一个统一的接口。目前,这包括时间序列分类、回归、聚类、注释和预测。它附带时间序列算法和与 scikit-learn 兼容的工具来构建、调整和验证时间序列模型。

文档 · 教程 · 发布说明
开源 BSD 3-clause
教程 Binder !youtube
社区 !discord !slack
CI/CD github-actions readthedocs platform
代码 !pypi !conda !python-versions !black
下载 PyPI - Downloads PyPI - Downloads Downloads
引用 !zenodo

:books: 文档

文档
:star: 教程 新用户?这里有一切你需要知道的信息!
:clipboard: Binder 笔记本 示例笔记本,您可以在浏览器中与之互动。
:woman_technologist: 示例 如何使用 sktime 及其功能。
:scissors: 扩展模板 如何使用 sktime 的 API 构建您自己的估计器。
:control_knobs: API 参考 sktime API 的详细参考。
:tv: 视频教程 2021 年 PyData Global 的我们的视频教程。
:hammer_and_wrench: 变更日志 变更和版本历史。
:deciduous_tree: 路线图 sktime 的软件和社区开发计划。
:pencil: 相关软件 相关软件列表。

:speech_balloon: 哪里提问

问题和反馈非常受欢迎!我们坚信公开分享帮助的价值,因为它可以使更广泛的受众从中受益。

类型 平台
:bug: 错误报告 GitHub 问题跟踪器
:sparkles: 功能请求与想法 GitHub 问题跟踪器
:woman_technologist: 使用问题 GitHub 讨论区 · Stack Overflow
:speech_balloon: 一般讨论 GitHub 讨论区
:factory: 贡献与开发 dev-chat 频道 · Discord
:globe_with_meridians: 聚会和协作会议 Discord - 每周五 13 UTC,dev/聚会频道

:dizzy: 功能

我们的目标是提高整个时间序列分析生态系统的互操作性和可用性。sktime 提供了一个 为不同但相关的特定时间序列学习任务提供的统一接口。它具有 专门的时间序列算法复合模型构建工具,如管道、集成、调整和降低,使用户能够将针对一项任务设计的算法应用于另一项任务。

sktime 还提供了 相关库的接口,例如 scikit-learnstatsmodelstsfreshPyOD,以及 fbprophet 等。

模块 状态 链接
预测 稳定 教程 · API 参考 · 扩展模板
时间序列分类 稳定 教程 · API 参考 · 扩展模板
时间序列回归 稳定 API 参考
转换 稳定 教程 · API 参考 · 扩展模板
参数拟合 成熟 API 参考 · 扩展模板
时间序列聚类 成熟 API 参考 · 扩展模板
时间序列距离/核 成熟 教程 · API 参考 · 扩展模板
时间序列对齐 实验性 API 参考 · 扩展模板
注释 实验性 扩展模板
时间序列分割器 成熟 扩展模板
分布和模拟 实验性

:hourglass_flowing_sand: 安装 sktime

有关故障排除和详细安装说明,请参阅 文档

  • 操作系统: macOS X · Linux · Windows 8.1 或更高版本
  • Python 版本: Python 3.8, 3.9, 3.10, 3.11 和 3.12(仅 64 位)
  • 包管理器: pip · conda(通过 conda-forge

pip

使用 pip,sktime 发布版作为源包和二进制轮子提供。可用的轮子列在 此处

pip install sktime

或者,使用最大依赖关系,

pip install sktime[all_extras]

对于特定学习任务的精选软依赖集

pip install sktime[forecasting]  # for selected forecasting dependencies
pip install sktime[forecasting,transformations]  # forecasters and transformers

等。有效的集合有

  • 预测
  • 转换
  • 分类
  • 回归
  • 聚类
  • 参数估计
  • 网络
  • 注释
  • 对齐

注意:通常,不会安装学习任务的所有软依赖项,而仅安装精选选择。

conda

您还可以通过 conda 通过 conda-forge 通道安装 sktime。包括构建配方和配置的饲料库维护在 此 conda-forge 存储库 中。

conda install -c conda-forge sktime

或者,使用最大依赖关系,

conda install -c conda-forge sktime-all-extras

(因为 conda 不支持依赖集,所以通过 conda 无法提供灵活的软依赖关系选择)

:zap: 快速入门

预测

from sktime.datasets import load_airline
from sktime.forecasting.base import ForecastingHorizon
from sktime.forecasting.theta import ThetaForecaster
from sktime.split import temporal_train_test_split
from sktime.performance_metrics.forecasting import mean_absolute_percentage_error

y = load_airline()
y_train, y_test = temporal_train_test_split(y)
fh = ForecastingHorizon(y_test.index, is_relative=False)
forecaster = ThetaForecaster(sp=12)  # monthly seasonal periodicity
forecaster.fit(y_train)
y_pred = forecaster.predict(fh)
mean_absolute_percentage_error(y_test, y_pred)
>>> 0.08661467738190656

时间序列分类

from sktime.classification.interval_based import TimeSeriesForestClassifier
from sktime.datasets import load_arrow_head
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score

X, y = load_arrow_head()
X_train, X_test, y_train, y_test = train_test_split(X, y)
classifier = TimeSeriesForestClassifier()
classifier.fit(X_train, y_train)
y_pred = classifier.predict(X_test)
accuracy_score(y_test, y_pred)
>>> 0.8679245283018868

:wave: 如何参与其中

有许多方式可以加入 sktime 社区。我们遵循 all-contributors 规范:欢迎所有类型的贡献——不仅仅是代码。

文档
:gift_heart: 贡献 如何为 sktime 贡献。
:school_satchel: 辅导 新接触开源?申请我们的辅导计划!
:日期: 会议 加入我们的讨论、教程、研讨会和冲刺活动!
:女机械师: 开发者指南 如何进一步开发sktime的代码库。
:建筑: 增强提案 为sktime设计一个新功能。
:体育奖牌: 贡献者 所有贡献者的名单。
:举手: 角色 我们核心社区角色的概述。
:翅膀上的钱: 捐赠 资助sktime的维护和开发。
:古典建筑: 治理 在sktime社区中决策的如何和由谁做出。

:体育奖牌: 名人堂

感谢所有社区成员对你们所有美好贡献、PR、问题和想法的支持。


:灯泡: 项目愿景

  • 由社区,为社区 -- 由一个友好且协作的社区开发。
  • 适合任务的正确工具 -- 帮助用户诊断他们的学习问题以及合适的科学模型类型。
  • 嵌入在最新的生态系统提供互操作接口 -- 与 scikit-learnstatsmodelstsfresh 和其他社区热门工具互操作。
  • 丰富的模型组合和缩减功能 -- 构建调整和特征提取管道,使用 scikit-learn 回归器解决预测任务。
  • 清洁、描述性规范语法 -- 基于现代面向对象设计原则的数据科学。
  • 公平的模型评估和基准测试 -- 构建你的模型,检查你的模型,验证你的模型,避免陷阱。
  • 易于扩展 -- 提供易于扩展的模板以添加与sktime API兼容的算法。

项目详情


发布历史 发布通知 | RSS 源

下载文件

下载您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源分发

sktime-0.33.1.tar.gz (33.6 MB 查看哈希值)

上传时间

构建分发

sktime-0.33.1-py3-none-any.whl (34.5 MB 查看哈希值)

上传时间 Python 3