
sktime 版本演进指南从 Changelog 读懂 1.x 系列 API 变更与能力升级路线【免费下载链接】sktimeA unified framework for machine learning with time series项目地址: https://gitcode.com/GitHub_Trending/sk/sktime本文以仓库中的 docs/source/changelog.rst 为骨架系统梳理 sktime 1.0 至今的版本脉络重点解读估计器能力标签capability tags重构、全局预测与预训练 APIpretrain、基准测试目录catalogue框架、依赖与弃用变更等核心主题并结合仓库源码验证关键实现。读完本文你将掌握如何在升级 sktime 时迁移第三方估计器代码、如何通过新标签查询与检索估计器能力以及如何借助新 API 组织大规模基准测试。一、Changelog 文档的结构与阅读方法docs/source/changelog.rst是 sktime 官方变更日志的唯一权威文档覆盖从 0.11.x 到 1.1.0 的全部发布记录严格遵循Keep a Changelog格式与语义化版本Semantic Versioning约定。文档顶部声明格式基于Keep a Changelog版本号遵循SemVer v2.0.0所有版本的源代码均可从官方 Releases 获取文档提供了:ref:roadmap 指向长期规划文档对应 docs/source/roadmap.rst用于理解未来演进方向。每条发布记录通常按固定小节组织这是快速定位变更的关键小节含义读者对象Highlights本次发布的功能亮点新估计器、新 API、重大能力所有用户Dependency changes核心/软依赖的版本边界调整部署与安装维护者Core interface changes破坏性 API 变更通常在 major/minor 版本所有用户、第三方估计器维护者Deprecations and removals已弃用或已删除的标签、模块、API第三方估计器维护者Enhancements按模块分类的增强[ENH]开发者Fixes按模块分类的缺陷修复[BUG]开发者Contributors本版本贡献者名单社区从文档内容看sktime 的发布节奏密集1.0.02026-06-11作为 major 版本引入大量破坏性变更后紧接着 1.0.12026-06-11修复 readthedocs 文档构建问题1.0.22026-07-26集中补充基础模型1.1.02026-07-28执行了 1.0.0 预告的系列弃用。这一节奏也印证了其小步快跑、定期弃用的维护策略。二、1.0.0能力标签体系的重构里程碑版本 1.0.0 是文档中标注的Major release with some breaking API improvements其最核心的变更集中在估计器能力标签estimator tags体系的重构。理解这套标签体系对检索估计器、构建流水线以及迁移第三方估计器都至关重要。2.1 能力标签的语义翻转迁移从 0.39.0 开始预告、1.0.0 正式生效的标签变更核心逻辑是旧标签描述不能做什么新标签描述能做什么并对布尔语义做了翻转旧标签新标签语义翻转规则ignores-exogeneous-Xcapability:exogenousTrue → True旧为 True 表示忽略外生变量新为 True 表示可处理外生变量univariate-onlycapability:multivariateFalse ↔ True翻转旧 True 表示仅支持单变量新 True 表示支持多变量scitype:y预测器专用capability:multivariate旧值univariate→Falsemultivariate/both→True文档明确给出了旧标签在 1.0.0 的过渡期行为旧标签在 1.0.0 中仍可作为别名使用但会发出警告从 1.1.0 起访问旧标签将直接抛出异常。到 1.1.0 时ignores-exogeneous-X与univariate-only已被彻底移除。这些标签在源码中的定义集中在 sktime/registry/_tags.py。例如capability:exogenous约 sktime/registry/_tags.py#L1006-L1030声明该预测器是否使用外生数据值为True时表示可处理外生变量capability:multivariate约 sktime/registry/_tags.py#L1395-L1420声明是否支持多变量数据capability:pretrain约 sktime/registry/_tags.py#L1163-L1188声明预测器是否支持预训练。对第三方估计器维护者的迁移要点将代码中的ignores-exogeneous-X改为capability:exogenous、univariate-only/scitype:y改为capability:multivariate并按上表翻转布尔值或映射取值。同时 1.0.0 还删除了旧标签python_dependencies_alias、univariate-metric以及预测器的capability:pred_var。2.2 检测器类型与模块结构调整1.0.0 还完成了两项结构性清理旧的估计器类型series-annotator用于特定检测器在弃用期结束后被移除统一并入伞形标签detector由于skchange停止作为独立包维护其核心检测算法全部并入sktime.detection对应目录 sktime/detection如 PELT、Binseg、ClaSP、E-agglo、GGS 等算法现均直接位于sktime.detection子模块detection与transformations模块目录结构被扁平化原sktime.transformations.series.[module]与sktime.transformations.panel.[module]路径不再存在应直接使用sktime.transformations.[module]。旧导入路径在最后一个 1.X 版本前仍可用对应结构调整可参考 sktime/transformations 目录各变换器已直接置于一级子模块中。2.3fh整数语义变更与全局预测 API1.0.0 引入的另一个易被忽略但影响日常使用的行为变更向预测器传入整数fh现在被解释为range(1, fh1)。例如fh3将预测未来 3 个周期等价于fh[1, 2, 3]或fhrange(1, 4)。这对所有调用方都是显式且符合直觉的改进此前整数fh的语义是单一步长。与此同时1.0.0 正式引入了预测器的预训练pretrainAPI新增pretrain方法是预测器的程序化预训练入口源码位于 sktime/forecasting/base/_base.py#L1069全局预测器以capability:pretrain标签标记可通过pretrain在全局训练数据上预训练且后续不会对这些数据通过predict查询预测所有预测器都具备pretrain方法但对capability:pretrainFalse的估计器是空操作no-op预训练状态由_pretrained_attrs机制管理sktime/forecasting/base/_base.py#L1188-L1200在克隆如交叉验证时与重复fit调用时会被保留相关修复见 1.0.2 的 [BUG] Preserve pretrained state across repeatedfitcalls。配套地1.0.0 新增capability:non_contiguous_X布尔标签约 sktime/registry/_tags.py#L1229-L1268描述预测器在predict中能否处理非连续的未来已知外生数据XForecastX组合器直接针对该标签工作。2.4 新对象类型Catalogue目录1.0.0 引入新的对象类型catalogue基类为BaseCatalogue源码位于 sktime/catalogues/base/_base.py#L15。目录可包含估计器、指标、数据集的集合并能原生传递给 sktime 基准测试框架从而轻松搭建预定义基准例如M4 预测竞赛目录M4 Forecasting Competition CataloguePR #9246TSC Bake Off 2017 目录TSC Bake Off 2017 CataloguePR #9138。同时benchmark.add现在支持传入估计器的list或dict结合 1.0.2 新增的 results analyzers策略模式与崩溃安全的结果存储与续跑crash-safe result storage and resuming能力sktime 的 v2 基准测试框架已具备搭建大规模、可恢复实验的基础设施相关模块见 sktime/benchmarking 与 sktime/catalogues。2.5 扩展模板与基类契约调整1.0.0 对所有估计器的扩展模板做了精炼新增__dynamic_tags__与__post_init__两个方法并明确职责边界构造器__init__只负责把__init__参数赋值给self动态标签只能在__dynamic_tags__中设置其他轻量初始化逻辑应在__post_init__或_fit开头执行。这与构造器后置校验、动态标签分离的设计一致仓库中的扩展模板如 extension_templates/forecasting.py、extension_templates/transformer.py已同步更新供第三方扩展者参考。2.6 依赖边界调整1.0.0核心依赖scikit-base最低版本升至1.0numpy 2.5、pandas 3.0、scipy 2.0all_extras依赖集合被大幅精简不再包含任何估计器专属的可选依赖只保留可选框架依赖估计器专属依赖迁移到python_dependencies标签中按估计器逐个安装。三、1.0.2基础模型Foundation Model集中落地1.0.22026-07-26的 Highlights 清晰地展示了 sktime 在时序基础模型方向上的扩展力度一次发布新增了 8 个基础模型预测器模型类型/来源仓库落地Aurora多模态基础模型预测器sktime/forecasting/aurora.pyCisco TSFM基础模型预测器sktime/forecasting/cisco_tsm.pyFalcon-X基础模型预测器sktime/forecasting/falcon_x.pyMIRA医疗时序基础模型Microsoftsktime/forecasting/mira.pyMoirai 2.0基础模型预测器两版sktime/forecasting/moirai.py、sktime/forecasting/moirai2.pySundial基础模型预测器Thumlsktime/forecasting/sundial.pyToto-2.0基础模型预测器sktime/forecasting/toto2.pyWindFM基础模型预测器sktime/forecasting/windfm.py此外 1.0.2 还包含Arps 递减曲线分析Decline Curve Analysis预测器PR #10258用于油气产量递减建模并在 sktime/forecasting/arps_dca.py 中通过Empirical分布实现了_predict_probaEvoForestTSWM变换器冻结闭式特征提取器sktime/transformations/evoforest_tswm.py时序回归的model_evaluation与RegressionBenchmarkPR #10409MiniRocketMultivariateCythonCython无 numba实现的多变量 MiniRocket 变换无 JIT 预热、变换更快并通过n_jobs支持可选的线程并行HyperTreeNetARForecaster来自hypertrees-forecastingsktime/forecasting/autots.py 同目录的hypertrees子模块Chen Yang (2004) 预测精度指标OWA 类指标族PR #9364。从 Enhancements 列表还可以观察到 1.0.2 的基础设施化趋势TinyTimeMixerForecaster更新了新模型支持与预训练能力、Momentfm加入缓存与惰性加载、多个预测器FlowState、TimerS1通过HistogramQPD实现一致的predict_proba、以及参数依赖标签在super().__init__()之前被丢弃的修复等。四、1.1.0按计划执行弃用Scheduled Deprecations1.1.02026-07-28是文档标注的Minor release with scheduled deprecations and changes其核心是兑现 1.0.0 预告的弃用清单ignores-exogeneous-X标签被移除由capability:exogenous取代语义翻转True表示可处理外生变量univariate-only标签被移除更名为capability:multivariate布尔翻转预测器的scitype:y标签被移除更名capability:multivariate取值映射为univariate→False、multivariate/both→True。迁移清单适用于所有第三方估计器维护者# 旧写法1.1.0 起访问将报错 # _tags {ignores-exogeneous-X: False, univariate-only: True, scitype:y: multivariate} # 新写法1.1.0 标准 _tags { capability:exogenous: True, # 语义翻转True 可处理外生变量 capability:multivariate: True, # 布尔翻转True 可处理多变量数据 capability:pretrain: True, # 支持预训练如为全局预测器 }同时1.1.0 将旧版全局预测 APIpredict中传入y移除统一走新的pretrain全局预测 APIcapability:global_forecasting标签进入弃用通道并将在 1.2.0 移除在此之前访问会发出警告用户应改用capability:pretrain标签。需要特别注意的是由于旧版各版本同时存在两个标签标签查询不会被重定向——因此依赖该标签做检索的代码务必尽快迁移。五、标签体系演进全览0.39 → 1.1将多个版本串联起来可以看到能力标签体系的一条完整演进时间线版本标签相关变更0.39.0预告capability:exogenous/capability:multivariate取代旧标签新增capability:random_state布尔是否有random_state参数与property:randomness字符串deterministic/stochastic/derandomized变换器capability:categorical_in_X默认改为True新增capability:categorical_in_y默认True1.0.0旧标签进入别名警告过渡期新增capability:pretrain、capability:non_contiguous_X删除python_dependencies_alias、univariate-metric、capability:pred_var1.1.0旧标签ignores-exogeneous-X、univariate-only、scitype:y彻底移除访问抛异常capability:global_forecasting进入弃用通道1.2.0 移除这套标签不仅服务于文档还驱动了测试框架文档中大量条目如 Move X test skip config fromtests._configto estimator tags 表明sktime 正在把按估计器的测试跳过规则从集中式配置迁移到估计器标签如tests:vm、tests:specific从而让估计器自描述其测试需求。六、版本演进揭示的三大工程主题6.1 模块扁平化与依赖收敛从 1.0.0 的transformations/detection扁平化到 0.39.0 移除dtaidistance、filterpy、mne、seasonal、stumpy、tbats等软依赖、再到 1.0.0 精简all_extras并移除sktime.libs.pykalman改由pykalman包维护sktime 持续收敛依赖面与内部库。python_dependencies标签成为按需安装估计器专属依赖的推荐通道对应工具registry.deps可用于在运行时安装缺失依赖。6.2 torch 原生化1.0.0 的大量 Enhancements 显示时序分类器TSC与回归器TSR已全面迁移到原生 torch 实现MCDCNN、MLP、LSTMFCN、InceptionTime、TapNet、MACNN、CNN、RNN、ConvTran 等均有 torch 版本支持torchmetrics评估指标、统一的激活函数配置activation/activation_*并在 0.39.0 开始允许配置大部分深度学习估计器的激活函数。6.3 测试框架的标签驱动化CI/测试侧的演进同样明显引入tests:vm、tests:specific、tests:libs标签新增对跨模块导入的 pytest 检查见 sktime/tests/test_cross_module_imports.py分类器、预测器、变换器分别配备每周完整性抽查weekly spot test新增估计器的 deepcopy 支持检查PR #10497。七、给升级者的实操建议综合 changelog 全文从 0.x 升级到 1.1.x 的代码迁移优先级建议如下标签迁移最高优先级把所有_tags中的旧标签替换为新标签并翻转语义1.1.0 起访问旧标签直接抛异常不能依赖警告过渡期全局预测迁移将predict(y...)的旧用法改为pretrain(...) 后续predict的标准流程并改用capability:pretrain标签做能力判断fh语义确认检查代码中整数fh的用法确认符合range(1, fh1)的新语义模块导入路径更新将sktime.transformations.series.*/.panel.*等旧路径改为扁平化后的直接导入依赖安装策略调整不再依赖all_extras覆盖全部估计器依赖按估计器的python_dependencies标签逐个安装利用 Catalogue 组织基准搭建 M4、TSC Bake Off 等预定义基准时优先使用BaseCatalogue与 v2 benchmarking 框架benchmark.add支持 list/dict 估计器、崩溃安全存储与续跑、结果分析器。相关延伸阅读扩展模板见 extension_templates尤其 forecasting/classification/transformer标签注册表见 sktime/registry/_tags.py基类契约见 sktime/forecasting/base/_base.py 与 sktime/base版本配套的 Docker 镜像与依赖脚本见 build_tools。【免费下载链接】sktimeA unified framework for machine learning with time series项目地址: https://gitcode.com/GitHub_Trending/sk/sktime创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考