mcpField
S
skforecast-ai

skforecast-ai

本地服务
ai.skforecast.org数据与分析522 周前更新

关于 skforecast-ai

skforecast-ai 是面向时间序列预测的工具,可读取 CSV 数据,按确定性规则选择模型并验证预测结果。它会返回预测及生成该预测的 skforecast 脚本,适合需要可复现结果的用户。可选的 LLM 只负责解释决策,不参与决策本身。

主要功能

  1. 01数据画像:频率、缺失值与显著滞后
  2. 02每项决策对应可读规则的预测计划
  3. 03返回与实际运行一致的 skforecast 脚本
  4. 04compare() 对候选模型进行回测排序
  5. 05可选 LLM 解释预测结果

适用场景

  1. 01对 CSV 时间序列数据进行预测
  2. 02在编码 Agent 中调用预测流程
  3. 03需要可复现脚本的预测结果审查

MCP 相关

该项目提供 MCP 服务,可向 Claude Code、Cursor 等 MCP 客户端暴露完整预测流程作为工具。返回结果不包含原始数据行。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"skforecast-skforecast-ai": {
"command": "uvx",
"args": [
"skforecast-ai-mcp"
]
}
}
}
启动命令uvx skforecast-ai-mcp

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypiskforecast-ai-mcp0.4.2

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

skforecast-ai

软件包Python PyPI 总下载量 PyPI 月下载量
AgentMCP 服务 MCP Registry Claude Code 插件
元信息许可证 DOI
测试构建状态 codecov
社区!discord !linkedin Forecasting Python

关于 skforecast-ai

会展示工作过程的预测助手。 为 skforecast-ai 提供一个时间序列:它会分析数据特征,依据确定性规则选择模型,对其进行验证,并返回预测结果以及生成该结果的 skforecast 脚本。每项决策都源自一条可供你查阅的规则;相同的数据始终会得到相同的结果,而脚本无需依赖其他工具,只用纯 skforecast 即可独立运行。你还可以选择让大模型解释每项决策,但它不会做出这些决策。

skforecast-ai 对每小时共享单车用户数的预测,显示其 80% 区间,以及解释评估指标的 ask() 答案

对每小时共享单车用户数进行的 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 或更高版本。更多选项请参阅安装指南;若要从源代码安装,请参阅贡献指南。

快速示例

在 Colab 中打开 无需安装任何内容即可试用:你的第一个预测可在 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 服务。

一个编码 Agent 被要求比较某月度序列未来 12 个月的模型,随后调用 skforecast-ai MCP 服务(profile、plan、create_cv、compare、get_code),并给出与季节性朴素基线对比的排行榜以及获胜模型的脚本

一次真实的 Claude Code 会话,使用了该服务及其技能,内容摘自 Agent 对 skforecast-ai 0.4.0 的检查:前三次调用共享一行数据,响应或回答中的每处删节均以省略号标示。完整会话展示了每次调用、Agent 的每条消息以及完整回答。

在 VS Code 中,点击此按钮即可添加服务,并指定包含数据的目录(需要 uv):

在 VS Code 中安装

功能

确定性引擎
  • 数据分析:频率、缺失值、外生变量和类别变量,以及根据偏自相关得出的显著滞后项。
  • 每项决策都有规则的计划:预测器和估计器、滞后项、窗口和日历特征、预测区间、指标和交叉验证。
  • 你看到的代码就是实际运行的代码: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() 可随时解释任何对象。

skforecast-ai 的工作原理:快速路径会在 forecast() 或 backtest() 内完成分析和规划;逐步路径会调用 profile()、plan() 和 create_cv(),以便你检查每个对象。compare() 会在相同的交叉验证条件下对多个配置进行排名,ask() 则可随时解释任何对象。

更多信息请参阅智能体预测和逐步进行智能体预测。

文档

完整文档请访问 **https://ai.skforecast.org**。

文档
快速入门安装 skforecast-ai,运行首次预测并向助手提问
智能体预测快速路径:分析、预测、回测、比较和提问
逐步指南了解每个中间对象,以及如何修改它
配置大模型提供方、凭据、本地模型以及数据发送内容
使用 CLI在终端中运行同一工作流
面向编码 Agent 的 MCP 服务将同一工作流作为工具提供给 Claude Code、Cursor 和其他 MCP 客户端
API 参考ForecastingAssistant、其结果、架构和 CLI
版本发布各版本的变更内容

skforecast 系列项目

Skforecast Docs GitHub Skforecast Studio

  • skforecast:支撑 skforecast-ai 所有预测的预测库。提供机器学习、统计和基础模型、回测和调参功能。
  • Skforecast Studio:一款可视化构建预测模型的无代码应用,可生成可直接用于生产环境的 Python 代码。

贡献

欢迎提交 Bug 报告、功能请求、代码、测试和文档。请在 GitHub Issues 上提出问题,或阅读贡献指南和行为准则,了解如何开始。

skforecast-ai 由 Joaquín Amat Rodrigo 和 Javier Escobar Ortiz 创建并维护,并与所有为其作出贡献的人共同打造(关于此项目)。

skforecast-ai 贡献者

引用

如果你在科学出版物中使用 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 支持此项目。

在 Open Collective 上支持 skforecast  请我喝杯咖啡  在 GitHub 上赞助 skforecast

许可证

skforecast-ai 软件:Apache License 2.0。底层的 skforecast 引擎根据其自身的 BSD-3-Clause License 发布。

skforecast-ai 文档:CC BY-NC-SA 4.0

商标:skforecast 商标已在欧盟知识产权局(EUIPO)注册,申请编号为 019109684。未经所有者明确同意,严禁擅自使用该商标、其徽标或任何相关视觉标识元素。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。