ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

Darts 官方示例 Notebook 全导航:从时间序列预测到异常检测的 30+ 实战教程

Darts 官方示例 Notebook 全导航:从时间序列预测到异常检测的 30+ 实战教程 机器学习深度学习数据分析数据科学【免费下载链接】dartsA python library for user-friendly forecasting and anomaly detection on time series.项目地址https://gitcode.com/gh_mirrors/da/darts点击查看免费下载DartsTime Series Made Easy in Python是一个面向时间序列预测与异常检测的 Python 库其官方示例页面 docs/source/examples.rst 汇集了 30 多个 Jupyter Notebook覆盖数据预处理、统计模型、深度学习模型、基础模型Foundation Models、集成学习、可解释性与 MLOps 等完整主题。本文以该示例目录为主体逐类讲解每个 Notebook 的学习目标与关键代码路径并结合仓库源码说明底层实现帮助你按图索骥、快速定位适合自己场景的教程。示例集概览一份可直接运行的 Darts 学习地图示例页面是 Darts 文档体系中的实战入口所有 Notebook 均以ipynb格式存放于仓库根目录的 examples/ 目录下源码路径examples/00-quickstart.ipynb至examples/29-MLflow-examples.ipynb按主题划分为数据与预处理、经典与深度预测模型、异常检测、可解释性与 MLflow 集成等板块。这些 Notebook 与文档首页 docs/source/index.rst 中Examples卡片一一对应也与用户指南docs/userguide/互相补充用户指南讲概念与原理示例集则展示完整可运行的端到端流程。全部示例遵循同一套 API 设计哲学——正如 darts/init.py 中TimeSeries与各模型所体现的scikit-learn 风格模型统一使用fit()训练、predict()预测所有输入输出均为TimeSeries对象。因此只要掌握 examples/00-quickstart.ipynb 中构建TimeSeries、训练模型、backtest 与概率预测的基本流程即可无障碍地迁移到其他任何模型示例。一、数据基础多序列训练、协变量与数据预处理1.1 多时间序列训练与协变量01-multi-time-series-and-covariates该 Notebook 是进阶入门的核心教程讲解三个关键能力单模型训练多条序列将所有基于机器学习的模型含全部神经网络都支持在多条可多元序列上联合训练即全局模型Global Forecasting Model。预训练模型的复用用已训练好的模型对训练中未见过的序列直接预测。协变量Covariates使用包括过去观测协变量past-observed与未来已知协变量future-known的传入方式。对应源码层面全局模型的训练接口可在 darts/models/forecasting/forecasting_model.py 中的GlobalForecastingModel基类找到其fit(series, past_covariates, future_covariates, ...)签名支持传入序列列表协变量在训练与预测中的传播逻辑则由 darts/utils/data/tabularization/tabularization.py 中的 lag 化实现支撑。示例中还会用Scaler将序列归一化到 [0, 1]对应 darts/dataprocessing/transformers/scaler.py。1.2 数据预处理与流水线02-data-processing本教程系统演示 Darts 的DataTransformer抽象与Pipeline组合机制transform()所有转换器统一实现接收单个或一组TimeSeries返回转换后的结果inverse_transform()将转换结果还原用于预测后的反归一化Pipeline将多个转换器串联为可复用的数据流水线。实现证据集中在 darts/dataprocessing/transformers/base_data_transformer.py 与 darts/dataprocessing/pipeline.py。教程以月度牛奶产量数据集为例串联MissingValuesFillerdarts/dataprocessing/transformers/missing_values_filler.py、Scaler、BoxCoxdarts/dataprocessing/transformers/boxcox.py与Diffdarts/dataprocessing/transformers/diff.py并给出Pipeline.fit_transform()/inverse_transform()的完整调用链。相关单元测试可参考 darts/tests/dataprocessing/transformers/ 下的用例。1.3 静态协变量15-static-covariates静态协变量是不随时间变化的序列属性如区域、商品类别。本教程演示用pd.DataFrame定义静态协变量列代表变量、行代表序列分量通过TimeSeries.with_static_covariates()将协变量附加到现有序列静态协变量如何在多序列场景中帮助模型如TFTModel、TiDEModel改善预测。底层支持见 darts/timeseries.py 中with_static_covariates/static_covariates相关实现以及 darts/utils/data/tabularization/tabularization.py 中对静态协变量的拼接处理。测试用例位于 darts/tests/test_timeseries_static_covariates.py。1.4 迁移学习14-transfer-learning这是一个自包含的高级教程展示如何在海量序列上训练较大模型再用其预测训练阶段从未见过的全新序列。教程以月度数据为例将预测视野forecast horizon设为 18 个月与 M3/M4 竞赛一致使用多个数据集验证跨数据集泛化能力。其背后对应的是全局模型的训练-复用机制可结合 darts/models/forecasting/nbeats.pyN-BEATS等模型的fit()多序列接口理解模型学习的是跨序列的共享模式而非单个序列的局部规律。二、层次调和与超参数优化把预测做得更可用2.1 层次时间序列调和16-hierarchical-reconciliation教程使用澳大利亚国内旅游数据集AustralianTourismDataset该序列是典型的分层结构包含Total总量分量、按州NSW、VIC等、按旅行目的Hol、Bus等以及两者组合的多个分量。示例展示如何对各层级分别做预测再通过调和转换器Reconciliation让各层级的预测相加一致保证州级之和等于总量。实现位于 darts/dataprocessing/transformers/reconciliation.py数据集加载器见 darts/datasets/datasets.py 中的AustralianTourismDataset仓库自带数据文件为 datasets/australian_tourism.csv。2.2 超参数优化17-hyperparameter-optimization本教程演示如何借助 Optuna 为深度学习预测模型寻找优质超参数案例为电力负荷预测。核心流程加载电力负荷数据约 250 MB可指定multivariateFalse得到 370 条单变量序列对每个序列保留最近 80 天并转为 float32定义搜索空间如input_chunk_length、output_chunk_length、网络层数、dropout 等与目标函数运行 Optuna 调优并对比最优模型。Darts 的 Optuna 集成与相关工具见 darts/utils/model_selection.py可选依赖测试位于 darts/tests/optional_deps/test_optuna.py。结合文档 docs/userguide/hyperparameter_optimization.md 可进一步了解搜索空间定义与optuna训练器的用法。三、回归与分类模型接入 scikit-learn 生态3.1 回归模型20-SKLearnModel-examples教程以苏黎世家庭用电数据集15 分钟采样重采样为小时为案例深度演示 Darts 回归模型的进阶特性SKLearnModel、LinearRegressionModel、RandomForestModel、LightGBMModel、XGBModel等内置回归模型lags滞后值与滞后数据提取机制协变量使用output_chunk_length与multi_models参数的关系一次性多步预测 vs. 递归多步预测回归模型的样本外评估。核心实现见 darts/models/forecasting/sklearn_model.pySKLearnModel是任意 scikit-learn 兼容回归器的通用包装器与 darts/models/forecasting/regression_model.py滞后特征构建逻辑在 darts/utils/data/tabularization/tabularization.py 中实现相关测试见 darts/tests/utils/tabularization/ 与 darts/tests/models/forecasting/test_sklearn_models.py。3.2 分类模型24-SKLearnClassifierModel-examplesDarts 除回归外还提供时间序列分类模型用于预测未来的类别标签或类别概率。本教程以带趋势、季节性与噪声的合成序列小时频率、24 小时季节性为例演示SKLearnClassifierModel以及CatBoostClassifierModel、LightGBMClassifierModel、XGBClassifierModel的用法定义滞后特征、训练分类器、对序列片段或未来时刻做类别预测。分类模型与回归模型共享同一套回归器基类实现见 darts/models/forecasting/sklearn_model.py测试见 darts/tests/models/forecasting/test_classifier_model.py。四、深度学习预测模型示例矩阵示例集为 Darts 主要深度学习与经典模型各配了一个 Notebook下表汇总了每个 Notebook 的主题与对应的模型源码方便按需跳转Notebook主题对应模型源码03-FFT-examples.ipynb快速傅里叶变换FFT预测适合强季节性数据darts/models/forecasting/fft.py04-RNN-examples.ipynbRNN / LSTM / GRU 循环模型darts/models/forecasting/rnn_model.py、darts/models/forecasting/block_rnn_model.py05-TCN-examples.ipynb时间卷积网络TCNdarts/models/forecasting/tcn_model.py06-Transformer-examples.ipynbTransformer 自注意力模型darts/models/forecasting/transformer_model.py07-NBEATS-examples.ipynbN-BEATS示例为日粒度能源数据darts/models/forecasting/nbeats.py08-DeepAR-examples.ipynb概率版 RNN近似 DeepARdarts/models/forecasting/rnn_model.py09-DeepTCN-examples.ipynbDeepTCN 风格概率预测darts/models/forecasting/tcn_model.py13-TFT-examples.ipynbTemporal Fusion Transformerdarts/models/forecasting/tft_model.py18-TiDE-examples.ipynbTime-series Dense EncoderTiDEdarts/models/forecasting/tide_model.py21-TSMixer-examples.ipynb全 MLP 架构 TSMixerdarts/models/forecasting/tsmixer_model.py19-EnsembleModel-examples.ipynb集成stacking模型darts/models/forecasting/naive_ensemble_model.py、darts/models/forecasting/regression_ensemble_model.py23-Conformal-Prediction-examples.ipynb保形预测校准分位区间darts/models/forecasting/conformal_models.py其中几个值得展开说明RNN 与 DeepAR04 / 08Darts 提供两种循环模型——RNNModel完全递归预测时逐时间步输出与BlockRNNModel序列到序列块式输出RNNModel的概率版本在思想上与 DeepARarxiv:1704.04110几乎一致。示例 04-RNN-examples.ipynb 介绍两者差异08-DeepAR-examples.ipynb 则用正弦波叠加高斯噪声的合成序列演示可变噪声强度下的概率预测。TFT13TFTModel融合了原论文arxiv:1912.09363的主要组件支持过去/未来/静态三类协变量与概率预测组件实现见 darts/models/components/tft_submodels.py测试见 darts/tests/models/forecasting/test_TFT.py。TiDE 与 TSMixer18 / 21两者均为较新的编码器-解码器/全 MLP 架构。TiDE 教程将其与NHiTSModel基准对比TSMixer 教程使用 ETTh1/ETTh2 电力变压器数据集小时级、多变量负荷、油温等并与 TiDE 对比。对应实现 darts/models/forecasting/tide_model.py 与 darts/models/forecasting/tsmixer_model.pyETT 数据集加载器见 darts/datasets/datasets.py 中的ETTh1Dataset/ETTh2Dataset等数据文件在 datasets/ETTh1.csv、datasets/ETTh2.csv 等。集成模型19Darts 集成基于 stacking 技术——NaiveEnsembleModel对子模型预测取朴素聚合如均值、中位数RegressionEnsembleModel则训练一个回归器来学习子预测的最优组合。教程从 Quickstart 中的示例出发演示如何组合多个弱模型获得更稳健的预测。测试见 darts/tests/models/forecasting/test_ensemble_models.py。保形预测23ConformalNaiveModel与ConformalQRModel可以在不做分布假设的前提下为任意预训练全局模型构造有效覆盖率的校准预测区间。教程解释了保形预测的基本思想有限样本下构造有效覆盖区间并演示在 Darts 中的用法实现见 darts/models/forecasting/conformal_models.py测试见 darts/tests/models/forecasting/test_conformal_model.py。五、基础模型Foundation Models与微调5.1 基础模型25-FoundationModel-examplesDarts 通过FoundationModel统一封装无需训练即可预测的基础模型示例集收录了多个Chronos2Modeldarts/models/forecasting/chronos2_model.pyTimesFM2p5Model/TimesFM3Modeldarts/models/forecasting/timesfm2p5_model.py、darts/models/forecasting/timesfm3_model.pyTiRexModeldarts/models/forecasting/tirex_model.pyPatchTSTFMModeldarts/models/forecasting/patchtst_fm_model.py。这些模型背后的权重通过 Hugging Face 连接器加载见 darts/models/components/huggingface_connector.py。仓库测试中内置了微型版本权重用于离线验证如 darts/tests/models/forecasting/artefacts/ 下的tiny_chronos2、tiny_timesfm2p5、tiny_timesfm3等目录相关测试见 darts/tests/models/forecasting/test_foundation.py。5.2 PyTorch 与基础模型微调27-Torch-and-Foundation-Model-Fine-Tuning-examples本教程覆盖两类场景常规 PyTorch 模型的保存、加载与继续训练save/load/fine-tune基础模型的微调——以 Air Passengers 与澳大利亚啤酒产量两条短序列演示预训练后在新数据上的适配。Darts 模型序列化依赖 PyTorch 生态保存/加载逻辑可追溯至 darts/models/forecasting/torch_forecasting_model.py 中的save()/load()接口深度学习模型统一基于 PyTorch Lightning 训练darts/models/forecasting/pl_forecasting_module.pyGPU/TPU 训练细节见用户指南 docs/userguide/gpu_and_tpu_usage.md。六、滤波、DTW 与异常检测6.1 滤波模型10 / 11示例集收录 Darts 的三类滤波模型中的两个Kalman 滤波10-Kalman-filter-examples.ipynb演示用 Kalman 滤波改善受白噪声污染的信号质量包括一阶系统阶跃响应场景实现见 darts/models/filtering/kalman_filter.py基于卡尔曼滤波与 N4SID 系统辨识另见 darts/models/forecasting/kalman_forecaster.py 用于预测。高斯过程滤波11-GP-filter-examples.ipynb对带噪正弦波拟合高斯过程实现滤波实现见 darts/models/filtering/gaussian_process_filter.py。两者与MovingAverageFilterdarts/models/filtering/moving_average_filter.py的通用接口一致测试见 darts/tests/models/filtering/test_filters.py。6.2 动态时间规整 DTW12-Dynamic-Time-Warping-example教程演示如何用 DTW 比较两条长度不同的时间序列并以月度太阳黑子数据datasets/monthly-sunspots.csv为例重采样去除高频噪声展示对齐效果与代价矩阵可视化。Darts 的 DTW 实现在 darts/dataprocessing/dtw/ 目录下dtw.py核心算法、cost_matrix.py代价矩阵构建、window.py窗口约束与_plot.py可视化测试见 darts/tests/dataprocessing/dtw/test_dtw.py。6.3 异常检测22-anomaly-detection-examples这是darts.ad模块的专题教程系统覆盖四大组件对应 darts/ad/init.pyScorers评分器计算异常分数如KMeansScorer、NormScorer、PyODScorer等实现见 darts/ad/scorers/Detectors检测器将分数转为二元异常序列如QuantileDetector、ThresholdDetector实现见 darts/ad/detectors/Aggregators聚合器用布尔逻辑合并多个二元序列如AndAggregator、OrAggregator、EnsembleSklearnAggregator实现见 darts/ad/aggregators/Anomaly Models异常模型将任意 Darts 预测/滤波模型包装为异常检测模型ForecastingAnomalyModel/FilteringAnomalyModel实现见 darts/ad/anomaly_model/。教程中以KMeansScorer为例展示了完整的评分-检测两段式流程。从源码看darts/ad/scorers/kmeans_scorer.pyKMeansScorer(window5, k2)会用长度为window的滑动窗口把序列切分为若干子序列在每个窗口对应的W×D维向量空间上训练 k-means 模型评分时返回各向量到最近簇中心的距离作为异常分数QuantileDetector(high_quantile0.99)darts/ad/detectors/quantile_detector.py则在fit()阶段计算历史数据的指定分位数作为上下阈值内部委托给ThresholdDetector完成二元判定。异常检测架构图与更细的分模块说明可参见文档 docs/userguide/faq.md 及示例目录中的配图如 examples/static/images/ad_4_sub_modules.png、examples/static/images/ad_inside_anomaly_model.png、examples/static/images/ad_windowing.png。相关测试覆盖见 darts/tests/ad/。七、可解释性与 MLOps走向生产7.1 可解释性28-Explainability-examples示例演示 Darts 的可解释性模块通过 SHAP 值解释部分预测模型回答模型为何在明早预测出尖峰哪个滞后值最重要协变量如何影响预测等问题。ShapExplainer同时支持 PyTorch 模型darts/explainability/shap_adapters/torch_shap_adapter.py与 scikit-learn 模型darts/explainability/shap_adapters/sklearn_shap_adapter.py核心类位于 darts/explainability/shap_explainer.pyTFT 模型另有专门解释器 darts/explainability/tft_explainer.py。测试见 darts/tests/explainability/。7.2 MLflow 集成29-MLflow-examples教程展示 Darts 原生 MLflow 集成的完整 MLOps 工作流启用 autolog、对比多个预测模型、将最优模型注册到 Model Registry 并部署。核心工具为 darts/utils/mlflow.py示例中通过 SQLite 后端与临时目录实现自包含运行run 元数据进 SQLite、产物进本地 artifact 目录。可选依赖测试见 darts/tests/optional_deps/test_mlflow.py配套截图如 examples/static/images/mlflow_experiments_overview.png、examples/static/images/mlflow_models_overview.png展示了实验对比与模型注册界面。八、如何在本仓库运行这些示例所有 Notebook 均为标准 Jupyter Notebook 格式建议按以下步骤在本地环境运行准备环境安装 Python 3.11并安装 Darts 及其 Notebook 依赖pip install darts jupyter matplotlib深度学习示例还需 PyTorch安装细节见 INSTALL.md。启动 Jupyter在仓库根目录执行jupyter notebook或jupyter lab在examples/目录下选择目标 Notebook 打开。设置本地路径多数 Notebook 开头会调用examples/utils/utils.py中的fix_pythonpath_if_working_locally()来修正本地运行时 Python 路径该工具函数位于 examples/utils/utils.py保持默认即可。按序执行单元格示例依赖链较短各 Notebook 相互独立可单独运行涉及联网下载数据集的教程如 17、22 等首次运行会自动下载并缓存数据缓存目录默认为~/.darts/datasets/见 darts/datasets/dataset_loaders.py 中DatasetLoader._DEFAULT_DIRECTORY。免 Notebook 环境运行也可用jupyter nbconvert --to script examples/notebook.ipynb将 Notebook 导出为 Python 脚本后直接执行。仓库自带的公开数据集datasets/ 下的 CSV 文件由darts.datasets子模块按需下载/加载各数据集类定义见 darts/datasets/datasets.py例如AirPassengersDatasetdatasets/AirPassengers.csv、ETTh1Dataset/ETTh2Dataset、AustralianTourismDatasetdatasets/australian_tourism.csv等便于快速复现示例中的场景。九、示例集的使用建议与进阶路线结合示例页面的目录结构与仓库源码可以按以下路线高效使用这套教程入门先跑 examples/00-quickstart.ipynb掌握TimeSeries构建from_dataframe/from_values等工厂方法、fit()/predict()流程、backtest 与概率预测绘图数据工程依次学习 examples/02-data-processing.ipynb 与 examples/15-static-covariates.ipynb理解转换器、流水线与静态协变量模型选型根据数据特征选择对应 Notebook——强季节性用 FFT/Theta 类03多变量多协变量用 TFT13、TiDE18或 TSMixer21快速基线用回归模型20免训练场景用基础模型25生产化结合 17、23、28 与 29依次解决调参、不确定性量化、可解释性与实验管理领域专项异常检测场景直接对照 22滤波/信号处理对照 10 与 11序列对齐需求查看 12。总之docs/source/examples.rst 这份示例索引是 Darts 从文档概念走向可运行实战的最佳入口——每个 Notebook 都对应仓库中真实的模型实现与测试用例阅读示例的同时对照源码darts/models/、darts/dataprocessing/、darts/ad/ 等目录与测试darts/tests/可以最快建立API 用法 → 底层原理 → 验证手段的完整认知闭环。赞分享机器学习深度学习数据分析数据科学【免费下载链接】dartsA python library for user-friendly forecasting and anomaly detection on time series.项目地址https://gitcode.com/gh_mirrors/da/darts点击查看免费下载相关推荐从0到1掌握MEDIUM_NoteBook30时间序列与异常检测实战教程从0到1掌握MEDIUM_NoteBook30时间序列与异常检测实战教程 引言为什么这个仓库能彻底改变你的数据科学实战能力 你是否还在为以下问题困扰RD-Agent AutoRL-Bench让大模型自主驱动 RL 训练小模型的评测框架RD Agent AutoRL Bench让大模型自主驱动 RL 训练小模型的评测框架 AutoRL Bench 是 RD Agent 仓库中面向大模型驱动机器学习深度学习数据分析数据科学从零开始掌握Darts时间序列预测与异常检测的终极指南从零开始掌握Darts时间序列预测与异常检测的终极指南 Darts时间序列预测库是Python生态中一个功能强大的工具专为处理复杂的时间序列数据而设计。无论上一篇SRA Toolkit 开源项目常见问题解决方案下一篇错误恢复机制Agent-Skills-for-Context-Engineering内存系统容错设计创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表