来源https://github.com/DataZooDE/anofox-forecast[!重要提示]本扩展处于早期开发阶段可能存在缺陷和不兼容的变更。请使用 issues 页面 报告缺陷或请求功能。一个用于 DuckDB 的时间序列预测扩展包含 32 个模型、数据准备和分析功能 —— 全部使用纯 SQL 实现。✨ 主要特性 预测32 个模型自动机器学习AutoETS、AutoARIMA、AutoMFLES、AutoMSTL、AutoTBATS统计学模型ETS、ARIMA、Theta、Holt-Winters、季节性朴素法高级模型TBATS、MSTL、MFLES支持多季节性间歇需求模型Croston、ADIDA、IMAPA、TSB外生变量ARIMAX、ThetaX、MFLESX支持外部回归变量 完整工作流探索性数据分析与数据质量5 个函数2 个表函数、3 个宏用于探索性分析和数据质量评估数据准备12 个宏用于清洗和转换多键层次结构4 个函数用于组合、聚合和拆分层次时间序列区域/商店/商品交叉验证与回测支持扩展窗口、固定窗口、滑动窗口、间隔、禁止期和可变预测范围共形预测无需分布假设、具有保证覆盖概率的预测区间评估12 个指标包括覆盖率分析季节性检测自动周期识别、季节性分类和峰值检测变点检测带有概率的状态识别 特征计算76 个统计特征为机器学习流水线提取全面的时间序列特征GROUP BY 与窗口支持面向多序列特征提取的 DuckDB 原生并行能力灵活配置选择特定特征、自定义参数或使用 JSON/CSV 配置兼容 tsfresh与现有机器学习工作流无缝集成后续也将兼容 hctsa⚡ 性能并行处理基于 GROUP BY 的 DuckDB 原生并行能力可扩展处理数百万条序列内存高效列式存储、流式操作原生 Rust 核心数据准备和预测的高性能原生实现 用户友好的 API零配置所有宏自动加载一致的参数风格基于映射MAP的参数方式可组合轻松链式调用多语言支持可从 Python、R、Julia、C、Rust 等语言使用 目录安装多语言支持API 参考指南许可证致谢本扩展使用了anofox-forecastRust crate并实现了多个开源项目的算法。完整的致谢和许可证信息请参见 THIRD_PARTY_NOTICES.md。安装社区扩展安装INSTALL anofox_forecastFROMcommunity;LOADanofox_forecast;从源代码构建# 克隆仓库gitclone --recurse-submodules https://github.com/DataZooDE/anofox-forecast.gitcdanofox-forecast# 构建扩展选择其中一种方式# 此步骤需要 Rust 工具链和 CMakemakerelease -j$(nproc)# 使用 MakeGENninjamakerelease# 使用 Ninja更快# 扩展将构建到# build/release/extension/anofox_forecast/anofox_forecast.duckdb_extension M5 数据集上的快速开始在 Dell XPS 13 上预测大约需要 2 分钟。需要 DuckDB v1.5.1-- 加载扩展LOADhttpfs;LOADanofox_forecast; 多语言支持一次编写 SQL随处使用该扩展可从任何带有 DuckDB 绑定的语言中使用。语言状态说明Python✅通过 DuckDB Python 绑定R✅通过 DuckDB R 绑定Julia✅通过 DuckDB Julia 绑定C✅通过 DuckDB C 绑定Rust✅通过 DuckDB Rust 绑定Node.js✅通过 DuckDB Node 绑定Go✅通过 DuckDB Go 绑定Java✅通过 DuckDB JDBC 驱动 API 参考完整的函数签名、参数和详细文档请参见 API 参考。文档结构类别说明文档入门安装和首次预测入门指南模型选择选择合适的模型模型选择指南交叉验证评估预测精度交叉验证指南API 文档主题说明参考文档层次数据多键层次函数02-hierarchical.md统计34 个统计指标、数据质量03-statistics.md数据准备清洗、填补、过滤04-data-preparation.md周期检测季节性检测12 种方法05-period-detection.md变点检测结构断点检测06-changepoint-detection.md预测32 个预测模型07-forecasting.md交叉验证回测和交叉验证函数08-cross-validation.md评估指标12 个精度指标09-evaluation-metrics.md共形预测无分布假设的预测区间11-conformal-prediction.md特征提取117 个 tsfresh 兼容特征20-feature-extraction.md模型参考32 个模型类别模型参考文档基线模型Naive、SMA、SeasonalNaive、RandomWalkDriftbaseline/指数平滑SES、Holt、HoltWinters、SeasonalESexponential-smoothing/状态空间模型ETS、ARIMA、AutoETS、AutoARIMAstate-space/Theta 模型Theta、OptimizedTheta、DynamicTheta、AutoThetatheta/多季节性模型MFLES、MSTL、TBATS含自动变体multi-seasonal/间歇需求模型Croston、CrostonSBA、ADIDA、IMAPA、TSBintermittent/ 开发前提条件在构建之前请安装所需的依赖项Manjaro/Arch Linuxsudopacman-Sbase-devel cmake ninja openssl eigenUbuntu/Debiansudoaptupdatesudoaptinstallbuild-essential cmake ninja-build libssl-dev libeigen3-devFedora/RHELsudodnfinstallgcc-c cmake ninja-build openssl-devel eigen3-develmacOSbrewinstallcmake ninja openssl eigenWindows选项 1 - vcpkg推荐# 安装 vcpkggit clone https://github.com/Microsoft/vcpkg.git.\vcpkg\bootstrap-vcpkg.bat# 安装依赖项.\vcpkg\vcpkg install eigen3 openssl# 使用 vcpkg 工具链构建cmake-DCMAKE_TOOLCHAIN_FILE.\vcpkg\scripts\buildsystems\vcpkg.cmake.cmake--build.--config ReleaseWindows选项 2 - MSYS2/MinGW# 在 MSYS2 MinGW64 终端中pacman-Smingw-w64-x86_64-gcc mingw-w64-x86_64-cmake mingw-w64-x86_64-ninja pacman-Smingw-w64-x86_64-openssl mingw-w64-x86_64-eigen3# 然后正常构建make-j$(nproc)Windows选项 3 - WSL最简单# 在 WSL 中使用 Ubuntuwsl--install# 然后按照上面的 Ubuntu 说明操作必需项C 编译器GCC 9 或 Clang 10CMake 3.15OpenSSL开发库Eigen3线性代数库Make 或 Ninja构建系统从源代码构建# 克隆仓库包含子模块gitclone --recurse-submodules https://github.com/DataZooDE/anofox-forecast.gitcdanofox-forecast# 设置 Git 钩子推荐./scripts/setup-hooks.sh# 构建选择其中一种方式make-j$(nproc)# 使用 MakeGENninjamakerelease# 使用 Ninja更快代码质量本项目使用 Git 钩子在提交前确保代码质量cargo fmt—— 强制执行一致的代码格式cargo clippy—— 捕获常见错误并强制执行最佳实践克隆后设置钩子./scripts/setup-hooks.sh手动运行检查cargofmt--all# 格式化代码cargoclippy--workspace# 运行代码检查工具cargotest--workspace# 运行测试验证安装# 测试扩展./build/release/duckdb-c LOAD build/release/extension/anofox_forecast/anofox_forecast.duckdb_extension; SELECT 扩展加载成功 ✅ AS status; 加载扩展-- 在 DuckDB 中LOADpath/to/anofox_forecast.duckdb_extension;-- 验证所有函数是否可用SELECT*FROMTS_FORECAST(sales,date,amount,AutoETS,7,{seasonal_period:7}); 许可证商业源代码许可证 1.1BSL 1.1要点✅允许生产使用—— 在您的企业内部使用✅允许开发使用—— 用于构建应用程序✅允许研究使用—— 学术和科研用途❌不得作为托管服务提供—— 不可向第三方提供 SaaS 服务❌不得嵌入商业产品—— 禁止向第三方分发转换为 MPL 2.0—— 首次发布 5 年后自动转换完整条款请参见 LICENSE 文件。 贡献欢迎贡献请参阅 CONTRIBUTING.md 了解贡献指南。 支持文档docs/问题反馈GitHub Issues讨论交流GitHub Discussions电子邮件smdata-zoo.de 引用如果您在研究中使用本扩展请引用software{anofox_forecast, title {Anofox Forecast: Time Series Forecasting for DuckDB}, author {Joachim Rosskopf, Simon Müller, DataZoo GmbH}, year {2025}, url {https://github.com/DataZooDE/anofox-forecast} } 致谢本扩展构建在以下项目之上DuckDB —— 出色的分析数据库anofox-forecast —— 核心预测库anofox-regression —— 回归与特征提取特别感谢 DuckDB 团队使扩展成为可能Anofox 团队 ❤️ 呈献⭐如果您觉得有用请给我们点个 Star关注我们获取更新LinkedIn datazoo立即开始LOAD anofox_forecast;