关于 skforecast-ai
skforecast-ai 是面向时间序列预测的工具,可读取 CSV 数据,按确定性规则选择模型并验证预测结果。它会返回预测及生成该预测的 skforecast 脚本,适合需要可复现结果的用户。可选的 LLM 只负责解释决策,不参与决策本身。
主要功能
- 01数据画像:频率、缺失值与显著滞后
- 02每项决策对应可读规则的预测计划
- 03返回与实际运行一致的 skforecast 脚本
- 04compare() 对候选模型进行回测排序
- 05可选 LLM 解释预测结果
适用场景
- 01对 CSV 时间序列数据进行预测
- 02在编码 Agent 中调用预测流程
- 03需要可复现脚本的预测结果审查
MCP 相关
该项目提供 MCP 服务,可向 Claude Code、Cursor 等 MCP 客户端暴露完整预测流程作为工具。返回结果不包含原始数据行。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
| 软件包 | |
| Agent | |
| 元信息 | |
| 测试 | |
| 社区 |
关于 skforecast-ai
会展示工作过程的预测助手。 为 skforecast-ai 提供一个时间序列:它会分析数据特征,依据确定性规则选择模型,对其进行验证,并返回预测结果以及生成该结果的 skforecast 脚本。每项决策都源自一条可供你查阅的规则;相同的数据始终会得到相同的结果,而脚本无需依赖其他工具,只用纯 skforecast 即可独立运行。你还可以选择让大模型解释每项决策,但它不会做出这些决策。
对每小时共享单车用户数进行的 36 小时 LightGBM 预测,展示其相对于留出时段的 80% 预测区间,以及解释各项指标的 ask() 答案。这些是真实的 skforecast-ai 输出,来自 ai.skforecast.org 上的动画。
安装
pip install skforecast-ai
LLM 层是可选的。若要使用,请安装额外组件(AWS Bedrock 对应 [bedrock]):
pip install "skforecast-ai[llm]"
需要 Python 3.10 或更高版本。更多选项请参阅安装指南;若要从源代码安装,请参阅贡献指南。
快速示例
无需安装任何内容即可试用:你的第一个预测可在 Google Colab 中运行,从数据到经过验证的预测,全程无需 API 密钥。
from skforecast_ai import ForecastingAssistant
from skforecast.datasets import load_demo_dataset
# Download demo dataset (monthly)
data = load_demo_dataset(verbose=False)
# Profile the data, plan the model, generate the script and run it,
# evaluated on the last 12 months. No LLM needed.
assistant = ForecastingAssistant()
result = assistant.forecast(data=data, target="y", steps=12, test_size=12)
result.predictions.head()
# pred
# 2007-07-01 0.851486
# 2007-08-01 1.048000
# 2007-09-01 0.998147
# 2007-10-01 1.147577
# 2007-11-01 1.110845
result.metrics
# series MAE MSE MASE MAPE
# 0 y 0.078442 0.008933 0.802828 0.088608
print(result.code) # the skforecast script that produced this result
这一次调用选择了一个使用 Ridge 估计器的 ForecasterRecursive,并配置其滞后项和窗口特征,然后运行了 result.code 返回的脚本。result.profile 和 result.plan 包含每项决策及其背后的规则。将 test_size 调低,即可使用全部数据进行训练,并预测接下来的 12 个月。
从终端运行相同的工作流
# End-to-end forecast
skforecast-ai forecast data.csv --target y --date-column date --steps 12
# Only the standalone script, without running it
skforecast-ai forecast-code data.csv --target y --date-column date --steps 12 --output forecast.py
CLI 覆盖了整个工作流,包括 ask() 以及 refine_plan() 和 create_cv() 的提示词。请参阅使用 CLI。
询问原因(可选的大模型)
# pip install "skforecast-ai[llm]"
assistant = ForecastingAssistant(llm="openai:gpt-5.5")
answer = assistant.ask(
"Is the MASE good, and why was this estimator chosen?",
context=result,
)
ask() 会读取你传入的对象,并基于 skforecast Agent 技能对其进行解释。它不会更改结果。数据集绝不会被发送:结果仅会分享自身的预测和指标,并附带警告。提供方、凭据和本地模型的相关说明请参阅配置大模型。
通过编码 Agent 使用(MCP 服务)
在 Claude Code 中,将服务及其技能安装为插件:
/plugin marketplace add skforecast/skforecast-ai
/plugin install skforecast-ai@skforecast-ai
然后用自然语言提问:"预测 data/sales.csv 接下来 12 个月的情况,并告诉我预测有多准确。" Agent 会调用大模型,并将 skforecast-ai 作为工具来调用;每项决策仍遵循相同的确定性规则,每个结果都会附带生成它的脚本,响应中也绝不会包含你的数据行。Cursor、VS Code、Codex 和 Claude Desktop 的设置说明请参阅面向编码 Agent 的 MCP 服务。
一次真实的 Claude Code 会话,使用了该服务及其技能,内容摘自 Agent 对 skforecast-ai 0.4.0 的检查:前三次调用共享一行数据,响应或回答中的每处删节均以省略号标示。完整会话展示了每次调用、Agent 的每条消息以及完整回答。
在 VS Code 中,点击此按钮即可添加服务,并指定包含数据的目录(需要 uv):
功能
确定性引擎
- 数据分析:频率、缺失值、外生变量和类别变量,以及根据偏自相关得出的显著滞后项。
- 每项决策都有规则的计划:预测器和估计器、滞后项、窗口和日历特征、预测区间、指标和交叉验证。
- 你看到的代码就是实际运行的代码:
forecast()和backtest()执行的脚本与forecast_code()和backtest_code()返回的脚本相同。你可以检查脚本、对其进行版本管理,或使用纯 skforecast 运行。 - 使用
compare()进行**模型选择**:每个候选模型都使用相同的数据和交叉验证进行回测,排名则是按指标直接排序。对于单个序列,季节性朴素基线也会一同参与排名,因此你还可以看到模型是否优于最简单且合理的预测方法。 - 可复现:相同的输入始终会得到相同的分析结果、计划、脚本和预测。
- Python 或终端:CLI 可从 CSV 文件或 URL 运行同一条流水线。
- 编码 Agent:MCP 服务 将同一条流水线作为工具提供给 Claude Code、Cursor 和其他 MCP 客户端,并附带一个指导它们如何使用的技能。响应中绝不会包含数据行。
该引擎会从 skforecast 的预测器中进行选择:递归式和直接式、多序列和多变量、统计模型(ARIMA)以及基础模型。
可选的 LLM 层
- 使用
ask()以通俗语言解释预测、回测、比较、计划或脚本,也可以回答一般的预测问题。 - 根据你的领域知识,通过
refine_plan(prompt=...)优化滞后项和窗口特征。 - 将部署场景转换为回测策略:
create_cv(prompt=...)。 - 运行前进行验证:每个 LLM 输出都会通过 Pydantic 模型检查;如果输出无效,你会得到确定性结果和警告。
- 通过 pydantic-ai 使用任意提供方:OpenAI、Anthropic、Google、Groq、AWS Bedrock、用于本地模型的 Ollama,或任何兼容 OpenAI 的端点。
方法
除 ask() 外,所有方法都可以在不使用 LLM 的情况下运行。提示词始终是显式的:除非你提出请求,否则不会向 LLM 发送任何内容。
| 方法 | 功能 | LLM |
|---|---|---|
profile() | 检查数据并推荐预测器和估计器 | 否 |
plan() | 制定计划:滞后项、窗口和日历特征、区间、指标 | 否 |
refine_plan() | 使用显式覆盖项或 prompt 修改计划 | 可选 |
create_cv() | 构建交叉验证策略,或将 prompt 转换为交叉验证策略 | 可选 |
forecast()、forecast_code() | 运行预测,或返回其脚本但不运行 | 否 |
backtest()、backtest_code() | 运行回测,或返回其脚本但不运行 | 否 |
compare() | 对多个配置进行回测并排名 | 否 |
ask() | 解释分析结果、计划、脚本或结果,或回答问题 | 必需 |
工作原理
skforecast-ai 提供两种入口,共用同一套引擎。快速路径通过一次调用,从数据直接生成预测或回测。逐步路径会返回每个中间对象(分析结果、计划、交叉验证),方便你在运行任何操作前检查、修改,或借助大模型进行优化。两条路径都可分支到预测和回测;compare() 会根据实测性能选出最佳配置,而 ask() 可随时解释任何对象。
文档
完整文档请访问 **https://ai.skforecast.org**。
| 文档 | |
|---|---|
| 快速入门 | 安装 skforecast-ai,运行首次预测并向助手提问 |
| 智能体预测 | 快速路径:分析、预测、回测、比较和提问 |
| 逐步指南 | 了解每个中间对象,以及如何修改它 |
| 配置大模型 | 提供方、凭据、本地模型以及数据发送内容 |
| 使用 CLI | 在终端中运行同一工作流 |
| 面向编码 Agent 的 MCP 服务 | 将同一工作流作为工具提供给 Claude Code、Cursor 和其他 MCP 客户端 |
| API 参考 | ForecastingAssistant、其结果、架构和 CLI |
| 版本发布 | 各版本的变更内容 |
skforecast 系列项目
- skforecast:支撑 skforecast-ai 所有预测的预测库。提供机器学习、统计和基础模型、回测和调参功能。
- Skforecast Studio:一款可视化构建预测模型的无代码应用,可生成可直接用于生产环境的 Python 代码。
贡献
欢迎提交 Bug 报告、功能请求、代码、测试和文档。请在 GitHub Issues 上提出问题,或阅读贡献指南和行为准则,了解如何开始。
skforecast-ai 由 Joaquín Amat Rodrigo 和 Javier Escobar Ortiz 创建并维护,并与所有为其作出贡献的人共同打造(关于此项目)。
引用
如果你在科学出版物中使用 skforecast-ai,请引用你使用的版本:每个版本都有自己的 DOI,并可在 Zenodo 上获取现成的引用格式。若要引用 skforecast-ai 项目本身,请使用始终指向最新版本的 DOI。
APA:
Amat Rodrigo, J., & Escobar Ortiz, J. skforecast-ai [Computer software]. https://doi.org/10.5281/zenodo.21338159
BibTeX:
@software{skforecast-ai,
author = {Amat Rodrigo, Joaquin and Escobar Ortiz, Javier},
title = {skforecast-ai},
license = {Apache-2.0},
url = {https://ai.skforecast.org/},
doi = {10.5281/zenodo.21338159}
}
引用元数据也包含在 CITATION.cff 中(GitHub 的“引用此仓库”按钮)。
赞助与资金支持
skforecast-ai 由 skforecast 团队打造。skforecast 是免费开源软件,获得了 Sovereign Tech Fund 以及赞助组织的支持。如果你的公司依赖 skforecast 或 skforecast-ai,请参阅**赞助与资金支持**,了解赞助级别、支持协议、功能赞助和培训。
个人可以通过 Open Collective、Buy Me a Coffee、GitHub Sponsors(Joaquín Amat Rodrigo、Javier Escobar Ortiz)或 PayPal 支持此项目。
许可证
skforecast-ai 软件:Apache License 2.0。底层的 skforecast 引擎根据其自身的 BSD-3-Clause License 发布。
skforecast-ai 文档:CC BY-NC-SA 4.0
商标:skforecast 商标已在欧盟知识产权局(EUIPO)注册,申请编号为 019109684。未经所有者明确同意,严禁擅自使用该商标、其徽标或任何相关视觉标识元素。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。