更新日志#

本文件将记录此项目的所有显著变更。我们从v0.4.0开始在此文件中跟踪变更。格式基于 Keep a Changelog ,并且我们遵循 Semantic Versioning 。所有 releases 的源代码在GitHub上可用。

备注

要了解 sktime 的最新发布,请在此处订阅 sktime here 或在 LinkedIn 上关注我们。

关于即将到来的变更和下一个版本,请参阅我们的 里程碑。关于我们的长期计划,请参阅我们的 路线图

版本 0.33.1 - 2024-09-26#

为在巴黎的pydata展示会准备的小功能发布。

亮点#

依赖项更改#

  • optuna (超参数优化软依赖) 的版本限制已更新为 <4.1

  • mne (变换软依赖) 的版本限制已更新为 >=1.5,<1.9

增强功能#

BaseObject 和基础框架#

  • [ENH] is_scitype 用于类型检查的实用工具,改进对具有多种对象类型的估计器的支持 (#7143) @benHeid

数据类型、检查、转换#

  • [ENH] 为 polars 添加层次化 scitype 支持 (#6697) @pranavvp16

  • [ENH] 将 datatypes 示例固定装置重构为 BaseObject 类 (#7133) @fkiraly

预测#

时间序列异常、变化点、分段#

变换#

  • [ENH] 日志记录管道的输入和输出记录器转换器 (#7074) @fkiraly

文档#

维护#

修复#

预测#

变换#

  • [BUG] 修复 drop_na 并更新 Differencer 转换的模式 (#7115) @fkiraly

测试框架

贡献者#

@ankit-1204, @benHeid, @ericjb, @fkiraly, @pranavvp16, @SaiRevanth25, @Saptarshi-Bandopadhyay, @XinyuWuu, @yarnabrina

版本 0.33.0 - 2024-09-09#

维护版本,包含计划中的弃用和变更操作。

有关最新的非维护内容更新,请参见 0.32.4 和 0.32.2。

依赖项更改#

  • scikit-base (核心依赖) 的版本限制已更新为 >=0.6.1,<0.10.0

  • holidays (转换软依赖) 的版本限制已更新为 >=0.29,<0.57

  • pykan (深度学习软依赖) 的版本限制已更新为 >=0.2,<0.2.7

  • mne (变换软依赖) 的版本限制已更新为 >=1.5,<1.9

  • dask``(数据容器和并行化后端软依赖)的版本限制已更新为 ``<2024.8.3

  • pytorch-forecasting (预测软依赖) 的版本限制已更新为 >=1.0.0,<1.2.0

弃用和移除#

  • DirectReductionForecaster 中,windows_identical 的默认值已更改为 False

维护#

  • [MNT] 尝试减少运行器的负载 (#7061) @benHeid

  • [MNT] 0.33.0 弃用和变更操作 (#7091) @fkiraly

  • [MNT] ffp3 数据集的 URL 在 CRAN 上更改;相应地更新了 _fpp3_loaders.py (#7084) @ericjb

  • [MNT] 移除 pytorch-forecasting 的 <3.11 限制,添加上限 (#7092) @fkiraly

  • [MNT] [Dependabot](deps): 将 dask 要求从 <2024.8.2 更新到 <2024.8.3 (#7062) @dependabot[bot]

  • [MNT] [Dependabot](deps): 将 numpy 要求从 <2.1,>=1.21 更新为 >=1.21,<2.2 (#7007) @dependabot[bot]

  • [MNT] [Dependabot](deps): 将 scikit-base 要求从 <0.9.0,>=0.6.1 更新为 >=0.6.1,<0.10.0 (#7035) @dependabot[bot]

  • [MNT] [Dependabot](deps): 将 holidays 要求从 <0.56,>=0.29 更新为 >=0.29,<0.57 (#7096) @dependabot[bot]

  • [MNT] [Dependabot](deps): 将 pykan 要求从 <0.2.2,>=0.2 更新为 >=0.2,<0.2.7 (#7010) @dependabot[bot]

  • [MNT] [Dependabot](deps): 将 mne 要求从 <1.8,>=1.5 更新为 >=1.5,<1.9 (#7004) @dependabot[bot]

文档#

增强功能#

  • [ENH] 将 test_inheritance 改为对框架级扩展更宽容 (#7067) @fkiraly

贡献者#

@benHeid, @ericjb, @fkiraly, @SaiRevanth25, @Saptarshi-Bandopadhyay

版本 0.32.4 - 2024-09-06#

小功能和修复版本,适用于:

  • colab 兼容性,针对 polars 依赖不兼容的热修复

  • skchange 第三方集成的兼容性

  • 对异常、变化点、分割框架的改进

  • 与即将到来的 sktime 选举相关的文档更新

核心接口变更#

  • 引入了一个科学类型适应框架,允许通过类型强制在另一种类型的插槽中使用一种类型的估计器。当前,强制框架涵盖了 sklearnskprosktime 估计器,并且是可扩展的。为这种强制提供了一个用户和开发者的简写,即 registry.coerce_scitype 函数,该函数分派到各个强制机制。

  • 产生聚类分配的时间序列聚类器可以被强制转换为转换,从而使其能够在任何转换管道的槽位中使用。

  • 异常和变化点检测器现在可以与转换器管道化,从而形成一个检测器。Dunder 连接 transformer * detector 将默认为此。

  • 异常和变化点检测器可以被强制转换为变换,从而使它们能够在任何变换管道的槽位中使用。

增强功能#

BaseObject 和基础框架#

  • [ENH] 将注册表与基础模块解耦,为估计器类型的文档记录特定科学类型的数据记录 (#6998) @fkiraly

  • [ENH] 科学类型强制转换和检查工具 (#6969) @fkiraly

时间序列异常、变化点、分段#

  • [ENH] 为评估变化点检测算法添加填充F1分数 (#7034) @Alex-JG3

  • [ENH] 对 BaseSeriesAnnotator 基类的改进,用于异常、变化点和分段 (#7073) @fkiraly

  • [ENH] 异常、变化点检测器和分割器的管道 (#7071) @fkiraly

  • [ENH] 强制使用时间序列异常、变化点检测器作为转换器 (#7072) @fkiraly

时间序列聚类#

  • [ENH] 启用聚类器作为转换,启用 TransformSelectForecaster 使用聚类器进行组选择 (#7068) @fkiraly

变换#

文档#

修复#

  • [BUG] 修复 sktime 在旧版 polars 版本中的崩溃问题 (#7057) @fkiraly

  • [BUG] 当 forecaster_X_exogeneous 设置为 "complement" 时修复 ForecastX.update (#7041) @fnhirwa

  • [BUG] 修复 ExpandingCutoffSplitterfh 不连续的情况 (#7053) @ninedigits

贡献者#

@Alex-JG3, @fkiraly, @fnhirwa, @geetu040, @ninedigits, @phoeenniixx, @Saptarshi-Bandopadhyay, @wirrywoo

版本 0.32.3 - 2024-08-27#

包含修复预测管道html表示错误的紧急修复版本。

有关最新的非维护内容更新,请参阅 0.32.2。

内容#

  • [BUG] 修复 TransformedTargetForecasterForecastingPipeline 的 HTML 显示

版本 0.32.2 - 2024-08-26#

亮点#

依赖项更改#

  • holiday (变换软依赖) 的版本限制已更新为 >=0.29,<0.56

  • dask (数据容器和并行化后端) 的版本限制已更新为 <2024.8.2

核心接口变更#

已经为聚类器添加了新标签,以表征分配聚类中心的能力。添加了以下布尔标签:

  • capability:predict,聚类器是否可以通过 predict 分配聚类标签

  • capability:predict_proba,用于概率性聚类分配

  • capability:out_of_sample,用于样本外集群分配。如果为 False,聚类器只能将集群分配给拟合期间见过的数据点。

增强功能#

BaseObject 和基础框架#

数据集和数据加载器#

  • [ENH] 从研讨会生成的层次销售玩具数据生成器 (#6953) @marrov

  • [ENH] 在 load_m5 中将日期列转换为每日频率的周期 (#6990) @SaiRevanth25

数据类型、检查、转换#

预测#

时间序列聚类#

变换#

文档#

  • [DOC] 对 Bollinger (bands) 的文档字符串进行了小幅改进 (#6978) @fkiraly

  • [DOC] 更新 .all-contributorsrc 以包含委员会角色 (#6962) @fkiraly

  • [DOC] 更新估计器的软依赖处理指南 (#7000) @fkiraly

  • [DOC] 改进了面板任务的文档字符串 - 时间序列分类、回归、聚类 (#6991) @fkiraly

  • [DOC] 更新 XinyuWuu 的用户名 (#7030) @fkiraly

  • [DOC] 修复 TransformedTargetForecaster 文档字符串 (#7002) @fkiraly

  • [DOC] 使用来自 ISF 和 EuroSciPy 2024 的材料更新介绍笔记本 (#7013) @fkiraly

  • [DOC] 修复 ExpandingCutoffSplitter 的文档字符串 (#7033) @ninedigits

  • [DOC] 修复 EnbPIForecaster 文档字符串中的错误导入 (#7015) @fkiraly

维护#

  • [MNT] 重构 show_versions 以使用 dependencies 模块 (#6883) @fkiraly

  • [MNT] 与热修复分支 anirban-sktime-0.31.2 同步变更日志 (#6963) @yarnabrina

  • [MNT] 在 pmdarima 依赖中添加 numpy 2 不兼容标志 (#6974) @fkiraly

  • [MNT] 使用 numpy 2 跳过 test_auto_arima 的装饰,直到最终修复/诊断 (#6973) @fkiraly

  • [MNT] 从公共依赖集中移除 tsbootstrap 依赖 (#6966) @fkiraly

  • [MNT] 将基类 TimeSeriesLloyds 重命名为 BaseTimeSeriesLloyds (#6992) @fkiraly

  • [MNT] 移除模块级别的 numba 导入警告 (#6999) @fkiraly

  • [MNT] 基于 esig 的估计器:添加 numpy<2 约束 (#7036) @fkiraly

  • [MNT] [Dependabot](deps): 将 tj-actions/changed-files 从 44 升级到 45 (#7019) @dependabot[bot]

  • [MNT] [Dependabot](deps): 将 holidays 要求从 <0.55,>=0.29 更新为 >=0.29,<0.56 (#7006) @dependabot[bot]

  • [MNT] [Dependabot](deps): 将 dask 要求从 <2024.8.1 更新到 <2024.8.2 (#7005) @dependabot[bot]

修复#

BaseObject 和基础框架#

  • [BUG] 修复 test_softdep_error 依赖处理,检查环境标记标签是否不满足 (#6961) @fkiraly

  • [BUG] 修复在环境中存在多个发行版时(例如在 Databricks 上)的依赖检查器 (#6986) @fkiraly, @toandaominh1997

基准测试和指标#

  • [BUG] 修复 ForecastingBenchmark 在数据加载器返回元组 (y, X) 时出错的问题 (#6971) @SaiRevanth25

数据集和数据加载器#

数据类型、检查、转换#

  • [BUG] 修复 nested_univ 转换器对索引级别名称处理不一致的问题 (#7026) @pranavvp16

预测#

  • [BUG] TinyTimeMixerForecaster: 修复截断索引并更新 test_params (#6965) @geetu040

  • [BUG] 不要在 Prophet 中将季节条件名称作为额外的回归变量添加 (#6988) @wpdonders

  • [BUG] 修复当时间序列恒定时 Prophet _get_fitted_params 错误 (#7011) @felipeangelimvieira

贡献者#

@Abhay-Lejith, @felipeangelimvieira, @fkiraly, @geetu040, @marrov, @meraldoantonio, @ninedigits, @pranavvp16, @SaiRevanth25, @shlok191, @toandaominh1997, @wirrywoo, @wpdonders, @yarnabrina

版本 0.32.1 - 2024-08-12#

使用 make_reduction 时,针对不完全符合 sklearn 规范的表格回归器(如来自 catboost 的回归器)的热修复发布。

有关最后的非维护内容更新,请参见 0.31.1。

内容#

  • [BUG] 修复 make_reduction 对非 sklearn 估计器的类型推断

版本 0.32.0 - 2024-08-11#

维护版本,包含计划中的弃用和变更操作。

有关最后的非维护内容更新,请参见 0.31.1。

依赖项更改#

  • skpro (软依赖) 的版本限制已更新为 >=2,<2.6.0

  • skforecast``(预测软件依赖)的版本限制已更新为 ``<0.14.0

核心接口变更#

  • 所有 sktime 估计器和对象现在都需要在 get_test_params 中至少有两个测试参数集,以符合 check_estimator 合同测试的要求。这一要求之前在扩展模板中有所提及,但并未强制执行。现在,它也通过 check_estimator 包含在自动化测试中。没有(未保留的)参数的估计器,即无法设置两个不同参数集的情况,则不在此要求之列。

弃用和移除#

  • sktime 0.38.0 开始,预测器的 predict_proba 将需要 skpro 存在于 Python 环境中,以便使用分布对象来表示分布预测。直到 sktime 0.35.0predict_proba 将继续在没有 skpro 的情况下工作,如果 skpro 不存在,则默认返回 sktime.proba 中的对象。从 sktime 0.35.0 开始,如果在环境中没有找到 skpro,调用预测器的 predict_proba 时将引发错误。使用预测器 predict_proba 的用户应确保在环境中安装了 skpro

  • 概率分布模块 sktime.proba 已被弃用,并将在 sktime 0.38.0 中完全被 skpro 取代。直到 sktime 0.38.0,从 sktime.proba 的导入将继续工作,如果 skpro 不存在,则默认为 sktime.proba,否则将导入重定向到 skpro 对象。从 sktime 0.35.0 开始,如果环境中不存在 skpro,则会引发错误,否则导入将被重定向到 skpro。直接或间接使用 sktime.proba 的用户应确保在环境中安装了 skpro。此外,直接使用 sktime.proba 模块的用户应将任何从 sktime.proba 的导入替换为从 skpro.distributions 的导入。

内容#

  • [MNT] 0.32.0 弃用和变更操作 (#6916) @fkiraly

  • [MNT] [Dependabot](deps): 将 skpro 要求从 <2.5.0,>=2 更新为 >=2,<2.6.0 (#6897) @dependabot[bot]

  • [MNT] 从基于 numba 的估计器中移除 numpy 2 的不兼容标志 (#6915) @fkiraly

  • [MNT] 隔离 joblib (#6385) @fkiraly

  • [MNT] 处理更多 pandas 弃用 (#6941) @fkiraly

  • [MNT] 弃用 proba 模块,改为依赖 skpro 软依赖 (#6940) @fkiraly

  • [MNT] 更新 pre-commit 钩子的版本 (#6947) @yarnabrina

  • [MNT] 0.32.0 发布操作 - 恢复临时跳过 get_test_params 数字检查以进行 0.21.1 和 0.22.0 发布 (#5114) @fkiraly

  • [MNT] 将 skforecast 升级到 0.13 版本,支持 python 3.12 (#6946) @yarnabrina

  • [BUG] 修复 tranformations.base 中的 Xt_msg 类型 (#6944) @hliebert

贡献者#

@fkiraly, @hliebert, @yarnabrina

版本 0.31.2 - 2024-08-13#

热修复发布,在热修复发布 0.32.1 之后发布,以将相同的热修复应用于 0.31.X 版本。

使用 make_reduction 时针对不完全符合 sklearn 规范的表格回归器(如来自 catboost 的回归器)的热修复。

有关最后的非维护内容更新,请参见 0.31.1。

内容#

  • [BUG] 修复 make_reduction 对非 sklearn 估计器的类型推断

注释#

这是针对0.31.1版本的修复补丁,修复了一个回归问题。此版本未包含在0.32.0或0.32.1版本中。

版本 0.31.1 - 2024-08-10#

亮点#

依赖项更改#

  • holiday (变换软依赖) 的版本限制已更新为 >=0.29,<0.54

  • dask (数据容器和并行化后端) 的版本限制已更新为 <2024.8.1

核心接口变更#

BaseObject 和基础框架#

  • 实现者不再需要在估计器依赖项的导入名称与PEP 440包名称不同时设置``package_import_alias``标签。所有内部逻辑现在仅使用PEP 440包名称。如果已经设置了该标签,则无需移除,但它不再是必需的。

  • 估计器现在有一个标签 capability:categorical_in_X: bool 来表明该估计器可以处理输入数据 X 中的分类特征。如果 X 是以 pandas 为基础的 mtypes 之一传递的,则可以使用具有分类和字符串值特征的估计器。

  • 所有对象的HTML表示现在包括一个指向该对象文档的链接,并且现在与 sklearn 的HTML表示一致。

增强功能#

BaseObject 和基础框架#

数据集和数据加载器#

数据类型、检查、转换#

  • [ENH] check_pdmultiindex_panel 如果存在无效的 object 列,则返回其名称 (#6797) @SaiRevanth25

  • [ENH] 允许在系列中使用对象数据类型 (#5886) @yarnabrina

  • [ENH] 在 datatypes 中转换器框架测试覆盖所有类型,包括需要软依赖的类型 (#6838) @fkiraly

  • [ENH] 为 gluonts 基础数据容器检查器添加缺失的 feature_kind 元数据字段 (#6861) @fkiraly

  • [ENH] 在数据类型检查中添加了 feature_kind 元数据 (#6490) @Abhay-Lejith

  • [ENH] 添加对 gluonts PandasDataset 对象的支持 (#6668) @shlok191

  • [ENH] 添加了对 gluonts PandasDataset 作为 Series 科学类型的支持 (#6837) @shlok191

预测#

注册与搜索#

  • [ENH] 在估计器的HTML表示中,使版本检索更安全和更灵活 (#6923) @fkiraly

时间序列异常、变化点、分段#

  • [ENH] 时间序列注释(异常值、变化点)- 测试类和完整的 check_estimator 集成 (#6843) @fkiraly

  • [ENH] 添加窗口局部异常因子异常检测器 (#6524) @Alex-JG3

  • [ENH] 为变化点检测添加二值分割标注器 (#6723) @Alex-JG3

时间序列分类#

变换#

  • [ENH] 向 Aggregator 添加第二个测试参数字典 (#6759) @fr1ll

  • [ENH] pandas 内部类型和全局池化用于 TabularToSeriesAdaptor (#6752) @fkiraly

  • [ENH] VmdTransformer 的替代返回 - 模式谱和中心频率 (#6857) @fkiraly

  • [ENH] 简化 Catch22 中的字典和别名处理 (#6104) @fkiraly

  • [ENH] 在 BaseTransformer 中使 self._is_vectorized 访问更具防御性 (#6863) @fkiraly

测试框架#

  • [ENH] 使 pyproject.toml 解析在差异测试中对非包相关更改更具鲁棒性 (#6882) @fkiraly

供应商和上架库#

文档#

维护#

  • [MNT] 移除 tbats 的 Python 版本约束 (#6769) @fr1ll

  • [MNT] 将 Callabletyping 导入更新为 collections.abc (#6798) @yarnabrina

  • [MNT] 使用 codespelltypos 修正拼写错误 (#6799) @yarnabrina

  • [MNT] 改进了环境包版本检查 (#6776) @fkiraly

  • [MNT] 将 pykan 版本降级到 <0.2.2 (#6853) @geetu040

  • [MNT] 添加非Unicode字符检查到linter (#6807) @fnhirwa

  • [MNT] 类型提示的更新和修复 (#6743) @ZhipengXue97

  • [MNT] 解决Windows上重音符号解码失败的问题 (#6862) @fnhirwa

  • [MNT] 同步依赖检查器模块的文档字符串和代码格式与 skbase (#6873) @fkiraly

  • [MNT] 移除与包导入别名相关的内部逻辑和标签 (#6821) @fkiraly

  • [MNT] 限制失败的 Mr-SEQL 版本 (#6879) @fkiraly

  • [MNT] 发布工作流程:升级已弃用的 pypa 动作参数 (#6878) @szepeviktor

  • [MNT] 修复 pykan 导入和依赖检查 (#6881) @fkiraly

  • [MNT] 暂时将 matplotlib 固定在 3.9.1 以下 (#6890) @yarnabrina

  • [MNT] 使 pyproject.toml 解析在差异测试中对非包相关更改更具鲁棒性 (#6882) @fkiraly

  • [MNT] 构建工具中jupyter notebook json的格式化工具 (#6849) @fkiraly

  • [MNT] 与 skpro 同步差异测试工具 (#6840) @fkiraly

  • [MNT] 处理来自 pandas 的弃用 (#6855) @fkiraly

  • [MNT] 同步依赖检查器模块的文档字符串和代码格式与 skbase (#6873) @fkiraly

  • [MNT] 修复 .all-contributorsrc 语法 (#6918) @fkiraly

  • [MNT] 解决Windows上重音符号解码失败的问题 (#6862) @fnhirwa

  • [MNT] 更新日志工具:修复获取合并PR的终止条件 (#6920) @fkiraly

  • [MNT] 将 holidays 的下限恢复为 0.29 (#6921) @fkiraly

  • [MNT] 更新GHA依赖以安装OSX依赖并设置编译器标志 (#6926) @fnhirwa

  • [MNT] 恢复一个错误的 pandas 弃用修复 (#6925) @fkiraly

  • [MNT] 更新脚本路径以修复 #6926 (#6933) @fnhirwa

  • [MNT] [Dependabot](deps): 将 pytest 要求从 <8.3,>=7.4 更新为 >=7.4,<8.4 (#6819) @dependabot[bot]

  • [MNT] [Dependabot](deps): 将 dask 要求从 <2024.6.3 更新为 <2024.7.2 (#6818) @dependabot[bot]

  • [MNT] [Dependabot](deps): 将 sphinx-gallery 要求从 <0.17.0 更新到 <0.18.0 (#6820) @dependabot[bot]

  • [MNT] [Dependabot](deps): 将 holidays 要求从 <0.53,>=0.52 更新为 >=0.52,<0.54 (#6780) @dependabot[bot]

  • [MNT] [Dependabot](deps): 将sphinx要求从 !=7.2.0,<8.0.0 更新为 !=7.2.0,<9.0.0 (#6865) @dependabot[bot]

  • [MNT] [Dependabot](deps): 将 holidays 要求从 <0.54,>=0.52 更新为 >=0.52,<0.55 (#6898) @dependabot[bot]

  • [MNT] [Dependabot](deps): 将 dask 要求从 <2024.7.2 更新到 <2024.8.1 (#6907) @dependabot[bot]

修复#

BaseObject 和基础框架#

  • [BUG] 修复补丁版本前后版本的 _check_soft_dependencies (#6909) @fkiraly

数据类型、检查、转换#

  • [BUG] 修复在转换 pandas 到基于 xarraySeries 时的类型不一致问题 (#6856) @fkiraly

预测#

  • [BUG] 修复 pykan 依赖并设置下限 (#6789) @benHeid

  • [BUG] 修正 pytorch-forecasting 预测器的依赖标签:将 pytorch_forecasting 重命名为正确的包名 pytorch-forecasting (#6830) @XinyuWuu

注册与搜索#

  • [BUG] 修复估计器概览中缺少的多态估计器,例如 pytorch-forecasting 预测器 (#6803) @fkiraly

时间序列异常、变化点、分段#

  • [BUG] 修复从clasp变化点注释器预测段落时的错误 (#6756) @Alex-JG3

变换#

  • [BUG] 重构 ADICVTransformer 并修复 CV 计算 (#6757) @sbhobbes

  • [BUG] 修复 inverse_transformBaseTransformer 的广播条件,适用于分解器 (#6824) @fkiraly

  • [BUG] 修复 MSTL 逆变换并在预测管道中使用 (#6825) @fkiraly

  • [BUG] 修复重构的 Catch22 变换中对 numpy 整数的处理 (#6934) @fkiraly

可视化#

贡献者#

@Abhay-Lejith, @Alex-JG3, @alexander-lakocy, @AlexeyOm, @bastisar, @benHeid, @ceroper, @DinoBektesevic, @fkiraly, @fnhirwa, @fr1ll, @gareth-brown-86, @geetu040, @hliebert, @julian-fong, @mateuszkasprowicz, @MBristle, @melinny, @Mitchjkjkjk, @mk406, @SaiRevanth25, @sbhobbes, @shlok191, @SultanOrazbayev, @szepeviktor, @XinyuWuu, @yarnabrina, @ZhipengXue97

版本 0.31.0 - 2024-07-11#

维护版本:

  • 计划中的弃用和变更操作

  • numpy 2 兼容性

  • 代码风格和预提交更新,使用 ruff 进行代码检查

有关上次非维护内容更新,请参见 0.30.2。

依赖项更改#

  • numpy (核心依赖) 的版本限制已更新为 <2.1,>=1.21

  • skpro (软依赖) 的版本限制已更新为 >=2,<2.5.0

弃用和移除#

时间序列异常、变化点、分段#

  • fmt 参数在时间序列注释器中现已弃用。用户应改用 predicttransform 方法,predict 代替 fmt="sparse"transform 代替 fmt="dense"

时间序列分类#

  • 深度学习分类器中的 convert_y_to_keras 方法已被移除。使用此方法的用户应直接使用 sklearn 中的 OneHotEncoder,因为 convert_y_to_keras 只是 OneHotEncoder 的一个简单包装,带有默认设置。

内容#

  • [MNT] 将 numpy 的版本限制提升为 numpy < 2.1numpy 2 兼容性 (#6624) @fkiraly

  • [MNT] [Dependabot](deps): 将 skpro 要求从 <2.4.0,>=2 更新为 >=2,<2.5.0 (#6663) @dependabot[bot]

  • [MNT] 由于 prophet 的不兼容性,将基于 prophet 的预测器绑定到 numpy<2 (#6721) @fkiraly

  • [MNT] 进一步修复了估计器中的 numpy 2 兼容性问题 (#6729) @fkiraly

  • [MNT] 处理 numpy 2 不兼容的软依赖 (#6728) @fkiraly

  • [MNT] 升级代码风格至 python 3.8 以上 (#6330) @yarnabrina

  • [MNT] 在放弃 python 3.8 支持后更新预提交钩子 (#6331) @yarnabrina

  • [MNT] 抑制 pandas 2.2 中与 freq 相关的警告 (#6733) @fkiraly

  • [MNT] 0.31.0 弃用和更改操作 (#6716) @fkiraly

  • [MNT] 切换到 ruff 作为代码检查工具 (#6676) @fnhirwa

  • [ENH] 重构和修复环境检查工具的错误 (#6719) @fkiraly

贡献者#

@fkiraly, @fnhirwa, @yarnabrina

版本 0.30.2 - 2024-07-04#

亮点#

依赖项更改#

  • holidays (转换软依赖) 的版本限制已更新为 >=0.29,<0.53

  • dask``(数据容器和并行化后端)的版本限制已更新为 ``<2024.5.3

  • optuna 现在是一个软依赖,通过 ForecastingOptunaSearchCV 估计器,在 all_extras 软依赖集中,边界为 <3.7

  • pytorch-forecasting 现在是一个软依赖项,位于 dl (深度学习) 软依赖项集合中

  • skforecast 现在是一个软依赖,在 all_extras 软依赖集和 forecasting 软依赖集中,版本范围为 <0.13,>=0.12.1

  • dtaidistance 现在是一个软依赖,在 all_extras 软依赖集和 alignment 软依赖集中,范围为 <2.4

核心接口变更#

预测#

基础预测器接口现在有一个专门用于全局预测或微调的接口点:在支持全局预测的预测器中,可以在 predict 中传递一个 y 参数,表示用于全局预测的新时间序列实例,或用于基础模型的上下文。能够进行全局预测或微调(这是同一个接口点)的预测器会带有标签 capability:global_forecasting,值为 True

全局预测和微调接口目前是实验性的,可能会发生变化。

邀请用户提供反馈,并使用新的 pytorch-forecasting 适配器测试该功能。

测试框架#

  • 第三方扩展包现在可以使用 parametrize_with_checks 工具来设置细粒度的API合规性测试。有关详细的使用说明,请参阅扩展指南:实现估计器

  • 为了方便API兼容的第二方和第三方包的开发者,在估计器概览和估计器搜索中进行索引,已经进行了各种生活质量的改进,而无需直接将其添加到主``sktime``仓库中。有关详细的使用说明,请参阅扩展指南:实现估计器,或检查``Prophetverse``预测器作为一个实际示例。

增强功能#

BaseObject 和基础框架#

  • [ENH] 防止由 _check_soft_dependencies 引起的导入,加快依赖检查和测试收集时间 (#6355) @fkiraly, @yarnabrina

基准测试, 指标, 分割器#

  • [ENH] 为 ForecastingBenchmark 添加并行化选项 (#6568) @benHeid

数据类型、检查、转换#

  • [ENH] 添加了 GluonTS 数据集作为 sktime mtypes (#6530) @shlok191

距离, 核函数#

预测#

  • [ENH] 使用全局预测API的 pytorch-forecasting 适配器 (#6228) @XinyuWuu

  • [ENH] 拟合参数转发工具,转发 statsforecast 估计器的拟合参数 (#6349) @fkiraly

  • [ENH] 基于EnbPI的预测器,包含来自 aws-fortuna 的组件 (#6449) @benHeid

  • [ENH] skforecast ForecasterAutoreg 适配器 (#6531) @Abhay-Lejith, @yarnabrina

  • [ENH] 扩展 HFTransformersForecaster 以支持 PEFT 方法 (#6457) @geetu040

  • [ENH] 在 BaseForecaster 中,将 capability:insample 的检查移至 _check_fh 样板 (#6593) @XinyuWuu

  • [ENH] 索引 prophetverse 预测器 (#6614) @fkiraly

  • [ENH] ForecastingOptunaSearchCV 用于通过 optuna 对预测器进行超参数调优 (#6630) @mk406, @gareth-brown-86

注册与搜索#

时间序列对齐#

时间序列分类#

  • [ENH] 解决 KNeighborsClassifier 和 KNeighborsRegressor 中的重复问题 (#6504) @Z-Fran

  • [ENH] 向 FCNNetwork 添加了两个测试参数集 (#6562) @TheoWeih

  • [ENH] 进一步重构 knn 分类器和回归器 (#6615) @fkiraly

  • [ENH] 更新 tests._config 以跳过 Proximity Forest 和 Proximity Tree 中各种间歇性失败的测试,直到修复 (#6638) @julian-fong

时间序列回归#

变换#

测试框架#

  • [ENH] 对各种模块中的基本功能进行差异测试 (#6534) @fkiraly

  • [ENH] 对 transformations 模块进行进一步的差异测试 (#6533) @fkiraly

  • [ENH] dist_kernelsclustering 模块中的差异测试 (#6543) @fkiraly

  • [ENH] 简化并添加差异测试到 forecasting.compose.tests 模块 (#6563) @fkiraly

  • [ENH] 简化并添加差异测试到 sktime.pipeline 模块 (#6565) @fkiraly

  • [ENH] benchmarking 模块中的差异测试 (#6566) @fkiraly

  • [ENH] 将doctests移至主测试套件以确保条件执行 (#6536) @fkiraly

  • [ENH] 对测试效率的小改进 (#6586) @fkiraly

  • [ENH] parametrize_with_checks 工具用于在第三方库中设置细粒度的 API 合规性测试 (#6588) @fkiraly

  • [ENH] 对 utils 模块进行差异测试 (#6620) @fkiraly

  • [ENH] 对 forecasting.base 测试的差异测试和小的改进 (#6619) @fkiraly

  • [ENH] 对 performance_metrics 模块进行差异测试 (#6616) @fkiraly

  • [ENH] 修复和改进 pytest doctest 集成 (#6621) @fkiraly

文档#

维护#

  • [MNT] [Dependabot](deps): 将 holidays 要求从 <0.51,>=0.29 更新为 >=0.29,<0.52 (#6634) @dependabot[bot]

  • [MNT] [Dependabot](deps): 将 holidays 要求从 <0.52,>=0.29 更新为 >=0.52,<0.53 (#6702) @dependabot[bot]

  • [MNT] [Dependabot](deps): 将 dask 要求从 <2024.6.1 更新到 <2024.6.2 (#6643) @dependabot[bot]

  • [MNT] [Dependabot](deps): 将 numba 要求从 <0.60,>=0.53 更新为 >=0.53,<0.61 (#6590) @dependabot[bot]

  • [MNT] [Dependabot](deps): 将 dask 要求从 <2024.6.2 更新到 <2024.6.3 (#6647) @dependabot[bot]

  • [MNT] 从 PR CI 和 setup.cfg 中移除覆盖率报告和 pytest-cov (#6363) @fkiraly

  • [MNT] numpy 2 兼容性修复 - 估计器 (#6626) @fkiraly

  • [MNT] scipy 1.14.0 兼容性为 csr_matrixdeep_equals 插件 (#6664) @fkiraly

  • [MNT] 弃用未使用的 _check_soft_dependencies 参数 suppress_import_stdout (#6691) @fkiraly

修复#

基准测试, 指标, 分割器#

  • [BUG] 修复 AUCalibrationmultivariate 情况下的概率度量 (#6617) @fkiraly

数据加载器#

  • [BUG] 修复 bug 4076: load_from_tsfile_to_dataframe 中的 PerformanceWarning (#6632) @ericjb

数据类型、检查、转换#

  • [BUG] 在 pandas 2.2.X 版本中,修复了 freq 时间戳/周期往返转换中,如 "MonthBegin" 这样的周期起始时间戳的问题 (#6574) @fkiraly

预测#

  • [BUG] 修复 ForecastingPipeliney 的传递 (#6706) @fkiraly

时间序列分类#

  • [BUG] 修复 pytstslearn 适配器中拟合参数覆盖的错误 (#6707) @fkiraly

时间序列聚类#

  • [BUG] 修复 pytstslearn 适配器中拟合参数覆盖的错误 (#6707) @fkiraly

时间序列回归#

  • [BUG] 在 TimeSeriesForestRegressor 中,修复失败:self.criterion 不存在 (#6573) @ksharma6

测试框架#

  • [BUG] 由于下游测试套件的副作用,部分恢复 #6233 中的 pytest.skip 更改 (#6508) @fkiraly

  • [BUG] 修复由差异测试重构引入的测试失败 (#6585) @fkiraly

变换#

  • [BUG] 修复 HolidayFeatures 在数据框不包含指定日期时崩溃的问题 (#6550) @fnhirwa

  • [BUG] 在 Differencer 中,明确克隆以避免 SettingWithCopyWarning (#6567) @benHeid

  • [BUG] minirocket: 修复零除错误 #5174 (#6612) @benshaw2

  • [BUG] 确保 FeatureUnionrequires_Xrequires_y 标签设置正确 (#6695) @fkiraly

  • [BUG] 确保 TransformerPipelinerequires_Xrequires_y 标签设置正确 (#6692) @fkiraly

  • [BUG] 修复 PaddingTransformer 中丢失列名的部分问题 (#6693) @fkiraly

贡献者#

@Abhay-Lejith, @benHeid, @benshaw2, @doberbauer, @emmanuel-ferdman, @ericjb, @felipeangelimvieira, @fkiraly, @fnhirwa, @gareth-brown-86, @geetu040, @iaryangoyal, @julian-fong, @ksharma6, @mk406, @shlok191, @Spinachboul, @TheoWeih, @XinyuWuu, @yarnabrina, @Z-Fran

版本 0.30.1 - 2024-06-04#

最小维护更新,整合了上板包的操作。

有关上次主要功能更新,请参见 0.29.1。

内容#

版本 0.30.0 - 2024-06-03#

对时间序列异常、变化点、分段API进行了重大升级 (@Alex-JG3)。用户应查看发布说明中的相关部分。

另请注意下面的 Python 3.8 生命周期结束警告。

还包括计划中的弃用和变更操作。

有关上次主要功能更新,请参见 0.29.1。

依赖项更改#

  • joblib 现在是一个显式的核心依赖项,版本范围为 <1.5,>=1.2.0。之前,joblib 是通过 scikit-learn 实现的间接核心依赖项。由于直接导入的原因,这一依赖项被更改为显式依赖。

  • scikit-learn (核心依赖) 的版本限制已更新为 >=0.24,<1.6.0

  • scikit-base (核心依赖) 的版本限制已更新为 >=0.6.1,<0.9.0

  • skpro (软依赖) 的版本范围已更新为 >=2,<2.4.0

  • kotsu 不再是预测基准测试框架所需的软依赖。kotsu 包不再维护,其必要的导入已被移动到 sktime 中作为私有工具,直到重构完成。参见 #6514

  • pykalman``(转换软依赖)已被分叉到 ``sktime 中,作为 sktime.libs.pykalman,因为原始包不再维护,参见 sktime 问题 5414 或 pykalman 问题 109。

    • 该包的分支将在 sktime 中进行维护。

    • pykalman 的用户可以将导入 from pykalman import x 替换为等效的导入 from sktime.libs.pykalman import x

    • 通过转换器 KalmanFilterTransformerPK 的间接用户不会受到影响,因为API没有变化,只是他们不再需要在他们的python环境中安装原始的 pykalman 包。

核心接口变更#

时间序列注释、异常、变化点、分段 API 已经完全重构,以符合 scikit-base 模式、sktime 标签,并提供更一致和灵活的接口。

  • API 提供了用于注释标签的 predict 方法,例如,段落、异常点,以及用于指示序列的 transform 方法,例如,1/0 指示器,用于表示在时间戳处是否存在异常。

  • 在某些估计器中使用的 fmt 参数现在已被弃用,建议使用 predicttransform

  • 注释的类型,例如,变化点或分段,由时间序列注释器中使用的新标签 task 编码,其值为 anomaly_detectionsegmentationchangepoint_detection

  • 低级方法允许注释器的多态使用,例如,通过 predict_pointspredict_segments 将变化点检测器用于分段。predict 方法默认使用由 task 定义的注释类型。

将在接下来的发布周期中创建一个包含示例的完整教程,并计划进一步增强。

弃用和移除#

Python 3.8 生命周期结束#

sktime 现在要求 Python 版本 >=3.9。在 Python 3.8 上不会引发错误,但已放弃对 Python 3.8 的测试覆盖和支持。

请注意:Python 3.8 将于2024年10月结束生命周期,并且多个 sktime 核心依赖项,包括 scikit-learn,已经停止对3.8的支持。

预测#

cINNForecaster 已重命名为 CINNForecaster。在弃用期之后,该估计器不再以其旧名称提供。用户应将任何 cINNForecaster 的导入替换为 CINNForecaster 的导入。

增强功能#

  • [ENH] 基础系列注释器API的重构 (#6265) @Alex-JG3

  • [ENH] 升级 is_module_changed 测试工具以支持路径 (#6518) @fkiraly

文档#

  • [DOC] 更新了 all_estimators 的文档字符串以支持 re.Pattern (#6478) @fkiraly

维护#

  • [MNT] [Dependabot](deps): 将 skpro 要求从 <2.3.0,>=2 更新为 >=2,<2.4.0 (#6443) @dependabot[bot]

  • [MNT] [Dependabot](deps): 将 scikit-learn 要求从 <1.5.0,>=0.24 更新为 >=0.24,<1.6.0 (#6462) @dependabot[bot]

  • [MNT] [Dependabot](deps): 将 scikit-base 要求从 <0.8.0,>=0.6.1 更新为 >=0.6.1,<0.9.0 (#6488) @dependabot[bot]

  • [MNT] 在 CI 中放弃对 Python 3.8 的测试覆盖 (#6329) @yarnabrina

  • [MNT] 最终更改周期 (0.30.0) 用于将 cINNForecaster 重命名为 CINNForecaster (#6367) @geetu040

  • [MNT] 添加 joblib 为核心依赖 (#6384) @yarnabrina

  • [MNT] 0.30.0 弃用和变更操作 (#6468) @fkiraly

  • [MNT] 将 CRLF 行尾改为 LF 行尾 (#6512) @yarnabrina

  • [MNT] 将依赖检查器移动到 utils 中的单独模块 (#6354) @fkiraly

  • [MNT] 解决 pykalman 问题 - sktime 本地 pykalman 分支 (#6188) @fkiraly

  • [MNT] 为低级测试添加系统性差异测试开关 (#6511) @fkiraly

  • [MNT] 将 utils 模块初始化和 sktime 初始化与外部导入隔离 (#6516) @fkiraly

  • [MNT] 准备重构基准框架:将最小 kotsu 库折叠到 sktime 中 (#6514) @fkiraly

  • [MNT] 仅在 distances 模块发生更改时运行测试 (#6517) @fkiraly

  • [MNT] 将 pykalman 测试重构为 pytest 并进行条件执行 (#6519) @fkiraly

  • [MNT] 在 datatypes 模块中条件执行测试 (#6520) @fkiraly

贡献者#

@Alex-JG3, @dependabot[bot], @fkiraly, @geetu040, @yarnabrina

版本 0.29.1 - 2024-05-30#

亮点#

  • TransformSelectForecaster 根据序列类型(例如,间歇性、块状)应用不同的预测器(#6453):user:shlok191

  • Kolmogorov-Arnold 网络 (KAN) 预测器 (#6386) @benHeid

  • 新的概率预测指标:区间宽度(锐度),校准曲线下的面积(#6437, #6460@fkiraly

  • 通过 rdata 包加载 fpp3(预测、原理和实践)数据集,以 sktime 数据格式 (#6477) @ericjb

  • 布林带变换 (#6473) @ishanpai

  • ADI/CV2 (Syntetos/Boylan) 特征提取器 (#6336) @shlok191

  • ExpandingCutoffSplitter - 通过移动截止点进行分割 (#6360) @ninedigits

依赖项更改#

  • holidays (转换软依赖) 的版本限制已更新为 >=0.29,<0.50

  • pycatch22 (变换软依赖) 的版本限制已更新为 <0.4.6

  • dtw-python (距离和对齐的软依赖) 的版本限制已更新为 >=1.3,<1.6

  • dask (数据容器和并行化后端) 的版本限制已更新为 <2024.5.2

  • transformers``(预测软依赖)的版本限制已更新为 ``<4.41.0

核心接口变更#

基准测试, 指标, 分割器#

  • 所有用于点预测的指标现在都支持通过 sample_weight 参数进行加权。如果传递了该参数,指标将根据样本权重进行加权。对于分层数据,权重应用于系列级别,在这种情况下,所有系列需要具有相同的长度。概率性指标目前还不支持加权,这将在未来的版本中添加。

时间序列对齐#

  • 所有时间序列对齐器现在都具有 capability:unequal_length 标签,如果对齐器可以处理不等长的时间序列,则为 True,否则为 False。如果在一个不支持不等长时间序列的对齐器上使用此类数据,现在会根据该标签引发一条信息性错误消息。

弃用和移除#

时间序列分类#

  • 深度学习分类器中的 convert_y_to_keras 方法已被弃用,并将在 0.31.0 版本中移除。使用此方法的用户应直接使用 sklearn 中的 OneHotEncoder,因为 convert_y_to_keras 只是 OneHotEncoder 的一个简单包装,带有默认设置。

增强功能#

BaseObject 和基础框架#

基准测试, 指标, 分割器#

  • [ENH] ExpandingCutoffSplitter - 通过移动截止点进行分割 (#6360) @ninedigits

  • [ENH] 区间宽度(锐度)度量 (#6437) @fkiraly

  • [ENH] 分布预测的校准曲线下的无符号面积度量 (#6460) @fkiraly

  • [ENH] 预测指标:确保 sample_weight 参数的统一支持和测试 (#6495) @fkiraly

数据加载器#

  • [ENH] 通过 rdata 包从 CRAN 加载 fpp3 数据集,转换为 sktime 数据格式 (#6477) @ericjb

数据类型、检查、转换#

预测#

  • [ENH] Kolmogorov-Arnold 网络 (KAN) 预测器 (#6386) @benHeid

  • [ENH] 根据序列类型(例如,间歇性)应用预测器的合成器 (#6453) @shlok191

  • [ENH] ForecastingHorizonpandas freq 2Ypandas 2.2.0 及以上版本的兼容性 (#6500) @fkiraly

  • [ENH] 为 ForecastingHorizon 添加 pandas 2.2.X 兼容性测试用例,失败案例 #6499 (#6503) @fkiraly

  • [ENH] 从 test_differencer_cutoff 中移除 Prophet (#6492) @fkiraly

  • [ENH] 在 test_differencer_cutoff 中处理弃用并引发错误 (#6493) @fkiraly

时间序列对齐#

  • [ENH] 在输入时检查时间序列对齐器的能力,标记不等长能力 (#6486) @fkiraly

时间序列分类#

  • [ENH] 将深度分类器的 convert_y_to_keras 设为私有 (#6373) @cedricdonie

  • [ENH] 包含三个类和 pd-multiindex mtype 的分类测试场景 (#6374) @fkiraly

  • [ENH] 在字符串数据类型 y 上测试分类器,确保 predict 返回相同类型和标签 (#6428) @fkiraly

变换#

测试框架#

  • [ENH] 启用 check_estimatorQuickTester.run_tests 以处理带有跳过标记的 pytest 测试 (#6233) @YelenaYY

  • [ENH] 使 get_packages_with_changed_specs 对返回值的突变安全 (#6451) @fkiraly

可视化#

  • [ENH] plot_series 改进以使用 matplotlib 约定;plot_interval 现在可以绘制多个重叠的区间 (#6416, #6501) @ericjb

文档#

维护#

修复#

预测#

  • [BUG] 修复当 forecaster_X_exogeneous="complement"ForecastX 的问题 (#6433) @fnhirwa

  • [BUG] 修改了 VAR 代码以允许 predict_quantiles 为 0.5(修复了 #4742)(#6441) @meraldoantonio

神经网络#

时间序列分类#

  • [BUG] 解决 LSTMFCNClassifier 更改 callback 参数 (#6239) @ArthrowAbstract

  • [BUG] 修复某些分类器中的 _get_train_probs 以接受任何输入数据类型 (#6377) @fkiraly

  • [BUG] 修复 BaggingClassifier 在列子采样情况下的问题 (#6429) @fkiraly

  • [BUG] 修复 ProximityForest、树、树桩和 IndividualBOSSpredict 中返回不同类型的 y (#6432) @fkiraly

  • [BUG] 修复分类器默认 _predict 总是返回整数标签的问题,即使 fity 不是整数 (#6430) @fkiraly

  • [BUG] 在 CNNClassifier 中,确保 filter_sizespadding 被传递 (#6452) @fkiraly

  • [BUG] 修复 BaseClassifier.fit_predictfit_predict_proba 对于 pd-multiindex mtype 的问题 (#6491) @fkiraly

时间序列回归#

变换#

测试框架#

  • [BUG] 允许在序列不是分层的情况下,使用 multilevel 参数调用度量类 (#6418) @fkiraly

  • [BUG] 修复 test_run_test_for_class 逻辑检查,如果 ONLY_CHANGED_MODULES 标志为 False 且所有估计器依赖项都存在 (#6383) @fkiraly

  • [BUG] 修复 test_run_test_for_class 测试逻辑 (#6448) @fkiraly

可视化#

贡献者#

@Abhay-Lejith, @ArthrowAbstract, @benHeid, @cedricdonie, @ericjb, @fkiraly, @fnhirwa, @helloplayer1, @ishanpai, @luca-miniati, @meraldoantonio, @ninedigits, @pranavvp16, @sharma-kshitij-ks, @shlok191, @yarnabrina, @YelenaYY

版本 0.29.0 - 2024-04-28#

请注意下面的 Python 3.8 生命周期结束警告。

维护版本:

  • 计划中的弃用和变更操作

  • 测试集合速度的优化

关于最后的非维护内容更新,请参见 0.28.1。

依赖项更改#

  • sktime 现在需要 ``scikit-base>=0.6.1``(核心依赖),这与之前没有下限的情况有所不同。

弃用和移除#

Python 3.8 生命周期结束#

sktime 0.30.0 开始,sktime 将要求 Python 版本 >=3.9。不会引发错误,但从 0.30.0 开始,将不再提供对 Python 3.8 的测试覆盖和支持。

请注意:Python 3.8 将于2024年10月结束生命周期,并且多个 sktime 核心依赖项,包括 scikit-learn,已经停止对3.8的支持。

预测#

cINNForecaster 已更名为 CINNForecaster。该估计器在其当前位置仍可通过旧名称使用,直到 0.30.0 版本,届时旧名称将被移除。为准备名称变更,请将任何 cINNForecaster 的导入替换为 CINNForecaster 的导入。

变换#

  • Catch22 转换器中的 n_jobs 参数已被移除。用户应通过 set_config 传递并行化后端参数。要指定 n_jobs,请使用 backend:parallel 配置中支持它的任何后端,例如 "loky""multithreading"n_jobs 参数应通过 backend:parallel:params 配置传递。要保留之前的行为,并使用特定的 n_jobs=x 设置,请使用 set_config(**{"backend:parallel": "loky", "backend:parallel:params": {"n_jobs": x}})

内容#

贡献者#

@fkiraly, @geetu040, @yarnabrina

版本 0.28.1 - 2024-04-25#

亮点#

  • 预训练预测器和基础模型的实验性 Hugging Face 接口 (#5796) @benHeid

  • 估计器标签现在 在API参考中系统地记录 (#6289) @fkiraly

  • 新的分类器,来自 pyts 的转换器接口化:BOSSVS,学习形状序列,形状序列转换 (#6296) @johannfaouzi (作者), @fkiraly (接口)

  • 来自 tslearn 的新分类器接口:时间序列 SVC、SVR、学习形状(#6273):user:`rtavenar`(作者),:user:`fkiraly`(接口)

  • ForecastX 现在可以使用未来未知的自变量,如果它们在 predict 中传递 (#6199) @yarnabrina

  • bagging/bootstrap 预测器现在可以应用于多元、外生、层次数据,并生成完全概率性的预测 (#6052) @fkiraly

  • neuralforecast 模型现在有设置来自动检测日期时间 freq,并传递 optimizer (#6235, #6237) @pranavvp16, @geetu040

依赖项更改#

  • dask``(数据容器和并行化后端)的版本限制已更新为 ``<2024.4.2

  • arch (转换和参数估计软依赖) 的版本范围已更新为 >=5.6,<7.1.0

  • holidays (变换软依赖) 的版本范围已更新为 >=0.29,<0.48

  • mne (变换软依赖) 的版本范围已更新为 >=1.5,<1.8

核心接口变更#

所有对象和估计器现在除了现有的 PEP 440 包依赖规范标签外,还可以通过 env_marker 标签为其依赖项指定兼容 PEP 508 的环境标记。值应为符合 PEP 508 的字符串,例如 platform_system!="Windows"

这允许在需要时对估计器的依赖关系进行更精细的控制,例如,对于需要特定操作系统的估计器。

增强功能#

BaseObject 和基础框架#

  • [ENH] 估计器的 PEP 508 环境标记 (#6144) @fkiraly

  • [ENH] 标签系统的增强,标签的系统API文档 (#6289) @fkiraly

基准测试, 指标, 分割器#

  • [ENH] 实例分割器以将 sklearn 分割器应用于面板数据 (#6055) @fkiraly

  • [ENH] 为 MSE 和 RMSE (MeanSquaredError) 高效实现 _evaluate_by_index (#6248) @fkiraly

  • [ENH] 为 MedianAbsoluteError 类实现高效的 _evaluate_by_index (#6251) @mobley-trent

预测#

  • [ENH] 预训练预测器的 Hugging Face 接口 (#5796) @benHeid

  • [ENH] 将bagging/bootstrap预测器扩展到多元、外生、层次数据 (#6052) @fkiraly

  • [ENH] 与 neuralforecast 相关的小改动 (#6312) @yarnabrina

  • [ENH] 在 ForecastX 中使用未来未知的自变量选项,如果在 predict 中传递 (#6199) @yarnabrina

  • [ENH] 为 neuralforecast 模型添加 optimizer 参数 (#6235) @pranavvp16

  • [ENH] 更新 neuralforecastfreq="auto" 的行为以适应估计器 (#6237) @geetu040

  • [ENH] TBATS 测试参数以覆盖文档示例 (#6292) @fkiraly

神经网络#

概率分布与模拟器#

时间序列分类#

时间序列聚类#

  • [ENH] 带有不等长时间序列的聚类测试场景;修复聚类标签 (#6277) @fkiraly

时间序列回归#

  • [ENH] k-近邻回归器:支持非暴力算法和非预计算模式以提高内存效率 (#6217) @Z-Fran

变换#

  • [ENH] 使 TabularToSeriesAdaptor 与仅接受 ysklearn 转换器兼容,例如 LabelEncoder (#5982) @fkiraly

测试框架#

  • [ENH] 通过 deepcopy 使 get_examples 无副作用 (#6259) @fkiraly

  • [ENH] 重构测试场景创建为惰性加载而非模块加载 (#6278) @fkiraly

文档#

维护#

  • [MNT] 文档本地构建过程的基本修复和增强 (#6128) @duydl

  • [MNT] 临时跳过失败 #6260 (#6262) @fkiraly

  • [MNT] 将 dask 要求从 <2024.2.2 更新为 <2024.4.2,在 pyproject.toml 中添加新的必需 dataframe 额外项。(#6282) @yarnabrina

  • [MNT] 修复 mlflow 软依赖的隔离 (#6285) @fkiraly

  • [MNT] 添加 @slavik57 作为维护贡献者,用于修复 conda-forge sktime-all-extras 0.28.0 版本 (#6308) @tm-slavik57

  • [MNT] 将 GHA macOS 运行器一致设置为 macos-13 (#6328) @fkiraly

  • [MNT] [Dependabot](deps-dev): 将 holidays 要求从 <0.46,>=0.29 更新为 >=0.29,<0.47 (#6250) @dependabot[bot]

  • [MNT] [Dependabot](deps): 将 holidays 要求从 <0.47,>=0.29 更新为 >=0.29,<0.48 (#6302) @dependabot[bot]

  • [MNT] [Dependabot](deps): 将 arch 要求从 <6.4.0,>=5.6 更新为 >=5.6,<7.1.0 (#6307, #6309) @dependabot[bot]

  • [MNT] [Dependabot](deps): 将 pytest-xdist 要求从 <3.6,>=3.3 更新为 >=3.3,<3.7 (#6316) @dependabot[bot]

  • [MNT] [Dependabot](deps): 将 mne 要求从 <1.7,>=1.5 更新为 >=1.5,<1.8 (#6317) @dependabot[bot]

  • [MNT] 将 dask 要求从 <2024.2.2 更新为 <2024.4.2,在 pyproject.toml 中添加新的必需 dataframe 额外项。(#6282) @yarnabrina

修复#

数据加载器#

预测#

  • [BUG] 修复 NaiveForecastersp>1 时的问题 (#5923) @benHeid

  • [BUG] 修复 FallbackForecasternan_predict_policy='raise' 时与 ForecastByLevel 失败的问题 (#6231) @ninedigits

  • [BUG] 为 bug 3177 添加回归测试 (#6246) @benHeid

  • [BUG] 在 pandas freq 弃用期间,修复 neuralforecast 自动频率的失败测试 (#6321) @geetu040

概率分布与模拟器#

  • [BUG] 修复 Laplace 分布的 var (#6324) @fkiraly

  • [BUG] 修复 Empirical 索引为 pd.MultiIndex 以适应分层数据索引 (#6341) @fkiraly

时间序列聚类#

时间序列回归#

  • [BUG] 在 CNNRegressor 中,修复 verbose=Trueself.model not found 错误 (#6232) @morestart

变换#

贡献者#

@Anteemony, @astrogilda, @benHeid, @duydl, @fkiraly, @geetu040, @iamSathishR, @julian-fong, @MihirsinhChauhan, @MMTrooper, @mobley-trent, @morestart, @ninedigits, @pranavvp16, @Ram0nB, @SamruddhiNavale, @shlok191, @slavik57, @tm-slavik57, @toandaominh1997, @vandit98, @yarnabrina, @Z-Fran

版本 0.28.0 - 2024-03-27#

维护版本:

  • 计划中的弃用和变更操作

  • pandas 2.2.X 的支持

有关最后的非维护内容更新,请参见 0.27.1。

依赖项更改#

  • sktime 现在支持 pandas 2.2.X,边界已更新为 <2.3.0,>=1.1

  • temporian (转换软依赖)的版本限制已更新为 >=0.7.0,<0.9.0

  • pykalman-bardo 的依赖已被原始分支 pykalman 替换。pykalman-bardo 已被合并回 pykalman,后者不再被放弃。这是一个软依赖,切换不会影响使用其依赖集之一安装 sktime 的用户。

弃用和移除#

预测#

  • ProphetPiecewiseLinearTrendForecaster 中,季节性参数 yearly_seasonalityweekly_seasonalitydaily_seasonality 现在默认值为 False。要保留之前的行为,请将这些参数显式设置为 "auto"

变换#

  • Catch22 转换器中的 n_jobs 参数已被弃用,并将在 0.29.0 版本中移除。用户应通过 set_config 传递并行化后端参数。要指定 n_jobs,请使用 backend:parallel 配置中支持它的任何后端,例如 "loky""multithreading"n_jobs 参数应通过 backend:parallel:params 配置传递。要保留先前的行为,并设置特定的 n_jobs=x,请使用 set_config(**{"backend:parallel": "loky", "backend:parallel:params": {"n_jobs": x}})

  • Catch22Wrapper 转换器中的 n_jobs 参数已被移除。用户应通过 set_config 传递并行化后端参数。要指定 n_jobs,请使用 backend:parallel 配置中支持它的任何后端,例如 "loky""multithreading"n_jobs 参数应通过 backend:parallel:params 配置传递。要保留先前的行为,并使用特定的 n_jobs=x 设置,请使用 set_config(**{"backend:parallel": "loky", "backend:parallel:params": {"n_jobs": x}})

  • panel.dictionary_based.PAA 在 0.27.0 版本中已重命名为 PAAlegacy,而 sktime.transformations.series.PAA2 已重命名为 PAAPAA 现在是 sktime 中的主要 PAA 实现。在弃用周期完成后,估计器将不再以之前的名称提供。要迁移依赖代码以使用新名称,请执行以下操作之一:1. 将 sktime.transformations.panel.dictionary_based 中的 PAA 替换为 sktime.transformations.series.paa 中的 PAA2,并相应地切换参数名称,或 2. 将 sktime.transformations.panel.dictionary_based 中的 PAA 替换为 sktime.transformations.panel.dictionary_based 中的 PAAlegacy,参数值无需更改。

  • panel.dictionary_based.SAX 在 0.27.0 版本中已重命名为 SAXlegacy,而 sktime.transformations.series.SAX2 已重命名为 SAXSAX 现在是 sktime 中的主要 SAX 实现,而之前的 SAX 将继续作为 SAXlegacy 提供。在弃用周期完成后,这些估计器将不再以其之前的名称提供。要迁移依赖代码以使用新名称,请执行以下操作之一:1. 将 sktime.transformations.panel.dictionary_based 中的 SAX 替换为 sktime.transformations.series.paa 中的 SAX2,并相应地切换参数名称,或 2. 将 sktime.transformations.panel.dictionary_based 中的 SAX 替换为 sktime.transformations.panel.dictionary_based 中的 SAXlegacy,参数值无需更改。

内容#

  • [MNT] 0.28.0 弃用和变更操作 (#6198) @fkiraly

  • [MNT] 将 pandas 限制为 pandas<2.3.0 (#5841) @fkiraly

  • [MNT] 更新 temporian 绑定到 <0.9.0,!=0.8.0 (#6222) @fkiraly

  • [MNT] 恢复从 pykalmanpykalman-bardo 的切换 (#6114) @fkiraly

  • [MNT] [Dependabot](deps-dev): 将 pytest-cov 要求从 <4.2,>=4.1 更新为 >=4.1,<5.1 (#6215) @dependabot[bot]

  • [MNT] [Dependabot](deps): 将 tj-actions/changed-files 从 43 升级到 44 (#6226) @dependabot[bot]

  • [ENH] 在仓库软依赖隔离测试中,get_test_params 不失败的更严格条件 (#6223) @fkiraly

版本 0.27.1 - 2024-03-25#

亮点#

依赖项更改#

  • temporian 现在是 ``sktime``(转换)的软依赖项

  • holidays (转换软依赖) 的版本限制已更新为 >=0.29,<0.46

  • dtw-python 的版本限制已更新为 >=1.3,<1.5

核心接口变更#

  • 时间序列分割器现在成为完全的一等公民。接口一致性现在可以通过 check_estimator 进行检查。

弃用和移除#

预测#

cINNForecaster 将在 sktime 0.29.0 中更名为 CINNForecaster。该估计器在其当前位置下以未来名称可用,并且在 0.30.0 之前将继续以其弃用的名称可用。为了准备名称更改,请将任何 cINNForecaster 的导入替换为 CINNForecaster 的导入。

增强功能#

基准测试, 指标, 分割器#

数据加载器#

  • [ENH] 为单文件类型的数据加载器自动推断文件后缀 (#6045) @SaiRevanth25

数据类型、检查、转换#

  • [ENH] 在从 pd-multiindex 转换为 df-list mtype 时使用 Index.unique 而不是 set@fkiraly 提交 (#6007)

距离, 核函数#

  • [ENH] 为 shapeDTW 设置的第二个测试参数集 (#6093) @XinyuWuu

  • [ENH] 为 ScipyDist 类添加 colalign 功能,如文档字符串中指定 (#6110) @fnhirwa

预测#

  • [ENH] 预测调优器,return_n_best_forecasters=-1 以返回所有调优器的性能 (#6031) @HassnHamada

  • [ENH] NeuralForecastRNN freq 自动检测功能 (#6039) @geetu040

  • [ENH] 基于 neuralforecast 的 LSTM 模型,由 @pranavvp16 提供 (#6047)

  • [ENH] 修复 ForecastingHorizon.freqpandas 2.2.X 中的处理,由 @fkiraly 提交 (#6057)

神经网络模板#

时间序列分类#

  • [ENH] 通过 @fnhirwa (#6046) 从 ProximityForestProximityTreeProximityStump 的参数中移除私有方法

时间序列聚类#

时间序列回归#

  • [ENH] 从 sktime-dl 迁移 DL 回归器:CNTC, InceptionTime, MACNN (#6038) @nilesh05apr

  • [ENH] MultiplexRegressor - 时间序列回归器的自动机器学习多路复用器 (#6075) @ksharma6

变换#

测试框架#

文档#

维护#

  • [MNT] [Dependabot](deps-dev): 将 holidays 要求从 <0.45,>=0.29 更新为 >=0.29,<0.46 (#6164) @dependabot[bot]

  • [MNT] [Dependabot](deps-dev): 将 dtw-python 要求从 <1.4,>=1.3 更新为 >=1.3,<1.5 (#6165) @dependabot[bot]

  • [MNT] [Dependabot](deps): 将 tj-actions/changed-files 从 42 升级到 43 (#6125) @dependabot[bot]

  • [MNT] 临时跳过 ShapeletTransformPyts 的间歇性失败测试 (#6172) @fkiraly

  • [MNT] 创建构建工具以检查无效的反引号 (#6088) @geetu040

  • [MNT] 将 catch22 模块与 numba 实用程序解耦 (#6101) @fkiraly

  • [MNT] 绑定 temporian<0.8.0 (#6184) @fkiraly

  • [MNT] 确保 Update Contributors 不在主分支上运行 (#6189) @Greyisheep, @duydl

  • [MNT] 初始化更改周期 (0.28.0) 以将 cINNForecaster 重命名为 CINNForecaster (#6121) @geetu040

  • [MNT] 修复由于 tensorflow 更新导致的测试失败 (#6098) @benHeid

  • [MNT] 在 test_evaluate_error_score 中静默间歇性失败 (#6058) @fkiraly

  • [MNT] 在 forecasting 额外功能中更新 statsforecast 版本 (#6064) @yarnabrina

  • [MNT] Docker 文件由 (#6076) @deysanjeeb 更新

  • [MNT] Catch22 弃用操作时间调整 (#6123) @fkiraly

  • [MNT] 仅在 PR 上运行 update-contributors 工作流(通过 (#6133) @fkiraly

  • [MNT] 临时跳过 ShapeletTransformPyts 的间歇性失败测试 (#6172) @fkiraly

  • [MNT] 在 ‘Install and Test’ GHA 工作流程中启用并发设置 (#6074) @MEMEO-PRO

  • [MNT] 临时跳过 main 上的一些偶发失败 (#6208) @fkiraly

修复#

距离, 核函数#

估计器注册#

  • [BUG] 在 all_estimators 中移除不必要的行 (#6103) @fkiraly

预测#

  • [BUG] 修复了当 X 传递给 predict 但未传递给 fitSARIMAX 的失败问题 (#6005) @Abhay-Lejith

  • [BUG] 修复 BaseForecaster.predict_var 默认值,如果 predict_proba 已实现 (#6067) @fkiraly

  • [BUG] 在 ForecastingHorizon 中,当索引值少于3个时,忽略 pd.infer_freq 上的 ValueError (#6097) @tpvasconcelos

时间序列分类#

  • [BUG] 修复深度学习分类器和回归器中的 super 调用 (#6139) @fkiraly

  • [BUG] 在 SimpleRNNClassifier 和回归器中解决了错误的参数名 lr,修复了 ResNetClassifierbatch_size 参数的小问题 (#6154) @vandit98

时间序列回归#

  • [BUG] 修复 BaseRegressor.score 方法在 sklearn.metrics r2_score 接收到意外的关键字参数 'normalize' 时失败的问题 (#6019) @Cyril-Meyer

  • [BUG] 修复深度学习分类器和回归器中的 super 调用 (#6139) @fkiraly

  • [BUG] 修复 InceptionTimeRegressor 中的网络构建 (#6140) @fkiraly

变换#

测试框架#

  • [BUG] 修复 deep_equals 在比较不同长度的 ForecastingHorizon 时的错误,由 @MBristle 提交 (#5954)

网页#

  • [BUG] 修复估计器概览的搜索功能不工作 (#6105) @duydl

贡献者#

@Abhay-Lejith, @achoum, @albertoazzari, @Alex-JG3, @astrogilda, @benHeid, @Cyril-Meyer, @deysanjeeb, @duydl, @fkiraly, @fnhirwa, @fspinna, @geetu040, @Greyisheep, @HassnHamada, @ianspektor, @javiber, @julian-fong, @julnow, @KaustubhUp025, @kcentric, @ksharma6, @manuel-munoz-aguirre, @MBristle, @MEMEO-PRO, @meraldoantonio, @nilesh05apr, @pranavvp16, @SaiRevanth25, @sahusiddharth, @shankariraja, @stevcabello, @tiloye, @tpvasconcelos, @vandit98, @XinyuWuu, @YashKhare20

版本 0.27.0 - 2024-02-28#

维护版本:

  • 计划中的弃用和变更操作

  • 对软依赖 numba 0.59python 3.12 下的 numba 的支持

  • 小幅文档更新,GSoC 2024 网站更新

有关最新的非维护内容更新,请参见 0.26.1。

依赖项更改#

  • numba 的版本限制已更新为 <0.60

弃用和移除#

预测调谐器#

  • 在预测调优器 ForecastingGridSearchCV, ForecastingRandomizedSearchCV, ForecastingSkoptSearchCV 中,joblib 后端特定的参数 n_jobs, pre_dispatch 已被移除。用户应通过 backend_params 参数传递后端参数。直接替代方案是 backend='joblib',以及通过 backend_params 传递的 n_jobspre_dispatch

变换#

  • SplitterSummarizer 中,remember_data 参数已被移除。用户应改用 fit_ontransform_on 参数。逻辑上相同的参数替换为:remember_data=True 替换为 fit_on='all_train'transform_on='all_train'remember_data=False 替换为 fit_on='transform_train'transform_on='transform_train'

  • panel.dictionary_based.PAA 在 0.27.0 中已重命名为 PAAlegacy,而 sktime.transformations.series.PAA2 已重命名为 PAAPAA 现在是 sktime 中的主要 PAA 实现,而之前的 PAA 将继续作为 PAAlegacy 提供。直到 0.28.0,这两个估计器也可以通过它们之前的名称使用。为了准备名称更改,请执行以下操作之一:1. 将 sktime.transformations.panel.dictionary_based 中的 PAA 使用替换为 sktime.transformations.series.paa 中的 PAA2,并相应地切换参数名称,或者 2. 将 sktime.transformations.panel.dictionary_based 中的 PAA 使用替换为 sktime.transformations.panel.dictionary_based 中的 PAAlegacy,参数值无需更改。

  • panel.dictionary_based.SAX 在 0.27.0 中已重命名为 SAXlegacy,而 sktime.transformations.series.SAX2 已重命名为 SAXSAX 现在是 sktime 中的主要 SAX 实现,而之前的 SAX 将继续作为 SAXlegacy 提供。直到 0.28.0,这两个估计器也可以通过它们之前的名称使用。为了准备名称更改,请执行以下操作之一:1. 将 sktime.transformations.panel.dictionary_based 中的 SAX 替换为 sktime.transformations.series.paa 中的 SAX2,并相应地切换参数名称,或 2. 将 sktime.transformations.panel.dictionary_based 中的 SAX 替换为 sktime.transformations.panel.dictionary_based 中的 SAXlegacy,参数值不变。

内容#

文档#

  • [DOC] 改进了 HierarchyEnsembleForecaster 文档字符串的格式 (#6008) @fkiraly

  • [DOC] 在API参考中添加缺失的 PluginParamsTransformer (#6010) @fkiraly

  • [DOC] 在行为准则中更新联系链接 (#6011) @fkiraly

  • [DOC] 2024 夏季项目链接在 sktime.net 着陆页 (#6013) @fkiraly

维护#

版本 0.26.1 - 2024-02-26#

亮点#

依赖项更改#

  • dask (数据容器和并行化后端) 的版本限制已更新为 <2024.2.2

  • holidays (转换软依赖) 的版本范围已更新为 >=0.29,<0.44

  • pyts 现在是分类和转换的软依赖项

核心接口变更#

变换#

所有转换双下划线现在自动将 sklearn 转换器强制转换为 sktime 转换器,在使用双下划线指定的 sktime 管道中使用 sklearn 转换器时,不再需要将 TabularToSeriesAdaptor 包装起来。

弃用和移除#

变换#

Catch22Wrappern_jobs 参数已被弃用,并将在 sktime 0.28.0 中移除。用户应通过 set_config 传递并行化后端参数。

增强功能#

基准测试, 指标, 分割器#

  • [ENH] 为 MeanAbsolutePercentageError 实现高效的 _evaluate_by_index (#5842) @fkiraly

数据加载器#

数据类型、检查、转换#

  • [ENH] 基于 polarsTable mtype,特征名称元数据 (#5757) @fkiraly

预测#

  • [ENH] 条件可逆神经网络预测器 (#5339) @benHeid

  • [ENH] 公开 ProphetPiecewiseLinearTrendForecaster 的季节性参数 (#5834) @sbuse

  • [ENH] 集中化安全克隆委托标签的逻辑 - 预测 (#5845) @fkiraly

  • [ENH] FallbackForecaster - 支持概率预测 (#5847) @ninedigits

  • [ENH] 从 statsmodels 库中访问 ARIMA 的接口 (#5857) @arnaujc91

  • [ENH] 改进了预测器和转换中一些错误消息的特异性 (#5882) @fkiraly

  • [ENH] statsforecast AutoTBATS 直接接口估计器 (#5908) @yarnabrina

  • [ENH] 直接 statsforecast 接口估计器的几个更新 (#5920) @yarnabrina

  • [ENH] 为 FallbackForecaster 添加 nan 策略处理 (#5924) @ninedigits

  • [ENH] ForecastX 选项,用于在预测未来未知的外生变量时使用未来已知的外生变量 (#5926) @fkiraly

  • [ENH] neuralforecast 适配器和 rnn 预测器 (#5962) @yarnabrina

  • [ENH] 在抽象并行化后端上重新架构 ForecastingSkoptSearchCV (#5973) @fkiraly

  • [ENH] 在 ForecastingPipeline 中,允许将 None X 传递给转换器 (#5977) @albahhar, @fkiraly

时间序列注释#

时间序列分类#

  • [ENH] k-近邻分类器:支持非暴力算法和非预计算模式以提高内存效率 (#5937) @fkiraly

  • [ENH] 适配器到 pyts KNeighborsClassifier (#5939) @fkiraly

  • [ENH] 适配 tslearnKNeighborsTimeSeriesClassifier (#5952) @fkiraly

  • [ENH] 分类器的特征重要性能力标签 (#5969) @sanjayk0508

时间序列回归#

变换#

  • [ENH] pyts 适配器和 pyts ROCKET 的接口 (#5851) @fkiraly

  • [ENH] 在转换器双下划线中,统一 sklearn 转换器的强制转换 (#5869) @fkiraly

  • [ENH] 改进了预测器和转换中一些错误消息的特异性 (#5882) @fkiraly

  • [ENH] 为 TSInterpolator 的第二组测试参数 (#5910) @sanjayk0508

  • [ENH] 改进了 BaseTransformer.transform 中的输出类型检查错误消息 (#5921) @fkiraly

  • [ENH] 重构 Catch22Wrapper 转换器以在内部使用 pd.Series 类型 (#5983) @fkiraly

测试框架#

  • [ENH] 测试在 pyproject.toml 中包依赖关系发生变化的估计器 (#5727) @fkiraly

修复#

预测#

  • [BUG] 移除 _pytorch.py 的 _fit 中 _fh_y 的重复设置 (#5889) @benHeid

  • [BUG] BaseForecaster - 如果向量化,将 check_fh 移至内部循环 (#5900) @ciaran-g

  • [BUG] 修复 ConformalIntervalssample_frac 过低时偶尔失败的问题 (#59/2) @fkiraly

流水线#

  • [BUG] 在 Pipeline 中,仅当新数据到达时清空虚拟步骤的缓冲区 (#5837) @benHeid

概率分布与模拟器#

  • [BUG] 修复 TDistribution 方法中缺失的 loc/scale 参数 (#5942) @ivarzap

时间序列分类#

  • [BUG] 修正了 CNNClassifier 的默认损失函数 (#5852) @Vasudeva-bit

  • [BUG] 修复 BaseClassifier.fit_predict 对于多输出 y 和非空 cv 的问题 (#5928) @fkiraly

  • [BUG] 修复 BaseTransformer 中的输入检查错误信息 (#5947) @fkiraly

变换#

维护#

  • [MNT] 对模块化CI框架的改进 - 第二部分,合并框架 (#5785) @fkiraly

  • [MNT] pandas 2.2.X 兼容性修复 (#5840) @fkiraly

  • [MNT] 通过根据版本使用不同的模拟方法修复 moto 的破坏性更改 (#5858) @yarnabrina

  • [MNT] 解决一些 pandas 的弃用问题 (#5883) @fkiraly

  • [MNT] 通过使用较新的 root_mean_absolute_error 函数解决了 RMSE 的 FutureWarning 问题 (#5884) @yarnabrina

  • [MNT] 当缺少软依赖时跳过 mlflow 测试 (#5888) @achieveordie

  • [MNT] 修复失败的 CRON “测试所有” 工作流 (#5925) @fkiraly

  • [MNT] 更新多个操作的版本 (#5929) @yarnabrina

  • [MNT] 添加 codecov 令牌到覆盖率上传 (#5930) @yarnabrina

  • [MNT] 主修复:在CI中添加检查步骤以检测CI中的步骤 (#5945) @fkiraly

  • [MNT] 处理一些即将弃用的功能 (#5971) @fkiraly

  • [MNT] 避免在 CI 中对文档/模板/等更改运行单元测试 (#5976) @yarnabrina

  • [MNT] [Dependabot](deps-dev): 将 dask 要求从 <2024.1.1 更新到 <2024.1.2 (#5861) @dependabot[bot]

  • [MNT] [Dependabot](deps-dev): 将 dask 要求从 <2024.1.2 更新到 <2024.2.1 (#5958) @dependabot[bot]

  • [MNT] [Dependabot](deps-dev): 将 holidays 要求从 <0.43,>=0.29 更新为 >=0.29,<0.44 (#5965) @dependabot[bot]

  • [MNT] [Dependabot](deps-dev): 将 dask 要求从 <2024.2.1 更新到 <2024.2.2 (#5991) @dependabot[bot]

文档#

贡献者#

@Abhay-Lejith, @achieveordie, @albahhar, @arnaujc91, @benHeid, @ciaran-g, @Cyril-Meyer, @eduardojp26, @fkiraly, @ivarzap, @ninedigits, @oleeviyababu, @sanjayk0508, @sbuse, @Vasudeva-bit, @yarnabrina

版本 0.26.0 - 2024-01-27#

维护版本:

  • scikit-learn 1.4.X 的支持

  • 计划弃用

  • 小错误修复

关于最后的非维护内容更新,请参见 0.25.1。

依赖项更改#

  • scikit-learn 的版本限制已更新为 >=0.24.0,<1.5.0

弃用和移除#

基准测试, 指标, 分割器#

  • 在预测中,evaluate 中的 kwargs 已被移除。用户应通过 backend_params 参数传递后端参数。

数据类型、检查、转换#

  • check_is_mtype 中,msg_return_dict 的默认值现已更改为 "dict"

预测调谐器#

  • 在预测调优器 ForecastingGridSearchCV, ForecastingRandomizedSearchCV, ForecastingSkoptSearchCV 中,使用 joblib 后端特定参数 n_jobs, pre_dispatch 已被弃用,并将在 sktime 0.27.0 中移除。用户应通过 backend_params 参数传递后端参数。

时间序列分类#

  • SimpleRNNClassifier 中,num_epochs 参数已被重命名为 n_epochs。原名 num_epochs 的参数现已移除。

时间序列回归#

  • SimpleRNNRegressor 中,num_epochs 参数已被重命名为 n_epochs。原来的 num_epochs 参数已被移除。

内容#

版本 0.25.1 - 2024-01-24#

亮点#

  • make_reduction 中,直接减少预测器现在支持来自 skpro 的概率性表格回归器 (#5536) @fkiraly

  • 新的、高效的、可并行化的 PAA 和 SAX 转换器实现,作为 PAA2SAX2 提供(#5742@steenrotsman

  • FallbackForecaster,用于异常处理的多个预测器的回退链(#5779@ninedigits

  • 时间序列分类:sktime 原生网格搜索,autoML 的复用器 (#4596, #5678) @achieveordie, @fkiraly

  • IgnoreX - 忽略外生数据的预测合成器,用于调优 (#5769) @hliebert, @fkiraly

  • sktime-dl 迁移的分类器:CNTC 分类器 (#3978) @aurumnpegasus

  • 算法的作者和维护者现在通过标签 "authors""maintainers" 进行追踪,详见下文

依赖项更改#

核心接口变更#

BaseObject 和基础框架#

  • 估计器和对象现在在新标签 "authors""maintainers" 中记录作者和维护者信息。这仅对 sktime 本身和兼容的第三方包中的估计器是必需的。它还用于生成 sktime 网页查找功能中使用的小包头。

  • sktime 包中,作者和维护者信息不再记录在 CODEOWNERS 中,而是记录在新标签 "authors""maintainers" 中。作者和维护者不需要对此更改采取行动,因为这是由 sktime 维护者执行的。然而,鼓励作者和维护者检查标签中的信息,并标记任何意外的遗漏或错误。

基准测试, 指标, 分割器#

  • 预测点预测指标现在也通过 set_config 支持并行化,适用于分层或多变量数据的广播。

预测#

  • 预测器现在可以通过将配置 "remember_data" 设置为 False 来防止存储所有已见数据的引用,即 self._yself._X,这可以通过 set_config 实现。这对于预测器的序列化非常有用。目前,该设置仅支持数据和预测器的组合,其中不会触发实例或变量广播,但该功能将在未来扩展到所有情况。

参数估计与假设检验#

  • 参数插件或基于估计的参数调整估计器现在可以通过 * 双下划线快速构建,这将构建一个 PluginParamsForecasterPluginParamsTransformer,其中所有拟合的参数(get_fitted_params)从左元素插入到右元素(set_params),参数名称匹配。例如,SeasonalityACF() * Deseasonalizer() 将构建一个 Deseasonalizer,其 sp``(季节性周期)参数由 ``SeasonalityACF 调整,通过序列上的 ACF 显著性标准估计 sp

  • * 这个双下划线符号绑定在左边,例如 Differencer() * SeasonalityACF() * Deseasonalizer() 将构造一个 Deseasonalizer,其 sp``(季节性周期)参数由 ``SeasonalityACF 调整,通过在差分数据上使用 ACF 显著性标准估计 sp``(以确保平稳性)。这里,第一次差分不会应用于 ``Deseasonalizer,而是仅应用于 SeasonalityACF 的输入,因为第一个 * 构造了一个参数估计器,而第二个 * 将该参数估计器插入到 Deseasonalizer 中。

变换#

  • 转换,即 BaseTransformer 后代实例,现在也可以在 _transform 中返回 None,这被解释为空数据。

弃用和移除#

变换#

  • panel.dictionary_based.PAA 将在 sktime 0.27.0 中重命名为 PAAlegacy,而 sktime.transformations.series.PAA2 将重命名为 PAAPAA2 将成为 sktime 中的主要 PAA 实现,而当前的 PAA 将继续作为 PAAlegacy 可用。两个估计器在其当前位置下也可以使用它们未来的名称,并且在 0.28.0 之前将可以使用它们已弃用的名称。为了准备名称更改,请执行以下操作之一:1. 将 sktime.transformations.panel.dictionary_based 中的 PAA 替换为 sktime.transformations.series.paa 中的 PAA2,并相应地切换参数名称,或者 2. 将 sktime.transformations.panel.dictionary_based 中的 PAA 替换为 sktime.transformations.panel.dictionary_based 中的 PAAlegacy,参数值不变。

  • panel.dictionary_based.SAX 将在 sktime 0.27.0 中重命名为 SAXlegacy,而 sktime.transformations.series.SAX2 将重命名为 SAXSAX2 将成为 sktime 中的主要 SAX 实现,而当前的 SAX 将继续作为 SAXlegacy 可用。两个估计器在其当前位置下也可以使用它们未来的名称,并且在 0.28.0 之前将可以使用它们已弃用的名称。为了准备名称更改,请执行以下操作之一:1. 将 sktime.transformations.panel.dictionary_based 中的 SAX 使用替换为 sktime.transformations.series.paa 中的 SAX2,并相应地切换参数名称,或 2. 将 sktime.transformations.panel.dictionary_based 中的 SAX 使用替换为 sktime.transformations.panel.dictionary_based 中的 SAXlegacy,参数值不变。

增强功能#

BaseObject 和基础框架#

  • [ENH] 更新 deep_equals 以适应插件,例如 polars 的插件 (#5504) @fkiraly

  • [ENH] 用 object_type 标签检查替换 isinstance (#5657) @benheid

  • [ENH] 作者和维护者标签 (#5754) @fkiraly

  • [ENH] 启用 all_tags 以检索估计器和对象标签 (#5798) @fkiraly

  • [ENH] 从 CODEOWNERS 中移除维护者信息,以支持估计器标签 (#5808) @fkiraly

  • [ENH] 对齐和距离模块的作者和维护者标签 (#5801) @fkiraly

  • [ENH] 预测模块的作者和维护者标签 (#5802) @fkiraly

  • [ENH] 发行版和参数拟合模块的作者和维护者标签 (#5803) @fkiraly

  • [ENH] 分类、聚类和回归模块的作者和维护者标签 (#5807) @fkiraly

  • [ENH] transformer 模块的作者和维护者标签 (#5800) @fkiraly

基准测试, 指标, 分割器#

数据类型、检查、转换#

  • [ENH] 在 VectorizedDF 中,部分解耦内部数据存储与方法 (#5681) @fkiraly

预测#

参数估计与假设检验#

  • [ENH] 简化 BaseEstimator._get_fitted_params()BaseParamFitter 对该方法的继承 (#5633) @tpvasconcelos

  • [ENH] 将估计器的参数插件转换为转换器,正确连接双下划线 (#5764) @fkiraly

概率分布与模拟器#

时间序列分类#

变换#

  • [ENH] 在错误消息中更好地解释实例级转换器中fit/transform实例链接,并指向常见解决方案 (#5652) @fkiraly

  • [ENH] 新的 PAASAX 转换器实现 (#5742) @steenrotsman

  • [ENH] SplitterSummarizer 的功能升级 - 对内部 fit/transform 输入的细粒度控制 (#5750) @fkiraly

  • [ENH] 允许 BaseTransformer._transform 返回 None (#5772) @fkiraly, @hliebert

测试框架#

  • [ENH] 使用并行化后端固定装置重构测试以实现程序化后端固定装置查找 (#5714) @fkiraly

  • [ENH] 进一步重构并行化后端测试夹具以使用中心位置 (#5734) @fkiraly

修复#

BaseObject 和基础框架#

  • [BUG] 修复所有情况下的 scitype 推断工具 (#5672) @fkiraly

  • [BUG] 修复了与自定义 joblib 后端选择相关的错误消息中的小拼写错误 (#5724) @fkiraly

  • [BUG] 当依赖缺少 __version__ 时,在 show_versions 中处理 AttributeError (#5793) @yarnabrina

  • [BUG] 修复并行化后端测试夹具重构中的类型错误 (#5760) @fkiraly

基准测试, 指标, 分割器#

  • [BUG] 修复适用于新版 sklearn 指标的动态 make_forecasting_scorer (#5717) @fkiraly

  • [BUG] 修复 test_evaluate_error_score 以跳过在 joblib 后端为 "loky""multiprocessing" 时预期的警告测试 (#5780) @fkiraly

数据加载器#

  • [BUG] 修复 sktime.datasets.load_UCR_UEA_dataset 中的 extract_path 参数 (#5744) @steenrotsman

数据类型、检查、转换#

  • [BUG] 修复 deep_equalsdtype="object"np.array 的处理 (#5697) @fkiraly

预测#

  • [BUG] 修复 ForecastingHorizon.get_expected_pred_idx sort_time (#5726) @fkiraly

  • [BUG] 在 BaggingForecaster 中,修复 random_state 处理 (#5730) @fkiraly

流水线#

时间序列分类#

  • [BUG] 修复 BaseClassifierBaseRegressorpredict 输出转换失败的问题,如果 y_inner_mtype 标签是一个列表 (#5680) @fkiraly

  • [BUG] 修复 test_multioutput 以支持真正的多输出分类器 (#5700) @fkiraly

时间序列回归#

  • [BUG] 修复 BaseClassifierBaseRegressorpredict 输出转换失败的问题,如果 y_inner_mtype 标签是一个列表 (#5680) @fkiraly

变换#

  • [BUG] 在 ExponentialSmoothing 中跳过偶发的测试错误 (#5516) @achieveordie

  • [BUG] 修复 TSFreshClassifier.predict 中内部特征列的间歇性排列问题 (#5673) @fkiraly

  • [BUG] 修复转换器 test_base 中的后端字符串 (#5695) @fkiraly

  • [BUG] 确保 MultiRocketMultivariate 使用 random_state (#5710) @chrico-bu-uab

测试框架#

维护#

  • [MNT] [Dependabot](deps-dev): 将 sphinx-issues 要求从 <4.0.0 更新到 <5.0.0 (#5792) @dependabot[bot]

  • [MNT] [Dependabot](deps): 将 tj-actions/changed-files 从 41 升级到 42 (#5777) @dependabot[bot]

  • [MNT] [Dependabot](deps-dev): 将架构要求从 <6.3.0,>=5.6 更新为 >=5.6,<6.4.0 (#5771) @dependabot[bot]

  • [MNT] [Dependabot](deps-dev): 将 mne 要求从 <1.6,>=1.5 更新为 >=1.5,<1.7 (#5585) @dependabot[bot]

  • [MNT] [Dependabot](deps-dev): 将 dask 要求从 <2023.12.2 更新到 <2024.1.1 (#5748) @dependabot[bot]

  • [MNT] 改进模块化CI框架 - 更清晰的命名, pyproject 处理 (#5713) @fkiraly

  • [MNT] 临时停用新CI (#5795) @fkiraly

  • [MNT] 修复 n_jobspre_dispatch 在预测调优器中的错误弃用逻辑,将弃用更新至 0.27.0 (#5784) @fkiraly

  • [MNT] 将binder dockerfile中的python版本更新为3.11 (#5762) @fkiraly

  • [MNT] 解决 pandas 中的各种弃用问题 (#5733) @fkiraly, @yarnabrina

  • [MNT] scikit-learn 1.4.0 兼容性补丁 (#5782, #5811) @fkiraly

  • [MNT] 代码质量更新 (#5786) @yarnabrina

  • [MNT] 将 SAX2PAA2 的主要实现更名为 SAXPAA 的变更周期 (#5799) @fkiraly

  • [MNT] 从 CODEOWNERS 中移除维护者信息,以支持估计器标签 (#5808) @fkiraly

  • [MNT] 解决更多 pandas 弃用问题 (#5816) @fkiraly

  • [MNT] 在 EnsembleForecaster 中处理 pd.DataFrame.groupby(axis=1) 的弃用问题 (#5707) @ninedigits

  • [MNT] 为 MultiRocketMultiRocketMultivariate 添加缺失的 __author__ 字段 (#5698) @fkiraly

  • [MNT] 解决 DataFrame.groupby(axis=1) 在指标类中的弃用问题 (#5709) @fkiraly

  • [MNT] 在 transformations 依赖集中添加了上限 pycatch22<0.4.5 以避免在 Windows 上安装错误 (#5670) @yarnabrina

  • [MNT] 重构新的 CI 以修复一些错误和其他小改进 (#5638) @yarnabrina

  • [MNT] 在 pyproject.toml 中更新 tslearn 依赖版本 (#5686) @DManowitz

  • [MNT] 修复了几个拼写错误 (#5639) @yarnabrina

文档#

  • [DOC] 在 CONTRIBUTORS.md 中添加注释,说明源文件为 all-contributorsrc (#5687) @fkiraly

  • [DOC] 改进了 TrendForecasterPolynomialTrendForecaster 的文档字符串 (#5747) @fkiraly

  • [DOC] 更新了算法包含指南 (#5753) @fkiraly

  • [DOC] 改进了 TimeSeriesForestClassifier 的文档字符串 (#5741) @fkiraly

  • [DOC] 修复 API 参考中转换器的 scitype 字符串 (#5759) @fkiraly

  • [DOC] 改进了扩展模板中标签部分的格式 (#5812) @fkiraly

  • [DOC] Imputer: 文档字符串清晰度改进,条件参数处理逻辑 (#3916) @aiwalter, @fkiraly`

  • [DOC] 时间序列分割器的扩展模板 (#5769) @fkiraly

  • [DOC] 更新软依赖处理指南,针对基于标签的依赖检查的测试 (#5756) @fkiraly

  • [DOC] 修复API文档中的所有导入失败及相关的缺失导出 (#5752) @fkiraly

  • [DOC] 在预测调优器的文档字符串中改进对 strategy="refit" 的描述 (#5711) @fkiraly

  • [DOC] 在预测调优器中关于 forecaster 的正确类型声明 (#5699) @fkiraly

  • [DOC] 各种次要 API 参考改进 (#5721) @fkiraly

  • [DOC] 将 ReducerTransformDirectReductionForecaster 添加到 API 参考 (#5690) @fkiraly

  • [DOC] 在 README.md 中移除过时的 sktime-dl 引用 (#5685) @fkiraly

贡献者#

@achieveordie, @aiwalter, @alex-jg3, @aurumnpegasus, @benheid, @chrico-bu-uab, @corradomio, @DManowitz, @fkiraly, @hliebert, @NguyenChienFelix33, @ninedigits, @kurayami07734, @steenrotsman, @tpvasconcelos, @tvdboom, @yarnabrina

版本 0.25.0 - 2023-12-26#

基于类更新和计划弃用的发布:

关于上一次较大的功能更新,请参见 0.24.2。

核心接口变更#

时间序列分类与回归#

  • 基类框架现在支持多输出分类器或回归器。所有分类器和回归器现在都能够进行多输出预测,包括所有第三方分类器和回归器。现在可以传递一个多输出的 y,形式为 2D 的 np.ndarraypd.DataFrame,每列代表一个输出。predict 方法将返回相同类型的预测输出。为了保持向下兼容性,predict 对于单变量输出将始终返回 1D 的 np.ndarray,目前这不会被弃用。

  • 真正的多输出分类器和回归器被标记为新的标签 capability:multioutputTrue。所有其他分类器和回归器通过 y 的列进行广播,并且可以通过 set_config 选择并行化后端,通过设置 backend:parallelbackend:parallel:params 配置标志,详情请参阅 set_config 的文档字符串。广播功能会自动扩展到所有现有的第三方分类器和回归器,一旦 sktime 更新,通过基类继承,估计器类本身不需要更新。

  • 分类器和回归器现在有一个标签 y_inner_mtype,这允许扩展者指定一个内部 mtype,类型为 Table 科学类型。标签中指定的 mtype 是私有 _fit 方法中看到的 y 的保证 mtype。默认值与之前隐含的相同,即 numpy1D mtype。因此,第三方分类器和回归器不需要更新,并且应该完全向上兼容。

变换#

  • 基类框架现在支持将``Panel``数据聚合为``Series``数据的转换,即面板到序列的转换器,例如平均化。这些转换器通过标签``scitype:transform-input``为``”Panel”,以及``scitype:transform-output``为”Series”来标识。一个例子是``Merger

弃用和移除#

基准测试, 指标, 分割器#

  • 时间序列分割器,即 BaseSplitter 的后代,已从 sktime.forecasting.model_selection 移动到 sktime.split。自 0.25.0 版本起,它们不再在旧位置 sktime.forecasting.model_selection 中可用。预测调优器仍存在于 sktime.forecasting.model_selection 中,并且它们的位置不受弃用影响。

  • 在预测 evaluate 中,返回数据框中的列顺序已更改。用户应查阅 evaluate 的文档字符串以获取详细信息。

  • 在预测 evaluate 中,compute 参数在 0.24.0 版本中被弃用后已被移除。其目的是在 dask 并行化后端中区分惰性或急切评估。用户应通过 backend 参数选择 daskdask_lazy 来切换惰性和急切评估。

  • 在预测中,evaluate 中的 kwargs 已被弃用,移除计划已推迟到 0.26.0 版本。用户应通过 backend_params 参数传递后端参数。

内容#

贡献者#

@benHeid, @fkiraly, @Vasudeva-bit, @yarnabrina

版本 0.24.2 - 2023-12-24#

亮点#

  • FunctionParamFitter 用于自定义参数切换,例如,根据实例属性应用预测器或转换器(#5630):user:tpvasconcelos

  • calibration_plot 用于概率预测 (#5632) @benHeid

  • 基于 prophet 的分段线性趋势预测器 (#5592) @sbuse

  • 新变压器:扩张映射 (#5557) @fspinna

  • 自定义 joblib 后端现在通过 set_config (#5537) 在并行化中得到支持 @fkiraly

依赖项更改#

  • dask``(数据容器和并行化后端)的版本限制已更新为 ``<2023.12.2

  • holidays (转换软依赖) 的版本限制已更新为 >=0.29,<0.40

核心接口变更#

预测#

  • fit_predict 现在允许为 predict 指定 X_pred 参数。如果传递了 X_pred,则在 predict 中使用 X_pred 作为 X,而不是 X。这对于期望 X 为预测范围子集的预测器非常有用。

  • 现在支持自定义 joblib 后端用于层次和多变量预测广播。要使用自定义 joblib 后端,请使用 set_configbackend:parallel 配置标志设置为 "joblib",并在通过 backend:parallel:params 设置的 dict 中将 backend 参数设置为自定义 joblib 后端的名称。其他后端参数可以在同一个 dict 中传递。详情请参阅 set_config 的文档字符串。

时间序列分类#

  • SimpleRNNClassifier 中,num_epochs 参数已被弃用,并已重命名为 n_epochsnum_epochs 可以在 sktime 0.25.last 之前使用,但在 sktime 0.26.0 中将被移除。如果使用 num_epochs,则会引发弃用警告。

时间序列回归#

  • SimpleRNNRegressor 中,num_epochs 参数已被弃用,并重命名为 n_epochsnum_epochs 可以在 sktime 0.25.last 之前使用,但在 sktime 0.26.0 中将被移除。如果使用 num_epochs,则会引发弃用警告。

变换#

  • 现在支持自定义 joblib 后端用于层次化和多元变压器广播。要使用自定义 joblib 后端,请使用 set_configbackend:parallel 配置标志设置为 "joblib",并将通过 backend:parallel:params 设置的 dict 中的 backend 参数设置为自定义 joblib 后端的名称。其他后端参数可以在同一个 dict 中传递。详情请参阅 set_config 的文档字符串。

增强功能#

BaseObject 和基础框架#

  • [ENH] 改进了基类中输入检查的错误信息 (#5510) @fkiraly

  • [ENH] 并行化中对自定义 joblib 后端的支持 (#5537) @fkiraly

  • [ENH] 一致使用 np.ndarray 作为 mtype 标签 (#5648) @fkiraly

  • [ENH] 在 sktime 内部的 check_is_mtype 调用中设置输出格式参数以静默弃用警告 (#5563) @benHeid

基准测试, 指标, 分割器#

  • [ENH] 基于 loc 的分割器,用于截止和预测范围 (#5575) @fkiraly

  • [ENH] 为 splitter 估计器类型启用标签相关注册表测试 (#5576) @fkiraly

数据类型、检查、转换#

  • [ENH] sklearn 面对 pd.DataFrame 的强制转换工具,将 str 列转换 (#5550) @fkiraly

  • [ENH] deep_equals - 更清晰的 dtypesindex 差异返回,放松 MultiIndex 相等性检查 (#5560) @fkiraly

  • [ENH] 统一 pandas 索引类型在 mtypes 中 (#5561) @fkiraly

  • [ENH] 时间序列mtypes的 n_featuresfeature_names 元数据字段 (#5596) @fkiraly

预测#

  • [ENH] 在 ForecastingHorizon 中预期的预测预测指数实用程序 (#5501) @fkiraly

  • [ENH] 在reducers中重构索引生成以使用``ForecastingHorizon``方法 (#5539) @fkiraly

  • [ENH] 修复缩减预测器的索引名称检查 (#5543) @fkiraly

  • [ENH] 预测器 fit_predict 带有 predictX_pred 参数 (#5562) @fkiraly

  • [ENH] 重构 DirectReductionForecaster 以使用 sklearn 输入强制工具 (#5581) @fkiraly

  • [ENH] 导出并测试 DirectReductionForecaster (#5582) @fkiraly

  • [ENH] 基于 prophet 的分段线性趋势预测器 (#5592) @sbuse

  • [ENH] 为 Prophet 添加 fit_kwargs (#5597) @tpvasconcelos

  • [ENH] Croston 测试参数 - 整数平滑参数 (#5608) @NguyenChienFelix33

  • [ENH] prophet 适配器 - 更安全的 fit_kwargs 处理 (#5622) @fkiraly

参数估计与假设检验#

时间序列注释#

时间序列分类#

  • [ENH] 在上游修复后,在 nsfa>0 情况下启用 MrSQM 的持久性测试 (#5171) @fkiraly

  • [ENH] 在 SimpleRNNClassifierSimpleRNNRegressor 中,num_epochs 已重命名为 n_epochs (#5607) @aeyazadil

时间序列聚类#

  • [ENH] 为 clusterer 估计器类型启用标签相关注册表测试 (#5576) @fkiraly

变换#

  • [ENH] 膨胀映射变换器 (#5557) @fspinna

  • [ENH] 为 TSFreshRelevantFeatureExtractor 设置的第二个测试参数 (#5623) @fkiraly

可视化#

测试框架#

  • [ENH] 重新激活并修复 test_multiprocessing_idempotent (#5573) @fkiraly

  • [ENH] 测试类注册,重构 check_estimator 测试收集到中心位置 (#5574) @fkiraly

  • [ENH] 对象的条件测试 - 测试覆盖测试类是否已更改 (#5579) @fkiraly

修复#

BaseObject 和基础框架#

  • [BUG] 修复 scitype coerce_to_list 参数,增加测试覆盖率 (#5578) @fkiraly

数据类型、检查、转换#

  • [BUG] 修复 mtype 标签 np.ndarray 中的拼写错误,从错误的 nd.array 改为正确的 (#5645) @yarnabrina

预测#

  • [BUG] 在 ARCH 中,修复 pd.Series 名称的 str 强制转换 (#5407) @Vasudeva-bit

  • [BUG] 在简化回归器中,如果 X 不符合预测范围,则复制或截断 X (#5542) @benHeid

  • [BUG] 从 StatsForecastBackAdapter 传递正确的级别参数到 statsforecast (#5587) @sd2k

  • [BUG] 修复 HierarchyEnsembleForecaster 在数据只有一个层次级别且预测器由节点指定时返回意外预测的问题 (#5615) @VyomkeshVyas

  • [BUG] 修复 ForecastingHorizon.to_absolute 中时区属性的丢失 (#5628) @fkiraly

  • [BUG] 在 _StatsModelsAdapter 的 predict 方法中将索引匹配改为整数 (#5642) @ciaran-g

变换#

  • [BUG] TsFreshFeatureExtractor - 修正错误的转发参数名称 profiling (#5600) @sssilvar

  • [BUG] 正确推断 TransformerPipeline 输出类型标签 (#5625) @fkiraly

可视化#

  • [BUG] 修复 plot_windows 创建的多个图形 (#5636) @benHeid

维护#

文档#

贡献者#

@adamkells, @aeyazadil, @Alex-JG3, @benHeid, @ciaran-g, @fkiraly, @fspinna, @joanlenczuk, @NguyenChienFelix33, @onyekaugochukwu, @rahulporuri, @sbuse, @sd2k, @sssilvar, @tpvasconcelos, @Vasudeva-bit, @VyomkeshVyas, @wayneadams, @yarnabrina

版本 0.24.1 - 2023-11-05#

亮点#

  • torch 适配器,LTSF 预测器 - 线性,D-线性,N-线性 (#4891, #5514) @luca-miniati

  • FourierFeatures 中的更多周期选项:pandas 周期别名和从偏移列 (#5513) @Ram0nB

  • SignatureTransformeriisignature 后端选项 (#5398) @sz85512678

  • TimeSeriesForestClassifier 特征重要性和优化区间生成 (#5338) @YHallouard

  • 来自 arch 包的所有平稳性测试作为估计器可用 (#5439) @Vasudeva-bit

  • 双曲正弦变换及其逆变换,ScaledAsinhTransformer,用于软输入或输出裁剪 (#5389) @ali-parizad

  • 估计器序列化:用户在 save 方法和 mlfow 插件中选择 serialization_format,支持 cloudpickle (#5486, #5526) @achieveordie

依赖项更改#

  • holidays (转换软依赖) 的版本限制已更新为 >=0.29,<0.36

  • torch 现在是对神经网络(dl 测试集)的托管软依赖。

核心接口变更#

  • 如果使用 scikit-base>=0.6.1set_params 现在识别唯一的 __ 分隔后缀作为完整参数字符串的别名,例如,set_params(foo="bar") 而不是 set_params(estimator__detrender__forecaster__supercalifragilistic__foo="bar")。这扩展到调优器中使用参数名称,例如,ForecastingGridSearchCV 网格,以及内部使用 set_params 的估计器。get_params 的行为保持不变。

  • sktime 现在支持使用 cloudpickle 进行估计器序列化,其中 pickle 是标准的序列化后端。要选择序列化后端,请使用估计器 save 方法的 serialization_format 参数。cloudpickle 已经是一个软依赖,因此不需要更改依赖项。

增强功能#

BaseObject 和基础框架#

  • [ENH] 测试 set_params 识别唯一后缀作为完整参数字符串的别名 (#2931) @fkiraly

  • [ENH] 估计器序列化:用户选择的 serialization_format,支持 cloudpickle (#5486) @achieveordie

基准测试, 指标, 分割器#

  • [ENH] 在 ExpandingGreedySplitter 中,允许 float step_size (#5329) @fkiraly

  • [ENH] 为 BaseSplitter.get_n_splits 设置合理的默认值 (#5412) @fkiraly

数据集和数据加载器#

  • [ENH] 添加tecator数据集用于时间序列回归作为``sktime``内置数据集 (#5428) @JonathanBechtel

预测#

  • [ENH] LTSFLinearForecaster, LTSFLinearNetwork, BaseDeepNetworkPyTorch (#4891) @luca-miniati

  • [ENH] LTSFDLinearForecaster, LTSFNLinearForecaster (#5514) @luca-miniati

  • [ENH] 预测调优器的并行后端选择 (#5430) @fkiraly

  • [ENH] 在 NaiveForecaster 中,为样本内预测添加有效的方差预测 (#5499) @fkiraly

MLOps 与部署#

  • [ENH] 在 mlflow 插件中,改进 ModuleNotFoundError 消息的信息量 (#5487) @achieveordie

  • [ENH] 在 mlflow 插件中添加对 DL 估计器持久化的支持 (#5526) @achieveordie

神经网络#

参数估计与假设检验#

时间序列注释#

  • [ENH] 为变化点和分段绘图功能添加单元测试 (#5509) @adamkells

时间序列分类#

  • [ENH] TimeSeriesForestClassifier 特征重要性和优化区间生成 (#5338) @YHallouard

变换#

  • [ENH] 添加双曲正弦变换及其逆变换(ScaledAsinhTransformer)(#5389) @ali-parizad

  • [ENH] SignatureTransformeriisignature 后端选项 (#5398) @sz85512678

  • [ENH] MSTL 变换器的通用逆变换 (#5457) @fkiraly

  • [ENH] FourierFeatures 中更多的时间段选项:pandas 时间段别名和从偏移列 (#5513) @Ram0nB

维护#

文档#

  • [DOC] 修复 FhPlexForecaster 的文档字符串示例 (#4931) @fkiraly

  • [DOC] 以编程方式修正(所有)拼写错误 (#5424) @kianmeng

  • [DOC] 提高 pyproject.toml 可读性的注释 (#5472) @fkiraly

  • [DOC] 简化 API 参考,修复小问题 (#5466) @fkiraly

  • [DOC] 修复更多拼写错误 (#5478) @szepeviktor

  • [DOC] 更新 STLTransformer 的文档字符串以修正关于逆变换和管道的陈述 (#5455) @fkiraly

  • [DOC] 改进了 statsforecast 估计器的文档字符串 (#5409) @fkiraly

  • [DOC] 为五个深度学习分类器添加缺失的API参考条目 (#5522) @fkiraly

  • [DOC] 修正了平稳性测试的文档字符串 (#5531) @fkiraly

修复#

BaseObject 和基础框架#

  • [BUG] 修复 _check_python_version 中的错误信息 (#5473) @fkiraly

基准测试, 指标, 分割器#

  • [BUG] 修复 evaluatekwargs 的弃用逻辑中的错误,如果传递了弃用的 kwargs,则总是将后端设置为 dask_lazy (#5469) @fkiraly

预测#

  • [BUG] 修复 pandasFutureWarning 以静默向上转换 (#5395) @tpvasconcelos

  • [BUG] 修复 make_reduction 的预测函数(递归,全局)以处理时区感知数据 (#5464) @ciaran-g

  • [BUG] 在 TransformedTargetForecaster 中,确保如果预测器忽略 X,但至少有一个转换器使用 y=X,例如特征选择器 (#5521) @fkiraly,正确设置 ignores-exogenous-X 标签。

参数估计与假设检验#

  • [BUG] 修复了一些平稳性测试的错误符号 (#5531) @fkiraly

时间序列注释#

  • [BUG] CLASP 逻辑:从排除区域中移除超出范围的索引 (#5459) @Alex-JG3

  • [BUG] 在 ClaSPSegmentation 中,处理 k 当它对于 np.argpartition 过大时 (#5490) @Alex-JG3

时间序列分类#

  • [BUG] 修复 MCDCNNClassifier._fit 中缺失的 epochs 参数 (#4996) (#5422) @pseudomo

  • [BUG] 添加缺失的导出五个深度学习分类器 (#5522) @fkiraly

变换#

  • [BUG] 修复 SignatureTransformer 的测试异常 (#5474) @fkiraly

可视化#

  • [BUG] 修复 plot_series 在预测范围内有3个或更少点时的预测区间绘图 (#5494) @fkiraly

贡献者#

@achieveordie, @adamkells, @Alex-JG3, @ali-parizad, @ciaran-g, @fkiraly, @JonathanBechtel, @kianmeng, @luca-miniati, @pseudomo, @Ram0nB, @sz85512678, @szepeviktor, @tpvasconcelos, @Vasudeva-bit, @yarnabrina, @YHallouard

版本 0.24.0 - 2023-10-13#

维护版本:

  • 对 Python 3.12 的支持

  • 计划弃用

  • 软件依赖更新

有关最后的非维护内容更新,请参见 0.23.1。

依赖项更改#

  • pykalman 的依赖已被分叉 pykalman-bardo 所取代。pykalman 已被放弃,而 pykalman-bardo 是一个维护中的分叉。这是一个软依赖,切换不会影响使用其依赖集之一安装 sktime 的用户。中期,我们预计 pykalman-bardo 将被合并回 pykalman,之后依赖将切换回 pykalman

  • holidays (变换软依赖) 的版本限制已更新为 >=0.29,<0.35

  • numba``(分类、回归和转换的软依赖)的版本范围已更新为 ``>=0.53,<0.59

  • skpro (预测软依赖) 的版本限制已更新为 >=2.0.0,<2.2.0

弃用和移除#

  • 在预测调优器 ForecastingGridSearchCV, ForecastingRandomizedSearchCV, ForecastingSkoptSearchCV 中,参数 tune_by_variable 的默认值已从 True 切换为 False

内容#

贡献者#

@fkiraly, @mbalatsko

版本 0.23.1 - 2023-10-12#

亮点#

  • 所有层次/多变量预测器和转换器的广播现在可以使用并行化后端 joblibdask 通过 set_config#5267#5268#5301#5311#5405@fkiraly

  • PeakTimeFeatures 转换器用于为一个或多个高峰时段、天数等生成指示特征 (#5191) @ali-parizad

  • ARCH 预测器接口 arch 包 (#5326) @Vasudeva-bit

  • 预测缩减器 YfromX 现在在使用 skpro 概率表格回归器时进行概率预测 (#5271) @fkiraly

  • 预测合成器 ForecastX 现在允许在预测的 X 上拟合 forecaster_y (#5334) @benHeid

  • 幸运动态时间规整距离和对齐器,用于时间序列分类器、回归器、聚类器 (#5341) @fkiraly

  • 分割器现在已移动到它们自己的模块 sktime.split (#5017) @BensHamza

依赖项更改#

  • attrs 不再是 sktime 的软依赖(时间序列注释)

  • arch 现在是 sktime 的软依赖(预测)

  • skpro 现在是 sktime 的软依赖(预测)

核心接口变更#

BaseObject 和基础框架#

  • sktime 框架现在主要通过标签 object_type 检查估计器类型。这不是一个破坏性的改变,因为从相应的基类继承会通过标签继承系统自动设置标签。类型检查工具 scitype 也不受影响。对于扩展者来说,这一改变使得多态和动态类型的估计器成为可能。

  • sktime 的警告现在可以通过 set_config 设置的 warnings 配置在每个估计器的基础上被静音(参见文档字符串)。

预测#

  • 层次化和多元化的预测现在可以使用并行化和分布式后端,包括 joblibdask,如果预测是通过广播获得的。要启用并行化,请在拟合预测器之前通过 set_config 设置 backend:parallel 和/或 backend:parallel:params 配置标志(参见文档字符串)。这一变化通过继承更新后的基础框架,立即扩展到所有现有的符合接口的第三方预测器。

时间序列回归#

  • 时间序列回归器现在允许单列 pd.DataFrame 作为 y。当前行为不受影响,这对现有代码不是破坏性更改。

变换#

  • 层次化和多元化的转换器现在可以使用并行化和分布式后端,包括 joblibdask ,如果转换是通过广播获得的。要启用并行化,请在拟合转换器之前通过 set_config (参见文档字符串)设置 backend:parallel 和/或 backend:parallel:params 配置标志。这一更改通过继承自更新的基础框架,立即扩展到所有现有的符合接口的第三方转换器。

弃用和移除#

基准测试, 指标, 分割器#

  • 时间序列分割器,即 BaseSplitter 的子类,已从 sktime.forecasting.model_selection 移动到 sktime.split。旧位置 model_selection 已被弃用,并将在 0.25.0 版本中移除。直到 0.25.0 版本,它仍然可用,但会引发一条信息性警告消息。

增强功能#

BaseObject 和基础框架#

  • [ENH] 警告配置 (#4536) @fkiraly

  • [ENH] 在 utils 模块中添加常用工具的导出 (#5266) @fkiraly

  • [ENH] 在 scitype 检查中,用类型标签检查替换基类注册逻辑 (#5288) @fkiraly

  • [ENH] 实用模块中的并行化后端调用 - 第1部分,重构到实用模块 (#5268) @fkiraly

  • [ENH] 实用模块中的并行化后端调用 - 第2部分,后端参数传递 (#5311) @fkiraly

  • [ENH] 实用模块中的并行化后端调用 - 第3部分,基类广播中的后端参数传递 (#5405) @fkiraly

基准测试, 指标, 分割器#

数据加载器#

预测#

  • [ENH] 添加基于 scipy optimize_curveCurveFitForecaster (#5240) @benHeid

  • [ENH] 重构 trend 预测模块 (#5242) @benHeid

  • [ENH] YfromX - 概率预测 (#5271) @fkiraly

  • [ENH] 将 test_interval_wrappers.py 链接到 evaluate 中的更改以进行条件测试 (#5337) @fkiraly

  • [ENH] 在多变量或层次情况下广播估计器的 joblibdask 后端 - 第1部分,VectorizedDF.vectorize_est (#5267) @fkiraly

  • [ENH] 在多变量或层次情况下广播估计器的 joblibdask 后端 - 第2部分,基类配置 (#5301) @fkiraly

  • [ENH] ARCH 模型接口 arch 包 (#5326) @Vasudeva-bit

  • [ENH] 在 ForecastX 中,启用对预测的 X 进行 forecaster_y 拟合 (#5334) @benHeid

  • [ENH] 如果内部 forecaster_y 忽略 X,则在 ForecastX 中跳过不必要的拟合 (#5353) @yarnabrina

  • [ENH] 在 TestAllEstimators 中移除 predict_proba 的遗留代码 (#5386) @fkiraly

时间序列对齐#

  • [ENH] 幸运动态时间规整对齐器 (#5341) @fkiraly

  • [ENH] 时间序列对齐器的 _get_distance_matrix 的合理默认值 (#5347) @fkiraly

时间序列距离和核#

  • [ENH] 成对时间序列距离和核的委托器 (#5340) @fkiraly

  • [ENH] 幸运动态时间规整距离 (#5341) @fkiraly

  • [ENH] 简化了对 dtw-python 基于动态时间规整距离的委托接口 (#5348) @fkiraly

时间序列回归#

  • [ENH] 在 BaseRegressor 中,允许 y 为 1D pd.DataFrame (#5282) @mdsaad2305

变换#

  • [ENH] PeakTimeFeatures 转换器用于生成一个/多个高峰/小时-日-周、工作时间等的指示特征 (#5191) @ali-parizad

  • [ENH] VmdTransformer,添加分解-预测-重组作为文档字符串示例和测试 (#5250) @fkiraly`* [ENH] 改进 ``evaluate` 失败错误信息 (#5269) @fkiraly

  • [ENH] 为 STLTransformer 添加适当的 inverse_transform (#5300) @fkiraly

  • [ENH] 在多变量或层次情况下广播估计器的 joblibdask 后端 - 第1部分,VectorizedDF.vectorize_est (#5267) @fkiraly

  • [ENH] 在多变量或层次情况下广播估计器的 joblibdask 后端 - 第2部分,基类配置 (#5301) @fkiraly

  • [ENH] 将 DateTimeFeatures 测试重构为 pytest 夹具 (#5397) @adamkells

测试框架#

  • [ENH] 在 test_reconstruct_identical 中的 deep_equals 断言添加错误消息返回 (#4927) @fkiraly

  • [ENH] 增量测试也测试 sktime 中的任何父类是否已更改 (#5379) @fkiraly

维护#

  • [MNT] 将 numba 要求从 <0.58,>=0.53 恢复为 >=0.53,<0.59” (#5297) @fkiraly

  • [MNT] 绑定 numba<0.58 (#5303) @fkiraly

  • [MNT] 移除 attrs 依赖 (#5296) @Alex-JG3

  • [MNT] 简化 CI - 合并窗口 CI 步骤与测试矩阵 (#5362) @fkiraly

  • [MNT] 向 3.12 兼容性迈进 - 用等效功能替换 distutils 调用 (#5376) @fkiraly

  • [MNT] skpro 作为软依赖 (#5273) @fkiraly

  • [MNT] 移除了 py37.dockerfile 并更新了CI的文档条目 (#5356) @kurayami07734

  • [MNT] [Dependabot](deps): 将 styfle/cancel-workflow-action 从 0.11.0 升级到 0.12.0 (#5355) @dependabot[bot]

  • [MNT] [Dependabot](deps): 将 stefanzweifel/git-auto-commit-action 从 4 升级到 5 (#5373) @dependabot[bot]

  • [MNT] [Dependabot](deps-dev): 将 holidays 需求从 <0.33,>=0.29 更新为 >=0.29,<0.34 (#5276) @dependabot[bot]

  • [MNT] [Dependabot](deps-dev): 将 numpy 要求从 <1.26,>=1.21.0 更新为 >=1.21.0,<1.27 (#5275) @dependabot[bot]

  • [MNT] [Dependabot](deps-dev): 将 arch 要求从 <6.2.0,>=5.6.0 更新为 >=5.6.0,<6.3.0 (#5392) @dependabot[bot]

文档#

修复#

基准测试, 指标, 分割器#

  • [BUG] 修复 temporal_train_test_split 在未传递 fh 时对分层和面板数据的处理 (#5330) @fkiraly

  • [BUG] 允许 alphacoverage 通过指标再次传递给 evaluate (#5354) @fkiraly, @benheid

预测#

  • [BUG] 修复 STLForecaster 标签 ignores-exogeneous-X 以正确设置复合组件 (#5365) @yarnabrina

  • [BUG] statsforecast 1.6.0 兼容性 - 在 statsforecast 适配器中,修复 RuntimeError: dictionary changed size during iteration (#5317) @arnaujc91

  • [BUG] statsforecast 1.6.0 兼容性 - 修复 sktimestatsforecast 之间的参数差异 (#5393) @luca-miniati

  • [BUG] 修复 ARCH._check_predict_proba (#5384) @Vasudeva-bit

时间序列对齐#

时间序列距离和核#

变换#

  • [BUG] 在 Imputer 中,修复 method="forecaster" 时未传递 y 的问题 (#5287) @fkiraly

  • [BUG] 确保 Catch22 参数设置 n_jobs = -1 使用所有核心 (#5361) @julnow

可视化#

  • [BUG] 修复 plot_windows 中不一致的日期/时间索引 #4919 (#5321) @geronimos

贡献者#

@Abhay-Lejith, @achieveordie, @adamkells, @Alex-JG3, @alexfilothodoros, @alhridoy, @ali-parizad, @arnaujc91, @benHeid, @BensHamza, @fkiraly, @geronimos, @hazrulakmal, @julnow, @kurayami07734, @luca-miniati, @mdsaad2305, @pirnerjonas, @ShreeshaM07, @Vasudeva-bit, @xansh, @yarnabrina

版本 0.23.0 - 2023-09-17#

维护版本 - 计划中的弃用。

关于最后一次非维护内容更新,请参见 0.22.1。

内容#

  • 单变量概率预测的列命名约定的更改周期结束,用户和开发者的详细信息请参见下文

  • 计划在 0.23.0 版本中弃用的操作

弃用和移除#

预测 - 单变量概率预测的列名更改#

预测者的 predict_quantilespredict_intervals 的返回值现在在单变量和多变量情况下是一致的:最上层(从0开始索引)的列名始终是变量名。

之前,在单变量情况下,总是 CoverageQuantiles

自0.21.0版本以来,已经历了一个变更过渡期。有关更多详细信息,请参阅0.21.0和0.22.0的更新日志。

尚未完成下游操作的用户和扩展者应继续使用 0.22.X 版本,直到他们完成操作,然后升级到 0.23.0 或更高版本。

版本 0.22.1 - 2023-09-17#

亮点#

依赖项更改#

  • sktime 现在支持 pandas 2.1.X

  • sktime 现在支持 holidays 0.32(软依赖)

  • sktime 现在支持 statsforecast 1.6.X(软依赖)

核心接口变更#

变换#

  • 转换 (BaseTransformer 后代) 现在有两个新的可选标签:"capability:inverse_transform:range""capability:inverse_transform:exact"。如果转换器实现了 inverse_transform 并且有以下描述的限制,则应在转换器的 _tags 类属性中指定这些标签。

    • "capability:inverse_transform:range" 指定了变换的可逆性范围,必须是一个浮点数的列表 [lower, upper]。这用于文档和测试目的。

    • "capability:inverse_transform:exact" 指定 inverse_transform 是否预期为 transform 的精确逆变换。这用于文档和测试目的。

增强功能#

BaseObject 和基础框架#

基准测试, 指标, 分割器#

数据集和数据加载器#

  • [ENH] 为时间序列分类数据加载器设置镜像 (#5260) @fkiraly

预测#

  • [ENH] 在 test_fh 中加速测试 (#5098) @fkiraly

  • [ENH] 增强 ForecastingGridSearchCV 以支持估计器中的自由关键字参数方法,例如图形管道 (#5210) @benHeid

  • [ENH] 使 statsforecast 适配器兼容可选的 predict level 参数,以及不同的初始化参数集 (#5112) @arnaujc91

  • [ENH] 修复 pandas 2.1.0test_set_freq_hier (#5185) @fkiraly

流水线#

  • [ENH] 任何学习任务的图形管道(多态)(#4652) @benHeid

  • [ENH] 添加图形管道是实验性的警告 (#5235) @benHeid

  • [ENH] 确保 ForecastingPipeline 与“特征提取器”兼容 (#5252) @fkiraly

概率分布与模拟器#

时间序列分类#

时间序列距离和核#

  • [ENH] tslearn 距离和核函数包括适配器 (#5039) @fkiraly

  • [ENH] 条件执行 test_distancetest_distance_params (#5099) @fkiraly

  • [ENH] 重构并添加条件执行到基于 numba 的距离测试 (#5141) @fkiraly

变换#

测试框架#

  • [ENH] 通过显式夹具生成加速 test_probabilistic_metrics ,而不是使用预测器拟合/预测 (#5115) @Ram0nB

  • [ENH] 仅在小随机子集上测试预测数据下载 (#5146) @fkiraly

  • [ENH] 扩大条件测试执行的范围 (#5100, #5135, #5147) @fkiraly

  • [ENH] 基于 cython 的估计器的差异测试 (#5206) @fkiraly

维护#

  • [MNT] 将 CI 运行器升级到最新的稳定镜像 (#5031) @yarnabrina

  • [MNT] 由于最近的失败,绑定 statsforecast<1.6.0 (#5149) @fkiraly

  • [MNT] 仅在小的随机子集上测试预测数据下载 (#5146) @fkiraly

  • [MNT] 降低依赖边界兼容性补丁 - binom_test (#5152) @fkiraly

  • [MNT] 修复 DateTimeFeatures 测试的依赖隔离 (#5154) @fkiraly

  • [MNT] 将 test_reduce_global 中的固定装置移动到 pytest 固定装置 (#5157) @fkiraly

  • [MNT] 将 test_dropna 中的固定装置移动到 pytest 固定装置 (#5153) @fkiraly

  • [MNT] 每个组件的额外依赖规范 (#5136) @yarnabrina

  • [MNT] 将 numba 添加到 python 3.11 测试中 (#5179) @fkiraly

  • [MNT] 自动更新 sphinx 文档中的版权范围 (#5212) @fkiraly

  • [MNT] 将 Pipeline 异常从 test_all_estimators 移动到测试 _config (#5251) @fkiraly

  • [MNT] 更新预提交钩子的版本并修复 flake8 指出的 E721 问题 (#5163) @yarnabrina

  • [MNT] [Dependabot](deps-dev): 将 sphinx-gallery 要求从 <0.14.0 更新到 <0.15.0 (#5124) @dependabot[bot]

  • [MNT] [Dependabot](deps-dev): 将 pandas 要求从 <2.1.0,>=1.1.0 更新为 >=1.1.0,<2.2.0 (#5183) @dependabot[bot]

  • [MNT] [Dependabot](deps): 将 actions/checkout 从 3 升级到 4 (#5189) @dependabot[bot]

  • [MNT] [Dependabot](deps-dev): 将 holidays 要求从 <0.32,>=0.29 更新为 >=0.29,<0.33 (#5214) @dependabot[bot]

  • [MNT] [Dependabot](deps-dev): 将 statsforecast 要求从 <1.6,>=0.5.2 更新为 >=0.5.2,<1.7 (#5215) @dependabot[bot]

文档#

  • [DOC] 财务主管角色的规定 (#4798) @marrov, @kiraly

  • [DOC] 修复 make_pipeline, make_reduction, window_summarizerload_forecasting 数据文档字符串 (#5065) @hazrulakmal

  • [DOC] 修复 _DelegatedForecaster 模块中的文档字符串小错误 (#5168) @fkiraly

  • [DOC] 更新 predict_proba 上的预测扩展模板 (#5138) @fkiraly

  • [DOC] 加速教程笔记本 - 深度学习分类器 (#5169) @alexfilothodoros

  • [DOC] 修复 ColumnEnsembleForecaster 文档字符串中的渲染问题,添加 ColumnEnsembleTransformer 示例 (#5201) @benHeid

  • [DOC] 学习任务特定依赖集的安装说明文档 (#5204) @fkiraly

  • [DOC] 添加 benHeid 的所有贡献者徽章 (#5209) @benHeid

  • [DOC] 修复forecaster API参考中的拼写错误 (#5211) @fkiraly

  • [DOC] 修复 installation.rst 中的拼写错误 (#5213) @Akash190104

  • [DOC] 为 temporal_train_test_split 文档字符串添加了示例 (#5216) @JonathanBechtel

  • [DOC] 更新 README 徽章:许可证、教程和社区进一步向上 (#5227) @fkiraly

  • [DOC] 对 STLForecaster 文档字符串进行简单编辑以正确呈现 (#5220) @hazrulakmal

  • [DOC] 修复 conftest.py 文档字符串 (#5228) @fkiraly

  • [DOC] 澄清 trend.py 中的文档字符串 (#5231) @sniafas

修复#

基准测试, 指标, 分割器#

  • [BUG] 在分割器中,如果未指定,正确推断 datetime 数据类型的系列频率 (#5009) @hazrulakmal

  • [BUG] 修复 BaseWindowSplitterget_n_split 方法以处理分层数据 (#5012) @hazrulakmal

预测#

  • [BUG] 修复在 _predict 中导致 ConformalIntervals 异常的检查 (#5134) @fkiraly

  • [BUG] 确保预测调优器不会在列(变量)上进行向量化 (#5145) @fkiraly, @SmirnGregHM

  • [BUG] 修复标签以指示 NaiveForecaster 对外生特征的支持 (#5162) @yarnabrina

  • [BUG] 在复合预测器的测试中为 y_dict 添加缺失的 return 语句 (#5253) @BensHamza

  • [BUG] 修复复合预测器测试中 y_dict 中缺少 y_train 键的问题 (#5255) @fkiraly

  • [BUG] 修复 pd-multiindex 上的 ForecastKnownValues 失败 (#5256) @mattiasatqubes

流水线#

  • [BUG] 修复 sktime.pipeline 中缺少的 Pipeline 导出 (#5232) @fkiraly

时间序列注释#

  • [BUG] 防止 PyODAnnotator.get_test_params 中的异常 (#5151) @fkiraly

变换#

  • [BUG] 为 ColumnSelect 添加缺失的标签 skip-inverse-transform (#5208) @benHeid

可视化#

  • [BUG] 解决 matplotlib 弃用 label 属性的问题 (#5246) @benHeid

贡献者#

@Akash190104, @Alex-JG3, @alexfilothodoros, @arnaujc91, @benHeid, @BensHamza, @DaneLyttinen, @fkiraly, @hazrulakmal, @heerme, @lnthach, @JonathanBechtel, @luca-miniati, @mattiasatqubes, @Ram0nB, @SmirnGregHM, @sniafas, @vrcarva, @yarnabrina

版本 0.22.0 - 2023-08-18#

维护版本 - 依赖更新,计划中的弃用。

关于最后的非维护内容更新,请参见 0.21.1。

内容#

  • 单变量概率预测列命名约定的变更周期中点,为 0.23.0 做准备 - 请参见下文了解用户和开发者的详细信息

  • 计划在 0.22.0 版本中弃用的操作

依赖项更改#

  • deprecated 已从 sktime 的核心依赖中移除。用户或开发者无需采取任何行动,因为该包仅用于内部弃用操作。

弃用和移除#

预测 - 单变量概率预测的列名更改#

从0.23.0版本开始,预测器在单变量情况下的 predict_quantilespredict_intervals 的返回值将与多变量情况保持一致:最上层(从0开始索引)的列名将始终是变量名。以前,在单变量情况下,它总是 CoverageQuantiles

过渡期由两种方法的 legacy_interface 参数管理。更多详情请参见 0.21.0 更新日志。

在 0.22.0 版本中,legacy_interface 参数的默认值已更改为 False,这确保了输出符合未来、更改后的命名约定。

用户推荐操作提醒:

  • 用户应力争在 0.21.last 之前将依赖代码升级到 legacy_interface=False 的行为,并在 0.22.0 之后和 0.23.0 之前移除 legacy_interface 参数。需要更多时间升级依赖代码的用户可以在 0.22.last 之前设置 legacy_interface=True

扩展开发者应使用新的 "pred_int:legacy_interface:testcfg" 配置字段来升级他们的第三方扩展,如 0.21.0 更新日志中所述。

变换#

  • DateTimeFeatures 中,特征 hour_of_week 已添加到 "comprehensive" 特征集中。希望继续使用先前特征集的用户应改用参数 manual_selection

PR 列表#

  • [MNT] 发布工作流中的 failfast=False (#5120) @fkiraly

  • [MNT] 0.22.0 发布行动 - 在 0.21.0 中弃用 deprecated ,在 0.22.0 中移除 (#4822) @fkiraly

  • [MNT] 0.22.0 弃用和变更操作 (#5106) @fkiraly

版本 0.21.1 - 2023-08-16#

亮点#

核心接口变更#

时间序列对齐#

  • 时间序列对齐器现在接受所有 Panel mtypes 作为输入,而之前仅接受 df-list。这不是一个破坏性的更改。

  • 时间序列对齐器现在有一个标签 "alignment_type",它可以有值 "full""partial",以区分由 get_alignment 产生的完全对齐和部分对齐。该标签可以依赖于对齐器的参数。

时间序列距离和核#

  • 成对变换器现在有一个标签 "pwtrafo_type",它可以有值 "kernel""distance""other",以允许用户检查变换器是否为核或距离变换器。这不会影响接口。该标签主要用于用户搜索和检索。这也允许检查估计器的方法要求,例如,支持向量机需要一个核。然而,如前所述,这并不是由基础接口强制执行的。

增强功能#

BaseObject 和基础框架#

  • [ENH] 加速 deep_equals - 延迟评估成本高昂的错误消息字符串强制转换 (#5044) @benHeid

  • [ENH] sktime 字符串/对象别名注册机制 (#5058) @fkiraly

基准测试, 指标, 分割器#

  • [ENH] 私有 split_loc 和标签以控制 split_series 分派到 splitsplit_loc (#4903) @fkiraly

  • [ENH] 忽略索引应用预测指标 - 文档字符串和测试 (#4960) @fkiraly

  • [ENH] 指标类 - 添加测试参数 (#5097) @fkiraly

  • [ENH] 性能指标中 numpy 权重的测试和修复 (#5086) @fkiraly

  • [ENH] 对 BaseBenchmark 的输入检查,允许 add_estimator 接受多个估计器 (#4877) @hazrulakmal

  • [ENH] 性能指标中 numpy 权重的测试和修复 - 概率指标 (#5104) @fkiraly

数据集和数据加载器#

  • [ENH] 重构数据加载器模块,能够指定下载镜像 (#4985) @fkiraly

预测#

  • [ENH] 对 _ColumnEstimator 的改进 - 重构以减少与 BaseForecaster 的耦合 (#4791) @fkiraly

  • [ENH] 使用适当的 pytest 夹具重写 test_probabilistic_metrics (#4946) @julia-kraus

  • [ENH] 添加扩展贪婪分割器 (#4917) @davidgilbertson

  • [ENH] 接口 statsforecast MSTL, statsforecast 后适配器 (#4865) @luca-miniati

  • [ENH] 为 FhPlexForecaster 添加连续 fh 选项 (#4926) @fkiraly

  • [ENH] 确保 StatsForecastBackAdapterpredict_interval 返回格式变化时的稳健性 (#4991) @fkiraly

  • [ENH] 改进 SARIMAX 测试参数覆盖率 (#4932) @janpipek

  • [ENH] 接口到 statsforecast ARCH 族估计器 (#4938) @eyjo

  • [ENH] 为 CrostonExponentialSmoothing 添加测试用例 (#4935) @Gigi1111

  • [ENH] 忽略索引应用预测指标 - 文档字符串和测试 (#4960) @fkiraly

  • [ENH] 为 scoring 参数在预测调优器中添加别名字符串 (#5058) @fkiraly

  • [ENH] 允许 YfromX 处理缺失数据 (#5062) @eenticott-shell

参数估计器#

概率分布与模拟器#

  • [ENH] 为 _bottom_hier_datagen 层次数据生成器添加长度选项,加速 ReconcilerForecaster 文档测试 (#4979) @fkiraly

时间序列对齐#

  • [ENH] 来自 sktime 原生 numba 基于的编辑距离对齐算法 (#5075) @fkiraly

  • [ENH] 扩展 BaseAligner.fit 以支持输入转换 (#5077) @fkiraly

  • [ENH] 用于基线比较的朴素多重对齐器 (#5076) @fkiraly

  • [ENH] 用于完全/部分对齐的标签,完全对齐输出的精确测试 (#5080) @fkiraly

时间序列分类#

  • [ENH] 时间序列分类笔记本的全面重构 (#5045) @fkiraly

时间序列聚类#

  • [ENH] 为 TimeSeriesLloydsTimeSeriesKMeansTimeSeriesKMedoids 显式初始化质心 (#5001) @Alex-JG3

  • [ENH] 通用 tslearn 适配器和聚类器重构 (#4992) @fkiraly

  • [ENH] 对所有 tslearn 聚类器的接口 (#5037) @fkiraly

时间序列距离和核#

变换#

  • [ENH] CosineTransformer 的逆变换,处理有限可逆范围内的标签 (#3671) @fkiraly

  • [ENH] 基于 holidays 包的按国家或市场的假期指示器转换器 (#4893) @yarnabrina

  • [ENH] HolidayFeatures 转换器 (#4909) @VyomkeshVyas

  • [ENH] 启用 TabularToSeriesAdaptor 与特征选择器的使用,并传递 y (#4978) @fkiraly

  • [ENH] 加速 BaseTransformer 检查和转换样板代码 (#5036) @fkiraly

  • [ENH] DropNA 转换器用于删除包含 nan 的行或列 (#5049) @hliebert

  • [ENH] 加速 Lag 转换器 (#5035) @fkiraly

  • [ENH] 在 SplitterSummarizer 中记住数据的选项 (#5070) @fkiraly

测试框架#

  • [ENH] 通过改进 _testing.scenarios 加快测试集合 (#4901) @tarpas

  • [ENH] 每个估计器支持多组参数设置的测试 (#2862) @fkiraly

  • [ENH] 在 test_get_params 中移除 sklearn 依赖 (#5011) @fkiraly

  • [ENH] 仅测试与 main 相比已更改的模块中的估计器 (#5019) @fkiraly, @yarnabrina

  • [ENH] 为单个估计器添加依赖和差异测试开关,以装饰非套件测试 (#5084) @fkiraly

维护#

文档#

修复#

BaseObject 和基础框架#

  • [BUG] 在 craft 中,修复将 TrueFalse 错误检测为类名的问题 (#5066) @fkiraly

基准测试, 指标, 分割器#

  • [BUG] 在 geometric_mean_absolute_error 中使用正确的参数 (#4987) @yarnabrina

数据类型、检查、转换#

  • [BUG] 修复 vectorize_est 在行向量化时返回乱序行的问题,如果行名不是按字典顺序排序,则返回 pd.DataFrame (#5110) @fkiraly, @hoesler

预测#

  • [BUG] 在 refit=False 的情况下,澄清预测调优估计器的文档字符串和错误信息 (#4945) @fkiraly

  • [BUG] 修复 ConformalIntervals 在包装估计器支持分层m类型时的失败 (#5091, #5093) @fkiraly

参数估计器#

  • [BUG] 修复 PluginParamsForecasterparams: dict 情况下的问题 (#4922) @fkiraly

时间序列对齐#

  • [BUG] 修复 AlignerDtwNumba 中缺失的转置 (#5080) @fkiraly

时间序列分类#

  • [BUG] 修复 _proximity_forest.py 中估计器的 sklearn 接口不一致性,添加更多测试参数集 (#3520) @Abelarm, @fkiraly

时间序列聚类#

  • [BUG] 为 BaseClusterer 中不兼容的 scitype 添加信息性错误消息 (#4958) @achieveordie

变换#

  • [BUG] 修复 FeatureSelection 中的 DataConversionWarning (#4883) @fkiraly

  • [BUG] 修复 Imputer 中基于预测器的插补策略,如果预测器在 fit 中需要 fh (#4999) @MCRE-BE

  • [BUG] 修复 Differencer 的整数索引 (#4984) @fkiraly

  • [BUG] 修复 na_handling=fill_zero 时训练数据上的 Differencer.inverse_transform (#4998) @benHeid, @MCRE-BE

  • [BUG] 修复 Lag 转换器中 index_out="shift" 的错误逻辑 (#5069) @fkiraly

贡献者#

@Abelarm, @achieveordie, @Alex-JG3, @benHeid, @davidgilbertson, @eenticott-shell, @eyjo, @fkiraly, @Gigi1111, @hazrulakmal, @hliebert, @janpipek, @julia-kraus, @luca-miniati, @MBristle, @MCRE-BE, @Ram0nB, @tarpas, @Verogli, @VyomkeshVyas, @yarnabrina

版本 0.21.0 - 2023-07-19#

维护版本 - 依赖更新,计划中的弃用。

有关最新的非维护内容更新,请参见 0.20.1。

内容#

  • sktime 现在与 sklearn 1.3.X 兼容

  • 单变量概率预测的列命名约定开始变更,为0.23.0版本做准备 - 详情请参见下方用户和开发者的说明

  • 计划在 0.21.0 版本中弃用的操作

依赖项更改#

  • scikit-learn 版本范围现在允许版本 1.3.X

  • deprecated 包作为 sktime 的核心依赖已被弃用,并且将从 0.22.0 版本开始不再作为依赖项。用户或开发者无需采取任何行动,因为该包仅用于内部弃用操作。

  • pycatch22 在 Python 3.7 结束生命周期后,已被重新添加为软依赖项。

弃用和移除#

预测 - 单变量概率预测的列名更改#

从0.23.0版本开始,预测器的 predict_quantilespredict_intervals 在单变量情况下的返回值将与多变量情况下的返回值保持一致:最上层(从0开始索引)的列名将始终是变量名。之前,在单变量情况下,它总是 CoverageQuantiles,无论 y 中存在的变量名是什么,而在多变量情况下,它总是 y 中存在的变量名。

更改将在两个 MINOR 周期内进行,0.21.X(早期阶段)和 0.22.X(后期阶段),这两个阶段的结合构成了更改期。我们将在下面解释时间表,首先是针对用户,然后是针对第三方预测器的维护者(“扩展者”)。

用户应使用一个新的、临时的 legacy_interface 参数来处理这一变化:

  • 用户 - 更改周期。两种预测方法 predict_quantilespredict_intervals 将有一个新的布尔参数 legacy_interface。如果为 True,这些方法将按照当前的命名约定生成返回值。如果为 False,这些方法将按照未来更改后的命名约定生成返回值。

  • 用户 - 早期和晚期阶段。在早期阶段(0.21.X),legacy_interface 的默认值将是 True。在晚期阶段(0.22.X),legacy_interface 的默认值将是 False。这一默认值的变更将在 0.22.0 版本中发生,对于未指定该参数的用户可能会造成影响。

  • 用户 - 弃用后。在 0.23.0 版本中,legacy_interface 参数将被移除。这些方法将始终按照未来的、更改后的命名约定生成返回值。对于在 0.23.0 之前未移除该参数的用户,此更改可能会造成破坏。

  • 从0.21.0开始,直到0.22.last,将引发适当的弃用警告。

  • 用户 - 推荐的更改操作。用户应力争在 0.21.last 之前将依赖代码升级到 legacy_interface=False 的行为,并在 0.22.0 之后和 0.23.0 之前移除 legacy_interface 参数。需要更多时间升级依赖代码的用户可以在 0.22.last 之前设置 legacy_interface=True

扩展开发者应使用新的 "pred_int:legacy_interface:testcfg" 配置字段来升级他们的第三方扩展:

  • 扩展器 - 更改周期。配置字段 "pred_int:legacy_interface:testcfg" 已添加到 BaseForecaster 类的所有后代中。此配置控制 check_estimatorpytest 测试所检查的契约,并可通过 set_config 进行设置。

  • 标签的默认值是 "auto" - 这意味着测试将在早期阶段(0.21.X)检查当前的命名约定,并在后期阶段(0.22.X)检查未来的命名约定,对于 _predict_quantiles_predict_intervals 具有标准签名,不带 legacy_interface。从 0.23.0 开始,该标签将无效。

  • 在变更期间:如果标签设置为 "new",测试将始终针对新接口进行检查;如果标签设置为 "old",测试将针对旧接口进行检查,无论处于哪个阶段。从 0.23.0 开始,该设置将无效,测试将始终针对新接口进行检查。

  • 扩展者 - 推荐的更改操作:扩展者应致力于将其第三方扩展升级到 "pred_int:legacy_interface:testcfg=new" 行为,截止到 0.21.last。可以通过在传递给 check_estimator 之前设置 forecaster.set_config({"pred_int:legacy_interface:testcfg": "new"}) 来强制执行针对后期阶段和弃用后行为的测试。在 0.22.0 之后可以移除 set_config 调用,并且应在 0.23.0 之前移除,但如果未移除,也不会造成破坏。

  • 拥有大量用户基础的扩展者可以选择在 0.22.0 之前实现并发布带有 legacy_interface 参数的 _predict_quantiles_predict_intervals,其默认值应从一开始就设置为 False``(即使在早期阶段)。在这种情况下,应将 ``"pred_int:legacy_interface:testcfg" 标签设置为 "auto",测试将检查新旧两种行为。legacy_interface 参数可以在 0.23.0 之后移除。这将使得扩展者的预测器用户与 sktime 的直接用户获得相同的过渡体验。

PR 列表#

  • [ENH] 在单变量情况下,将 "Coverage""Quantiles" 的默认变量名替换为变量名 (#4880) @fkiraly, @benheid

  • [BUG] 0.21.0 版本修复 - 修复 sklearn 1.3.0 与基于 partial 的动态错误度量在 test_make_scorer 中的交互问题 (#4915) @fkiraly

  • [MNT] 在调试完成之前,xfail mlflow 失败 #4904,为 py-spy 添加 gitignore (#4913) @fkiraly

  • [DOC] 0.21.0 发布行动 - 更新弃用指南以反映弃用 deprecated 的使用 (#4914) @fkiraly

  • [MNT] 0.21.0 发布行动 - 更新 sklearn 绑定到 <1.4.0 (#4778) @fkiraly

  • [MNT] 0.21.0 发布行动 - 在 Python 3.7 EOL 后将 pycatch22 作为软依赖添加回来 (#4790) @fkiraly

版本 0.20.1 - 2023-07-14#

亮点#

核心接口变更#

BaseObject#

  • 对象蓝图(规范)的序列化/反序列化到字符串的功能已添加。此处的“蓝图”是指初始状态的对象组合,例如,一个全新的预测管道。所有对象通过 str 强制转换进行序列化,例如 str(my_pipeline),并通过 sktime.registry.craft : str -> object 进行反序列化。反序列化器 craft 是序列化器 str 在固定 Python 环境中的伪逆,因此可用于完全可复现的规范存储和共享,例如在可复现的科学研究或性能基准测试中。

  • 进一步的工具 registry.depsregistry.imports 补充了序列化工具箱。在一个仅包含 sktime 核心依赖的环境中,工具 deps : str -> list[str] 生成一个 PEP 440 软依赖说明符列表,这些说明符是创建序列化对象(例如,预测管道)所需的,可以在创建之前用于设置python环境安装。工具 imports : str -> str 生成一个包含所有创建序列化对象所需的python可编译导入的代码块。

  • 标签 python_dependencies_alias 被添加用于管理估计器特定的依赖项,其中包名与导入名不同。更多详情请参阅估计器开发者指南。

变换#

  • 转换的基础接口,即继承自 BaseTransformer 的估计器,现在允许在 transform 中使用 X=None 而不会引发异常。各个转换器现在可以实现自己的逻辑来处理 X=None

增强功能#

BaseObject#

基准测试和指标#

  • [ENH] 重构了 evaluate 例程,内部使用分割器,并允许单独的 X 分割 (#4861) @fkiraly

数据加载器#

预测#

  • [ENH] 重构 ForecastingHorizon 以在私有方法中使用基于 Indexcutoff (#4463) @fkiraly

  • [ENH] SkoptForecastingCV - 使用 scikit-optimize 进行超参数调优 (#4580) @hazrulakmal

  • [ENH] 为 predict_intervalpredict_quantiles 添加更多合约测试 (#4763) @yarnabrina

  • [ENH] statsmodels AutoReg 接口 (#4774) @CTFallon, @mgazian000, @JonathanBechtel

  • [ENH] 在预测模块中移除私有默认值 (#4810) @fkiraly

  • [ENH] 按水平预测器,为每个水平使用不同的估计器/参数 (#4811) @fkiraly

  • [ENH] 复制另一个分隔器的 loc 的分隔器 (#4851) @fkiraly

  • [ENH] test-plus-train 分割器合成器 (#4862) @fkiraly

  • [ENH] 将 ForecastX 的缺失数据处理标签设置为 True 以妥善应对未来的未知变量 (#4876) @fkiraly

时间序列分类#

  • [ENH] 确保 BaggingClassifier 可以用作单变量到多变量的组合器 (#4788) @fkiraly

  • [ENH] 迁移 MCDCNN 分类器、回归器、网络从 sktime-dl (#4637) @achieveordie

  • [ENH] 在 CNNNetwork 中,添加控制 paddingfilter_size 逻辑的选项 (#4784) @alan191006

时间序列回归#

变换#

  • [ENH] 在 BaseTransformer.transform 中允许 X=None (#4112) @fkiraly

  • [ENH] 在 DateTimeFeatures 转换器中添加 hour_of_week 选项 (#4724) @VyomkeshVyas

  • [ENH] ColumnEnsembleTransformer - remainder 参数 (#4789) @fkiraly

  • [ENH] SplitterSummarizer 转换器按折叠应用转换器 (#4759) @BensHamza

可视化#

  • [ENH] 从 plot_series / plot_interval 中移除对列名的假设 (#4779) @fkiraly

维护#

文档#

修复#

基准测试和指标#

  • [BUG] 在使用 make_forecasting_scorer 时允许未使用的参数 (#4833) @fkiraly

  • [BUG] 修复 evaluate 工具在 yX 长度不等的情况 (#4861) @fkiraly

预测#

  • [BUG] 为 _BaseWindowForecaster 添加临时修复以处理同时进行的样本内和样本外预测 (#4812) @felipeangelimvieira

  • [BUG] 修复 make_reductionglobal 池化时面板时间索引不一致的问题 (#4644) @kbpk

  • [BUG] 允许在存在外生变量的情况下,在 DynamicFactor 中进行概率预测,通过 (#4758) @yarnabrina

  • [BUG] 修复 predict_residuals 内部数据类型转换 (#4772) @fkiraly, @benHeid

变换#

  • [BUG] 修复 scipy 1.11.0 之后 BoxCoxTransformer 的失败 (#4770) @fkiraly

  • [BUG] ColumnEnsembleTransformer - 修复逻辑错误 (#4789) @fkiraly

测试框架#

  • [BUG] 修复 utils.plotting 测试中的间歇性失败 - 将 matplotlib 后端设置为 agg 以避免触发 GUI (#4781) @benHeid

贡献者#

@achieveordie, @alan191006, @benHeid, @BensHamza, @CTFallon, @felipeangelimvieira, @fkiraly, @GargiChakraverty-yb, @hazrulakmal, @JonathanBechtel, @kbpk, @mdsaad2305, @mgazian000, @mswat5, @VyomkeshVyas, @yarnabrina

版本 0.20.0 - 2023-06-21#

维护版本 - Python 3.7 生命周期结束维护更新,计划中的弃用。

有关最后的非维护内容更新,请参见 0.19.2 和 0.19.1。

内容#

  • sktime 不再支持 python 3.7,因为 python 3.7 的生命周期即将结束(6月27日),并且 sktime 的依赖项已经停止支持。

  • 预提交和编码风格升级(3.8 及以上)

  • 计划在 0.20.0 版本中弃用的操作

依赖项更改#

  • numpy 版本范围现在允许版本 1.25.X

弃用和移除#

Python 3.7 生命周期结束#

sktimesktime 0.20.0 及以后版本不再支持 Python 3.7。

Python 将于 2023 年 6 月 27 日达到生命周期结束,而 sktime 的核心依赖项已经在新版本中放弃了对 Python 3.7 的支持(例如,scikit-learn)。

时间序列分类#

ComposableTimeSeriesClassifierWeightedEnsembleClassifier 已经完成了向 classification.ensemble 的迁移,它们不再可以在原来的位置导入。

PR 列表#

  • [MNT] 0.20.0 弃用操作 (#4733) @fkiraly

  • [MNT] 0.20.0 发布行动 - 移除对 Python 3.7 的支持 (#4717) @fkiraly

  • [MNT] 0.20.0 发布行动 - 将 scikit-base 的限制增加到 <0.6.0 (#4735) @fkiraly

  • [MNT] 0.20.0 发布行动 - 支持 numpy 1.25 (#4720) @jorenham

  • [MNT] 0.20.0 发布行动 - 移除所有 Python 模块中不必要的初始 utf 注释,这在 Python 3 中是不必要的 (#4725) @yarnabrina

  • [MNT] 0.20.0 发布行动 - 使用 pyupgrade 升级到 Python 3.8 及以上版本的编码风格 (#4726) @yarnabrina

贡献者#

@fkiraly, @jorenham, @yarnabrina

版本 0.19.2 - 2023-06-19#

亮点#

核心接口变更#

  • ForecastingHorizon 和预测器的 fitpredict 现在支持 range 作为输入。注意:range(n)0 开始,到 n-1 结束。对于一个 n 步的预测,包括地平线中的所有 n 个整数步,传递 range(1, n+1)

增强功能#

预测#

  • [ENH] statsforecast AutoETS 直接接口估计器 (#4648) @yarnabrina

  • [ENH] statsforecast AutoCES 直接接口估计器 (#4649) @yarnabrina

  • [ENH] 改进了 BaseForecaster 的异常信息,引用了 self 类名 (#4699) @fkiraly

  • [ENH] 在 ForecastingHorizonfitpredict 方法中支持传递 range 对象 (#4716) @yarnabrina

时间序列分类#

文档#

维护#

  • [MNT] 解决 main 上的 pre-commit 问题 (#4673) @yarnabrina

  • [MNT] 从测试中排除一些基于DL和``numba``的估计器,以防止内存过载 (#4682) @fkiraly

  • [MNT] 从 sklearn 中移除私有导入 - set_random_state (#4672) @fkiraly

  • [MNT] 更新预提交钩子版本及相应更改 (#4680) @yarnabrina

  • [MNT] 将 skbase 添加到 show_versions 的默认包版本显示中 (#4694) @fkiraly

  • [MNT] 减少 CI 测试日志的详细程度 (#4715) @fkiraly

  • [MNT] 从CI中移除Python 3.7测试 (#4722) @fkiraly

修复#

BaseObject#

基准测试#

数据集和数据加载器#

  • [BUG] 修复UEA数据集的失效源链接 (#4705) @fkiraly

  • [BUG] 从 TSC 数据注册表中移除 IOError 数据集 (#4711) @fkiraly

数据类型、检查、转换#

  • [BUG] 修复 pd-multiindexdf-list 的转换,如果并非所有索引级别都存在 (#4693) @fkiraly

  • [BUG] 修复 vectorize_est 在列向量化时返回乱序列的问题,如果列名不是按字典顺序排列,则返回 pd.DataFrame (#4684) @fkiraly, @hoesler

预测#

  • [BUG] 在多变量 y 的情况下修正 ForecastX 的行为 (#4719) @fkiraly

贡献者#

@achieveordie, @fkiraly, @hazrulakmal, @hoesler, @mdsaad2305, @yarnabrina

版本 0.19.1 - 2023-05-30#

维护版本 - 计划中的 pandas 依赖更新,计划中的弃用。

有关上次非维护内容更新,请参见 0.18.1。

内容#

  • pandas 2 现在已完全支持。所有 sktime 原生功能仍与 pandas 1>=1.1.0 兼容。

  • 计划弃用基于 tensorflow 的概率接口。

依赖项更改#

  • pandas 版本范围现在除了当前支持的 pandas 1 版本外,还允许 2.0.X 版本。这标志着实验性支持的过渡期结束,并开始全面支持 pandas 2,旨在支持任何 pandas 2 版本。

  • tensorflow-probability 不再是一个依赖或软依赖,它也从所有依赖集(包括 dl)中移除。

弃用和移除#

Python 3.7 生命周期结束#

Python 3.7 将于 2023 年 6 月 27 日结束生命周期,而 sktime 的核心依赖项已经在新版本中停止了对 Python 3.7 的支持(例如,scikit-learn)。

sktime 将在 0.20.0 版本,或 2023 年 6 月 27 日之后的第一个次要版本中,放弃对 Python 3.7 的支持,以较晚者为准。

依赖项#

  • tensorflow-probability 不再是一个依赖或软依赖,它也从所有依赖集(包括 dl)中移除。

预测#

  • legacy_interface 参数已从预测器的 predict_proba 中移除。该方法现在总是返回一个 BaseDistribution 对象,这与先前的默认行为一致,即 legacy_interface=False

PR 列表#

  • [MNT] 0.19.0 更改操作 - 将 pandas 的限制放宽至 <2.1.0 (#4429) @fkiraly

  • [MNT] 0.19.0 版本发布行动 - 针对 pandas 1pandas 2 的测试 (#4622) @fkiraly

  • [MNT] 0.19.0 弃用和变更 (#4646) @fkiraly

版本 0.19.0#

由于维护目的而被跳过,不应使用。(从pypi中移除)

版本 0.18.1 - 2023-05-22#

亮点#

核心接口变更#

概率分布#

  • 蒙特卡洛近似的默认样本大小规范现在使用 scikit-base 配置系统

  • 添加了一个 quantile 方法,该方法返回与 BaseForecaster.predict_quantiles 返回的格式相同的分位数表。

  • 添加了一个 ppf 方法,用于返回分位数

增强功能#

基准测试#

  • [ENH] 在 evaluate 拟合失败时提供更清晰的错误信息 (#4545) @fkiraly

  • [ENH] 扩展预测基准测试框架以支持多种指标,增加测试覆盖率 (#4586) @hazrulakmal

预测#

  • [ENH] statsforecast AutoTheta 直接接口估计器 (#4539) @yarnabrina

  • [ENH] 移除长度为1的预测管道的警告 (#4546) @fkiraly

  • [ENH] 简单的表格预测减少用于预测 (#4564) @fkiraly

  • [ENH] 以通用方式重写 _StatsForecastAdapter 以支持除 AutoARIMA 以外的其他模型 (#4629) @yarnabrina

概率分布#

  • [ENH] 将概率分布统计近似样本大小移动到配置接口 (#4561) @fkiraly

  • [ENH] 为 AutoETS 添加更多测试参数集 (#4588) @fkiraly

  • [ENH] 改进 BaseDistribution 的默认设置,并增加测试覆盖率 (#4583) @fkiraly

时间序列对齐#

  • [ENH] 时间序列对齐器的完整测试套件 (#4614) @fkiraly

  • [ENH] 将 numba 对齐路径作为 sktime 对齐器 (#4620) @fkiraly

时间序列分类#

  • [ENH] SimpleRNN DL 时间序列回归器,从 sktime-dl 迁移 (#4185) @ArushikaBansal

  • [ENH] 将分类集成移动到 classification.ensembles (#4532) @fkiraly

  • [ENH] 为 DrCIF 中的自定义估计器和参数提供更好的文档和测试覆盖率 (#4621) @Taise228

  • [ENH] 添加 MACNN 分类器和网络 (#4636) @achieveordie

时间序列距离和核#

  • [ENH] 独立距离和多元聚合核包装器 (#4598) @fkiraly

  • [ENH] 距离和核函数的变量子集化双下划线 (#4596) @fkiraly

变换#

  • [ENH] 在 TSFreshFeatureExtractor 中移除不必要的转换 (#4571) @fkiraly

测试框架#

  • [ENH] 在 test_fit_does_not_overwrite_hyper_params 中用 deep_equals 替换 joblib.hash 用于 pandas 基础参数 (#4538) @fkiraly

  • [ENH] 在 check_estimator 中添加了 msg 参数 (#4552) @fkiraly

维护#

  • [MNT] 将静默依赖添加到核心依赖集 (#4551) @fkiraly

  • [MNT] 将 tensorflow-probability 绑定到 <0.20.0 (#4567) @fkiraly

  • [MNT] 根据问题 #4379 将 Union[int | float] 更改为 float (#4575) @mdsaad2305

  • [MNT] 移除剩余的与软依赖相关的模块导入警告 (#4554) @fkiraly

  • [MNT] check_estimator 中的 pytest 隔离 (#4552) @fkiraly

  • [MNT] 移除剩余的与软依赖相关的模块导入警告 (#4554) @fkiraly

  • [MNT] 临时绑定 holidays 以避免 Prophet 中的错误,随后恢复 (#4594, #4600) @fkiraly, @yarnabrina

  • [MNT] 从估计器中移除 tsfresh 的 Python 版本界限 (#4573) @fkiraly

  • [MNT] 从 CI 中排除 FCNClassifier 以防止内存溢出,直到修复错误 (#4616) @fkiraly

  • [MNT] 在 scipy 中处理 kulsinski 的弃用 (#4618) @fkiraly

  • [MNT] 从 check_is_scitype 文档字符串中移除被遗忘的 legacy_interface 引用 (#4630) @fkiraly

文档#

修复#

BaseObject, BaseEstimator#

  • [BUG] 修复 _HeterogenousMetaEstimator 中的 get_fitted_params (#4633) @fkiraly

预测#

  • [BUG] 修正了 _predict_interval 的默认逻辑,以防 _predict_quantiles 未实现但 _predict_proba 已实现 (#4529) @fkiraly

  • [BUG] RecursiveReductionForecaster pandas 2 修复 (#4568) @fkiraly

  • [BUG] 在 _StatsModelsAdapter 中,如果在 _predict_intervalstatsmodelsget_prediction 不支持 exog 参数,则避免传递 exog (#4589) @yarnabrina

  • [BUG] 修复 BaseGridCVn_best_forecasters_ 排序错误,如果指标的 lower_is_betterFalse (#4590) @hazrulakmal

概率分布#

  • [BUG] 修复 BaseDistribution 中未实现默认方法时的错误信息 (#4628) @fkiraly

  • [BUG] 修复 BaseDistribution quantile 返回中 alpha 排序错误 (#4631) @fkiraly

时间序列距离和核#

  • [BUG] 修复 BasePairwiseTransformerPanel 中的输入检查错误信息 (#4499) @fkiraly

时间序列分类#

时间序列回归#

变换#

  • [BUG] 修复 BaseTransformery 输入类型检查的错误信息 (#4525) @fkiraly

  • [BUG] 修复 DateTimeFeatures'month_of_quarter' 特征返回的错误值 (#4542) @fkiraly

  • [BUG] 修复了 HampelFilter 中错误的窗口索引 (#4560) @antonioramos1

贡献者#

@achieveordie, @antonioramos1, @ArushikaBansal, @fkiraly, @hazrulakmal, @kbpk, @luca-miniati, @marrov, @mdsaad2305, @panozzaj, @sanjayk0508, @Taise228, @TonyZhangkz, @wasup-yash, @yarnabrina

版本 0.18.0 - 2023-04-28#

维护版本 - 计划中的 numbascikit-basepandas 依赖更新,计划中的弃用。

有关上次非维护内容更新,请参见 0.17.2。

内容#

  • numba 已被更改为软依赖。所有基于 numba 的估计器继续不变地工作,但需要显式安装 numba

  • sktime 的基础模块已被分解到 scikit-base,这是由 sktime 维护的类似 scikit-learn 包的抽象基础层。

  • pandas 2 的支持在测试/实验期间持续到 0.18.last。所有 sktime 原生功能都与 pandas 2 兼容,过渡期允许测试部署和自定义扩展。请参阅以下说明,了解如何将依赖代码升级到 pandas 2,或继续使用 pandas 1

  • 计划弃用基于 tensorflow 的概率接口和 VectorizedDF 方法。

依赖项更改#

  • numba 不再是核心依赖,它已变为软依赖

  • scikit-base 是一个新的核心依赖

弃用和移除#

依赖项#

  • numbasktime 0.18.0 中已从核心依赖变为软依赖。为了确保依赖于 numbasktime 代码在未来能够正常运行,请确保在环境中显式安装 numba,或者安装包含 numbaall_extras 软依赖集。此外,依赖于 numba 的估计器将像以前一样正常运行。

  • sktime 的基础模块已从 sktime 0.18.0 迁移到一个新的核心依赖 scikit-base。这将不会直接影响 sktime 的功能或直接导入,也不会影响任何使用。

  • tensorflow-probability 将从 0.19.0 版本开始不再是一个软依赖,因为唯一的依赖位置(预测器的旧 predict_proba 返回类型)正在被弃用。

数据类型、检查、转换#

  • VectorizedDF.get_iloc_indexer 已被移除。开发者和用户应改用 iter__iter__get_iter_indices

预测#

  • 预测者的 predict_proba 现在默认返回一个 BaseDistribution。在0.17.0之前的版本中,基于 tensorflow-probability 的返回值仍然可以通过在 predict_proba 中设置参数 legacy_interface=False 来获得。这对于处理弃用问题很有用。

  • 从 0.19.0 开始,predict_proba 方法中的 legacy_interface 参数将被移除,同时也将移除返回基于 tensorflow-probability 结果的选项。

pandas 2 升级与测试#

  • pandas 2 的支持正在逐步引入:

    • 实验性支持期直到 0.19.0(所有 0.17.X 和 0.18.X 版本)

    • 从0.19.0开始全面支持(0.19.0, 0.19.X及以后版本)

  • 在实验期间 (0.17.1-0.18.last):

    • sktime 将有一个依赖绑定 pandas<2.0.0

    • sktime 将致力于兼容 pandas 2.0.X 以及 pandas 1, >=1.1.0

    • sktime 可以通过强制安装 pandas 2.0.X 来运行和测试 pandas 2.0.X

    • 可以通过在强制安装的 pandas 2.0.X 下使用 check_estimator 来测试估计器是否兼容 pandas 2

    • 关于兼容性问题的报告在 #4426 中受到欢迎(直接输入或链接自)

  • 在全面支持期间(0.19.0及以后):

    • sktime 要求将允许 pandas 2.0.X 并随着 pandas 版本的发布扩展支持。

    • sktime 将致力于兼容 pandas 2``(任何版本),以及 ``pandas 1, >=1.1.0

    • 用户通过其下游环境的需求选择他们偏好的 pandas 版本

    • 错误和问题追踪器应正常使用

PR 列表#

  • [MNT] 0.18.0 变更操作 - numba 作为软依赖 (#3843) @fkiraly

  • [MNT] 0.18.0 弃用操作 (#4510) @fkiraly

  • [MNT] 确保 mlflow 预测接口中的 predict_proba 调用显式调用 legacy_interface (#4514) @fkiraly

  • [MNT] skbase 重构 - 第1部分: BaseObject 和包依赖 (#3151) @fkiraly

  • [MNT] skbase 重构 - 第2部分: all_estimators 查找 (#3777) @fkiraly

  • [ENH] 分布的 quantile 方法,如果存在 predict_proba,则为预测器 predict_quantiles 提供默认实现 (#4513) @fkiraly

  • [ENH] 为 all_estimators 标签过滤器添加测试 (#4512) @fkiraly

版本 0.17.2 - 2023-04-24#

亮点#

核心接口变更#

预测#

  • 所有预测器(Baseforecaster 的后代)现在都有以下新标签:

    • capability:insample,布尔值,表示分类器是否可以进行样本内预测。

    • capability:pred_int:insample,布尔值,表示分类器是否能够进行概率性的样本内预测,例如,样本内的预测区间。

  • 所有预测器现在都通过 check_estimator 进行了接口一致性测试,包括区间预测的样本内(基于上述标签)和样本外测试。

时间序列分类#

  • 所有时间序列分类器(BaseClassifier 的后代)现在都有一个标签 capability:predict_proba。这表明分类器是否实现了非默认(非delta-mass)的概率分类功能。

增强功能#

数据类型、检查、转换#

  • [ENH] 在 get_slice 中允许包含/排除边界 (#4483) @fkiraly

预测#

  • [ENH] 为 SARIMAX 添加 _predict_interval 以支持 predict_intervalpredict_quantiles (#4439) @yarnabrina

  • [ENH] 将 ForecastingHorizon-BaseForecastercutoff 接口调整为依赖公共点 (#4456) @fkiraly

  • [ENH] 样本内预测测试 - 在 test_predict_time_index 中用标签和标签依赖合约替换 try/except (#4476) @fkiraly

  • [ENH] 从分位数预测合约中移除单调性要求 (#4480) @fkiraly

  • [ENH] 移除 BaseForecaster_predict_interval_predict_quantiles 的冗余实现检查 (#4481) @yarnabrina

  • [ENH] 季节性表格工具 (#4490) @fkiraly, @marrov

  • [ENH] 测试所有预测器的 predict_quantilespredict_interval 样本内 (#4470) @fkiraly

  • [ENH] 对 NaiveForecaster 的高性能重新实现 - "last" 策略 (#4461) @fkiraly

  • [ENH] 在 _StatsModelsAdapter 中添加了 _predict_interval ,并在其他估计器中继承以减少代码重复 (#4465) @yarnabrina

  • [ENH] 在 ForecastingHorizon 中,将 to_absolute().to_pandas() 调用重构为一个方法 (#4464) @fkiraly

时间序列分类#

  • [ENH] 分类器的 predict_proba 功能标签 (#4012) @fkiraly

  • [ENH] 迁移 InceptionTime 分类器和示例(来自 sktime-dl)(#3003) @tobiasweede

时间序列回归#

变换#

  • [ENH] IxToX 转换器,从时间索引或层次标签创建特征 (#4416) @fkiraly

  • [ENH] 基于任何分割器的 SplitterBootstrapTransformer 用于引导 (#4455) @fkiraly

  • [ENH] 转换器合成器通过面板或实例应用 (#4477) @fkiraly

测试框架#

  • [ENH] 改进了 _make_series 实用程序和文档字符串 (#4487) @fkiraly

  • [ENH] 在 _make_series 中移除对 return_numpy 参数的调用 (#4488) @fkiraly

维护#

  • [MNT] 将 ElectricDevices.csvGunPoint.csv 的行结束符从 CRLF 改为 LF (#4452) @yarnabrina

  • [MNT] 确保测试矩阵中的所有元素完成运行 (#4472) @fkiraly

  • [MNT] 添加 InceptionTimeClassifierLSTMFCNClassifier 作为直接模块导出 (#4484) @fkiraly

  • [MNT] 解决依赖项中的一些警告和弃用消息 (#4486) @fkiraly

文档#

  • [DOC] 修复 MiniRocket 示例代码中的错误 - 错误的转换器 (#4497) @doncarlos999

  • [DOC] 将 InceptionTimeClassifierLSTMFCNClassifier 添加到 API 文档 (#4484) @fkiraly

  • [DOC] 修正cython接口参考中的拼写错误,MySQM -> MrSQM (#4493) @fkiraly

  • [DOC] 将内容从 pydata 全球 2022(transformers, pipelines 教程)移动到 sktime 主仓库 (#4381) @dashapetr

  • [DOC] 改进了readthedocs登陆页面上对``sktime``的描述 (#4444) @howdy07

修复#

预测#

  • [BUG] 修复 BaggingForecaster 概率预测中的 pandas 写入错误 (#4478) @fkiraly

  • [BUG] 修复 _PmdArimaAdapter_StatsForecastAdapter 在 0.17.1 之后的 predict_quantiles (#4469) @fkiraly

  • [BUG] ForecastingHorizon 构造函数 - 从常规 DatetimeIndex 基础地平线错误推断的 freq 属性覆盖 (#4466) @fkiraly, @yarnabrina

  • [BUG] 修复损坏的 DynamicFactor._predict_interval (#4479) @fkiraly

  • [BUG] 修复 pmdarima 接口在 X 包含比预测范围更多的索引时中断的问题 (#3667) @fkiraly, @SzymonStolarski

  • [BUG] 修复 BATSTBATS_predict_interval 接口 (#4492, #4505) @fkiraly`

  • [BUG] 修复 VECM._predict_interval 接口以适应类似日期的索引 (#4506) @fkiraly

测试框架#

  • [BUG] 修复可空输入测试中的索引错误 (#4474) @fkiraly

贡献者#

@dashapetr, @doncarlos999, @fkiraly, @howdy07, @marrov, @SzymonStolarski, @tobiasweede, @yarnabrina

版本 0.17.1 - 2023-04-10#

维护补丁(pandas 2attrs)。关于上次内容更新,请参见 0.17.0。

  • pandas 2 兼容性补丁

  • pandas 2 的实验性支持,包括测试和用户升级指南

  • sktime 将继续支持 pandas 1 版本

用户反馈和 pandas 2 兼容性问题在 #4426 中受到欢迎。

依赖项更改#

  • 版本限制 pandas<2.0.0 将在 sktime 0.19.0 中放宽为 pandas<2.1.0

    • 选项 1:从 0.19.0 开始继续使用 pandas 1.X,只需在下游需求中引入 pandas<2.0.0 的限制。

    • 选项 2:要安全升级到 pandas 2.X,请按照以下升级和测试说明进行操作

    • 这两个选项都不会影响 sktime 的公共接口,即没有移除、弃用或合约变更,除了 sktime 要求中 pandas 绑定的变化。

  • attrs 从一个隐含的(非显式的)软依赖变为一个显式的软依赖(在 all_extras 中)

pandas 2 升级与测试#

  • pandas 2 的支持将逐步引入:

    • 实验性支持期直到 0.19.0(所有 0.17.X 和 0.18.X 版本)

    • 从0.19.0开始全面支持(0.19.0, 0.19.X及以后版本)

  • 在实验期间 (0.17.1-0.18.last):

    • sktime 将有一个依赖绑定 pandas<2.0.0

    • sktime 将致力于兼容 pandas 2.0.X 以及 pandas 1, >=1.1.0

    • sktime 可以通过强制安装 pandas 2.0.X 来运行和测试 pandas 2.0.X

    • 可以通过在强制安装的 pandas 2.0.X 下使用 check_estimator 来测试估计器是否兼容 pandas 2

    • 关于兼容性问题的报告在 #4426 中受到欢迎(直接输入或链接自)

  • 在全面支持期间(0.19.0及以后):

    • sktime 要求将允许 pandas 2.0.X 并随着 pandas 版本的发布扩展支持。

    • sktime 将致力于兼容 pandas 2``(任何版本),以及 ``pandas 1, >=1.1.0

    • 用户通过其下游环境的需求选择他们偏好的 pandas 版本

    • 错误和问题追踪器应正常使用

PR 列表#

  • [MNT] 解决 DataFrame.aggSeries.agg"mad" 选项的弃用问题 (#4435) @fkiraly

  • [MNT] 解决在非数值列上 DataFrame.agg 的自动删除弃用问题 (#4436) @fkiraly

  • [MNT] 解决 freq 相关的弃用问题和 pandas 2 在归约器中的失败 (#4438) @fkiraly

  • [MNT] 由于偶发失败,从 test_predict_quantiles 中排除 Prophet (#4432) @fkiraly

  • [MNT] 由于间歇性失败,从 test_predict_quantiles 中排除 VECM (#4442) @fkiraly

  • [MNT] 修复并加强 statsmodelspmdarima 的软依赖隔离逻辑 (#4443) @fkiraly

  • [MNT] 隔离 attrs 导入 (#4450) @fkiraly

版本 0.17.0 - 2023-04-03#

亮点#

依赖项更改#

  • 新增了一个软依赖项,即 seasonal 包,该包仅对 SeasonalityPeriodogram 估计器是必需的。

核心接口变更#

BaseObject, BaseEstimator#

  • 所有 sktime 对象和估计器现在都拥有一个配置接口,通过新的 get_configset_config 方法实现。目前这是实验性的,目前没有对外暴露的配置字段。

数据类型、检查、转换#

  • sktime 现在可以识别可为空的 pandas dtypes,并在必要时将其强制转换为不可为空的类型。以前,可为空的 dtype 会导致异常。

预测#

  • BaseDistribution 对象已被引入,作为完整分布预测和模拟查询的可能返回值。目前这是实验性的,欢迎反馈和贡献。

  • 预测器的 predict_proba 现在返回一个 sktime BaseDistribution 对象,如果 tensorflow-probability 不存在(例如,在 python 3.11 上),或者如果临时弃用参数 legacy_interface=False 被设置。基于旧 tensorflow 的接口将在两个周期内被弃用,详见下文。

  • sktime 现在包含了用于概率分布预测的指标和损失。这些指标假设预测结果为 BaseDistribution 对象。

弃用和移除#

依赖项#

  • numba 将在 sktime 0.18.0 中从核心依赖变为软依赖。为了确保依赖于 numbasktime 代码在未来能够正常运行,请确保在环境中显式安装 numba,或者安装包含 numbaall_extras 软依赖集。除此之外,依赖 numba 的估计器将和以前一样正常工作。

  • sktime 的基础模块将从 sktime 0.18.0 开始迁移到一个新的核心依赖 skbase。这将不会直接影响 sktime 的功能或直接导入,也不会影响任何使用。

预测#

  • 预测器的 predict_proba 在 0.17.0 之前的 tensorflow 基础返回将被 BaseDistribution 对象的返回所取代。这将在两个次要周期内逐步淘汰,如下所示。

  • 在 0.18.0 之前,预测器的 predict_proba 默认情况下仅在调用 predict_proba 会引发错误的情况下返回 BaseDistribution,即在 0.17.0 之前,也就是在 Python 3.11 上且 Python 环境中没有 tensorflow-probability 的情况下。

  • 在 0.18.0 版本之前,可以通过在 predict_proba 中设置新参数 legacy_interface=False 来强制 BaseDistribution 返回。这对于处理弃用很有用。

  • 从 0.18.0 版本开始,legacy_interface 的默认值将设置为 False

  • 从 0.19.0 开始,predict_proba 方法中的 legacy_interface 参数将被移除,同时也将移除返回基于 tensorflow-probability 结果的选项。

变换#

  • DateTimeFeatures: keep_original_columns 参数的默认值已更改为 False

  • FourierFeatures: keep_original_columns 参数的默认值已更改为 False

测试框架#

  • check_estimatorrun_tests 中,return_exceptions 参数已被移除。它现在完全被 ``raise_exceptions``(其逻辑否定)所取代,该参数自 0.16.0 版本起可用。

增强功能#

BaseObject, BaseEstimator#

数据类型、检查、转换#

  • [ENH] 可空 dtypes - 确保在 pandas 转换中将可空列强制转换为 float dtype (#4245) @fkiraly

  • [ENH] 检查和示例中的 is_equal_index 元数据元素 (#4312) @fkiraly

  • [ENH] 对 mtype 元数据计算的细粒度控制,避免在不需要时进行计算 (#4389) @fkiraly, @hoesler

  • [ENH] 在当前基类样板中关闭所有不必要的输入检查 (#4390) @fkiraly

预测#

  • [ENH] 将 _ColumnEnsembleForecaster 中的列集成功能提取到新的基础混合类中 (#4231) @fkiraly

  • [ENH] ForecastKnownValues 预测器,用于预测规定的已知或专家预测值 (#4243) @fkiraly

  • [ENH] 改进向量化指标计算,弃用 VectorizedDF.get_iloc_indexer (#4228) @hoesler

  • [ENH] MeanAbsoluteError - evaluate_by_index (#4302) @fkiraly

  • [ENH] BaseForecastingErrorMetric 内部接口清理 (#4305) @fkiraly

  • [ENH] 概率预测重构第1部分 - 后端无关的概率分布 (#4190) @fkiraly

  • [ENH] 概率预测重构第二部分 - 分布预测指标对数损失、CRPS (#4276) @fkiraly

  • [ENH] 概率预测重构第3部分 - 预测器 (#4290) @fkiraly

  • [ENH] 概率预测重构第4部分 - 评估和调优 (#4367) @fkiraly

  • [ENH] 为预测管道构造器提供信息性错误消息,用于 steps 参数 (#4371) @fkiraly

参数估计器#

  • [ENH] 将季节性包作为季节性参数估计器进行接口化 (#4215) @blazingbhavneek

  • [ENH] 平稳性参数估计器 - ADF 和 KPSS (#4247) @fkiraly

  • [ENH] PluginParamsForecaster 接受任何估计器,快速示例调谐一致性 (#4412) @fkiraly

时间序列分类#

变换#

测试框架#

  • [ENH] 性能指标的附加测试参数集 (#4246) @fkiraly

  • [ENH] 测试 get_test_params,并保留参数 (#4279) @fkiraly

  • [ENH] 清理了分位数和区间预测的概率预测测试 (#4393) @fkiraly, @yarnabrina

  • [ENH] 为 test_predict_interval coveragetest_predict_quantiles alpha 在预测器合约测试中覆盖列表输入情况 (#4394) @yarnabrina

维护#

  • [MNT] 处理 pandas.DataFrame.iteritems 的弃用 (#4271) @fkiraly

  • [MNT] 修复了 distances 模块中的 B016 Cannot raise a literal 的代码检查问题 (#4284) @SamiAlavi

  • [MNT] 添加与 Python 3.11 兼容的软依赖 (#4269) @fkiraly`

  • [MNT] 将参数估计器与 check_estimator 集成 (#4287) @fkiraly

  • [MNT] 解决 pytest 失败 - 将 dash 降级到 <2.9.0 (#4353) @fkiraly

  • [MNT] 解决 forecasting.base 中的循环导入 (#4329) @fkiraly

  • [MNT] 隔离 scipy 导入,第1部分 (#4005) @fkiraly

  • [MNT] 移除工作流中自动检测和更新 CONTRIBUTORS.md 的分支限制 (#4323) @achieveordie

  • [MNT] 执行对 ContractableBOSS typed_dict 参数的遗忘弃用 (#4331) @fkiraly

  • [MNT] 除了预报员未能通过概率预测测试(之前被有问题的测试掩盖)(#4364) @fkiraly

  • [MNT] 将 transformations.compose 拆分为子模块 (#4368) @fkiraly

  • [MNT] 通过排除失败的版本2.9.0来替换紧急的``dash``绑定 (#4415) @fkiraly

  • [MNT] 移除模块中的软依赖导入警告,并记录添加这些依赖的要求 (#4398) @fkiraly

  • [MNT] dockerized 测试 (#4285) @fkiraly, @lmmentel

  • [MNT] 修复转换模块中的代码检查问题 (#4291) @SamiAlavi

  • [MNT] 修复了 basenetworksregistry 模块中的代码检查问题 (#4310) @SamiAlavi

  • [MNT] 解决 forecasting.base 中的循环导入 (#4329) @fkiraly

  • [MNT] 检查 test_croston.py (#4334) @ShivamPathak99

  • [MNT] 除了预报员未能通过概率预测测试(之前被有问题的测试掩盖)(#4364) @fkiraly

  • [MNT] 自动修复代码检查问题 (#4317) @SamiAlavi

  • [MNT] 修复 clustering 模块中的代码检查问题 (#4318) @SamiAlavi

  • [MNT] 修复 forecasting 模块中的代码检查问题 (#4319) @SamiAlavi

  • [MNT] 修复了 annotation 模块中的代码检查问题 (#4309) @SamiAlavi

  • [MNT] 修复 series_as_features, tests, dist_kernels, benchmarking 模块中的代码检查问题 (#4321) @SamiAlavi

  • [MNT] 修复了 classification 模块中的代码检查问题 (#4311) @SamiAlavi

  • [MNT] 修复 performance_metrics 模块中的代码检查问题 (#4320) @SamiAlavi

  • [MNT] 修复 utils 模块中的代码检查问题 (#4322) @SamiAlavi

  • [MNT] 在作者字段中用GitHub ID替换作者姓名 (#4340) @SamiAlavi

  • [MNT] 解决依赖项的弃用警告 (#4423) @fkiraly

  • [MNT] 0.17.0 弃用 & 变更操作 (#4424) @fkiraly

文档#

  • [DOC] 直接文档链接到 sktime.net 地址 (#4241) @fkiraly

  • [DOC] 改进了 reducer 文档字符串格式 (#4160) @fkiraly

  • [DOC] 改进 VectorizedDF.items.__iter__ 的文档字符串 (#4223) @fkiraly

  • [DOC] 直接文档链接到 sktime.net 地址 (#4241) @fkiraly

  • [DOC] 更新 transformer 扩展模板文档字符串,引用 Hierarchical (#4250) @fkiraly

  • [DOC] 参数估计器模块的API参考 (#4244) @fkiraly

  • [DOC] 在 PlateauFinder 模块中添加缺失的文档字符串 (#4255) @ShivamPathak99

  • [DOC] 改进了 ColumnConcatenator 的文档字符串 (#4272) @JonathanBechtel

  • [DOC] 在reducer模块和测试中修复了小的文档字符串问题 (#4274) @danbartl

  • [DOC] 明确了扩展模板中 get_test_params 的要求 (#4289) @fkiraly

  • [DOC] 本地测试的开发者指南 (#4285) @fkiraly

  • [DOC] 参数估计器的扩展模板 (#4288) @fkiraly

  • [DOC] 刷新 Discord 邀请至新服务器 (#4297) @fkiraly

  • [DOC] 更新 CONTRIBUTORS.md 至最新 (#4358) @fkiraly

  • [DOC] 改进了transformers的方法文档字符串 (#4328) @fkiraly

  • [DOC] MeanAbsoluteError 文档字符串 (#4302) @fkiraly

  • [DOC] 更新了 dtw_distance 文档字符串示例以包含导入 (#4324) @JonathanBechtel

  • [DOC] 修正拼写错误: Transforemd → Transformed (#4366) @kgeis

  • [DOC] TimeSeriesKMeans - 修正文档字符串中的 init_algorithm 默认值 (#4347) @marcosousapoza

  • [DOC] 在 numba 距离文档字符串中添加缺失的导入语句 (#4376) @JonathanBechtel

  • [DOC] 添加基于 Cython 的估计器的指南 (#4388) @fkiraly

  • [DOC] 为 ForecastX 添加仅预测某些外生变量的文档字符串示例 (#4392) @fkiraly

  • [DOC] 文档中“邀请贡献”段落的改进 (#4395) @abhisek7154

  • [DOC] README 和文档更新 - 任务表、拼写错误、查找 (#4414) @fkiraly

修复#

数据类型、检查、转换#

  • [BUG] 修复转换中的级别名称处理 nested_univ / pd-multiindex (#4270) @fkiraly

  • [BUG] 修复了 pd-multiindex 类型数据中 is_equally_spaced 的不正确推断 (#4308) @noahleegithub

预测#

  • [BUG] 在使用 evaluate 中的自定义错误度量时修复 Settingwithcopywarning (#4294) @fkiraly, @marrov

  • [BUG] 修复分层输入的预测指标 evaluate_by_index (#4306) @fkiraly, @marrov

  • [BUG] 将用户传递的参数传递给 ForecastX 到底层估计器 (#4391) @yarnabrina

  • [BUG] 修复通过 #4393 检测到的未报告的概率预测错误 (#4399) @fkiraly

  • [BUG] 确保预测器 cutoff 在可推断的情况下推断 freq,用于单一系列 (#4406) @fkiraly

  • [BUG] 修复 VECM._predict_interval 中传递多个覆盖值时出现的 ValueError (#4411) @yarnabrina

  • [BUG] 由于已知的间歇性错误 #4420,暂时跳过 VARtest_predict_quantiles (#4425) @yarnabrina

参数估计器#

  • [BUG] 修复 candidate_spint 时的季节性估计器 (#4360) @fkiraly

时间序列分类#

  • [BUG] 修复 WeightedEnsembleClassifier._predict_proba 使其与基于 pandas 的 mtypes 兼容 (#4275) @fkiraly

时间序列回归#

  • [BUG] 修复损坏的 ComposableTimeSeriesRegressor (#4221) @fkiraly

测试框架#

  • [BUG] 在预测测试框架中,修复无效的断言以正确检查时间索引 (#4361) @fkiraly

  • [BUG] 修复 MockForecaster._predict_quantiles 以确保分位数的单调性 (#4397) @yarnabrina

  • [BUG] 防止抽象 TimeSeriesLloyds 被合约测试发现 (#4225) @fkiraly

实用工具#

贡献者#

@abhisek7154, @achieveordie, @blazingbhavneek, @danbartl, @fkiraly, @hoesler, @JonathanBechtel, @ken-maeda, @kgeis, @lmmentel, @marcosousapoza, @marrov, @noahleegithub, @SamiAlavi, @ShivamPathak99, @yarnabrina

版本 0.16.1 - 2023-02-13#

亮点#

对Python 3.11支持的测试和反馈以及基准测试模块的使用表示感谢。

依赖项更改#

  • sktime 现在支持 Python 3.11

  • 在 Python 3.11 中,numba 不是一个依赖项,并且还有许多其他包也不作为软依赖项提供,这主要是由于与 3.11 的兼容性问题。

  • sktime 及其测试套件现在可以在没有安装 numba 的情况下使用,除了依赖于 numba 的估计器。numba 仍然是 Python 3.7-3.10 的核心依赖。

  • numba 将在 0.18.0 版本中从核心依赖变为软依赖。依赖于 numba 的估计器在 python 环境中存在 numba 时将完全像以前一样工作。

核心接口变更#

基准测试#

  • 基于 kotsu 的基准测试模块为预测器的基准测试引入了一种新的设计和语法。

预测#

  • 预测器现在将一致地保留传递的 pd.Series 中的 name 属性。以前,命名的 pd.Series 并未完全支持。

弃用和移除#

依赖项#

  • numba 将在 sktime 0.18.0 中从核心依赖变为软依赖。为了确保依赖于 numbasktime 代码在未来能够正常运行,请确保在环境中显式安装 numba,或者安装包含 numbaall_extras 软依赖集。除此之外,依赖 numba 的估计器将和以前一样正常工作。

增强功能#

基准测试#

数据类型、检查、转换#

预测#

  • [ENH] 修复了预测器在 predict 中保留 name 属性的问题 (#4161) @fkiraly

  • [ENH] 改进了/修复了预测调优器的 scoring 参数 (#4178) @fkiraly

  • [ENH] 使用 pd.DatetimeIndex 测试 Prophet (#4183) @fkiraly

  • [ENH] 更快的预测器 predict_residuals 测试 (#4156) @fkiraly

  • [ENH] 测试预测器保留 pd.Seriesname 属性 (#4157) @fkiraly

  • [ENH] 改进了/修复了预测调优器的 scoring 参数 (#4178) @fkiraly

变换#

  • [ENH] 为 Imputer 添加原生多索引/层次数据支持 (#4194) @hoesler

  • [ENH] 为 ColSelect 转换器添加面板支持 (#4193) @hoesler

修复#

数据集和数据加载器#

  • [BUG] 修正 'StarlightCurves' 数据集标识符字符串为 ‘StarLightCurves’ (#4222) @NeuralNut

  • [BUG] 修复 tsfile 测试中的竞争条件 (#4192) @hoesler

预测#

  • [BUG] 修复预测器在 predict 中保留 name 属性的问题 (#4161) @fkiraly

  • [BUG] 确保 pd.Seriesname 属性在转换为/从 pd.DataFramenp.ndarray 时被保留,作为 Series 的类型 (#4150) @fkiraly

  • [BUG] AutoETS, UnobservedComponents: 修复基于非零起始整数索引的 predict_interval (#4180) @fkiraly

参数估计#

  • [BUG] 修复 SeasonalityACFSeasonalityACFqstat 中的 nlag 逻辑 (#4171) @fkiraly

时间序列聚类#

  • [BUG] 修复 TimeSeriesDBSCAN 并移除严格的 BaseClusterer 抽象 (#4227) @fkiraly

维护#

  • [MNT] 修复 .all-contributorsrc 中的合并冲突和格式问题 (#4205) @fkiraly

  • [MNT] 隔离 numba - 注意:不将 numba 设为软依赖 (#3631) @fkiraly

  • [MNT] 隔离剩余的 numba 引用 (#4226) @fkiraly

  • [MNT] 与 Python 3.11 兼容,在 3.7-3.10 版本中以 numba 为核心依赖 (#4000) @fkiraly

文档#

贡献者#

@aiwalter, @alex-hh, @danbartl, @dbcerigo, @fkiraly, @hoesler, @matthewmiddlehurst, @NeuralNut, @pranavvp16, @romanlutz

版本 0.16.0 - 2023-01-30#

亮点#

  • HierarchyEnsembleForecaster 用于面板/分层数据上的级别或节点级别的预测器应用 (#3905) @VyomkeshVyas

  • 新转换器: BKFilter, Baxter-King 滤波器, 从 statsmodels 接口 (#4127) @klam-data, @pyyim`

  • get_fitted_params 现在支持参数嵌套 (#4110) @fkiraly

依赖项更改#

  • statsmodels 现在是一个软依赖项。如果 statsmodels 存在于 Python 环境中,依赖于 statsmodels 的估计器可以像以前一样使用。

核心接口变更#

BaseEstimator#

  • 所有 BaseEstimator 子类(任何具有 fit 方法的估计器)的 get_fitted_params 方法,新增了一个布尔参数 deep,默认为 True。类似于 get_params 方法中同名的参数,这允许控制复合估计器时,是否返回嵌套估计器的拟合参数。

预测#

  • 所有预测器:预测器的公共 cutoff 属性已从索引元素更改为 pd.Index 子类型。要更新之前功能的代码,请将 cutoff 的引用替换为 cutoff[0]

弃用和移除#

依赖项#

  • statsmodelssktime 0.16.0 中已从核心依赖变为软依赖。为了确保依赖于 statsmodels 的估计器的 sktime 代码在未来能正常运行,请确保在环境中显式安装 statsmodels,或者安装包含 statsmodelsall_extras 软依赖集。

数据类型、检查、转换#

  • check_is_scitype: msg_legacy_interface 参数现已移除。未来的行为将按照参数的默认值,即 msg_legacy_interface=False

预测#

  • 所有预测器:预测器的公共 cutoff 属性已从索引元素更改为 pd.Index 子类型。要更新之前功能的代码,请将 cutoff 的引用替换为 cutoff[0]

变换#

  • Catch22: transform_single_feature 方法已从 Catch22 转换器中移除

  • FourierFeatures: 在 0.17.0 版本中,keep_original_columns 参数的默认值将更改为 False

增强功能#

BaseEstimator#

  • [ENH] 管道和其他异质元估计器的 get_fitted_params (#4110) @fkiraly

  • [ENH] get_fitted_paramsdeep 参数 (#4113) @fkiraly

数据类型、检查、转换#

  • [ENH] 显著加快 ``nested_univ``(嵌套数据框)对非嵌套数据的检查 (#4130) @danbartl

  • [ENH] 重构 - 本地化 VectorizedDF 中的广播 (#4132) @fkiraly

  • [ENH] get_time_index 重构以提高分组数据的运行时间 (#4141) @danbartl

预测#

  • [ENH] HierarchyEnsembleForecaster 用于面板/分层数据上的级别或节点级预测器应用 (#3905) @VyomkeshVyas

  • [ENH] 第二组测试参数用于 ARIMA (#4099) @fkiraly

  • [ENH] 重构/简化 sktime.forecasting.model_selection._split.BaseSplitter._split_vectorized (#4108) @mateuja

时间序列注释#

时间序列分类#

  • [ENH] 减少 test_boss.py 中的重复代码,并在 _boss.py 中添加字符串数据类型的检查 (#4100) @erjieyong

时间序列生成器#

变换#

维护#

  • [MNT] 自动更新 CONTRIBUTORS.md (#3807) @achieveordie

  • [MNT] 解决 pd.Series 构造函数 dtype 弃用 / FutureWarning - 第二部分 (#4111) @fkiraly

  • [MNT] 0.16.0 更改/弃用操作 - statsmodels 作为软依赖 (#3516) @fkiraly

  • [MNT] 紧急修复预提交CI失败 - 移除 isort (#4164) @fkiraly

  • [MNT] 在 HierarchyEnsembleForecaster 文档字符串中隔离 statsmodels (#4166) @fkiraly

  • [MNT] 0.16.0 弃用操作 - 将 BaseForecaster.cutoff 更改为 pd.Index (#3678) @fkiraly

  • [MNT] 在 HierarchyEnsembleForecaster 文档字符串中隔离 statsmodels - 意外遗漏的提交 (#4168) @fkiraly

  • [MNT] 0.16.0 弃用 & 变更操作 (#4138) @fkiraly

  • [MNT] 在 pre-commit 配置中将 isort 升级到 5.12.0 (#4167) @snnbotchway

文档#

  • [DOC] 修复了 01_forecasting.ipynb 教程中的目录 (#4120) @fkiraly

  • [DOC] 改进了 AutoETS 的文档字符串 (#4116) @fkiraly

  • [DOC] 将 Paul Yim、Kevin Lam 和 Margaret Gorlin 添加到贡献者列表 (#4122) @Pyyim

  • [DOC] 修复词汇表中用户指南的断链 (#4125) @romanlutz

修复#

BaseObject#

  • [BUG] 修复 BaseObject.__eq__deep_equals 中的错误,如果属性或嵌套结构包含 float (#4109) @fkiraly

预测#

  • [BUG] 修复预测器调优器的 get_fitted_params ,缺少 best_forecaster 等 (#4102) @fkiraly

  • [BUG] 修复 get_fitted_params 在预测器向量化情况下的问题 (#4105) @fkiraly

  • [BUG] 修复 TrendForecasterPolynomialTrendForecasterDatetimeIndexint 强制转换的错误 (#4133) @fkiraly

  • [BUG] 移除 _RecursiveReducer 中不必要的 freq 错误 (#4124) @danbartl

时间序列分类#

  • [BUG] 诊断并修复测试套件中由于 MemoryError 引起的间歇性失败 (#4036) @achieveordie

  • [BUG] 修复 - 回调导致深度学习估计器失败 (#4095) @aaronrmm

变换#

  • [BUG] 修复 get_fitted_params 在转换器向量化情况下的问题 (#4105) @fkiraly

  • [BUG] 修复 OptionalPassthroughX_inner_mtype 标签 (#4115) @fkiraly

贡献者#

@aaronrmm, @achieveordie, @danbartl, @erjieyong, @fkiraly, @JonathanBechtel, @KishManani, @klam-data, @mateuja, @Pyyim, @romanlutz, @snnbotchway, @VyomkeshVyas

版本 0.15.1 - 2023-01-12#

亮点#

  • 大幅提升了面板和层次数据的样板速度,可能会在大面板/层次数据上带来10-50倍的总体速度提升(#3935, #4061@danbartl

  • 时间序列距离和核的dunders,用于算术组合和流水线操作 (#3949) @fkiraly

  • 时间序列聚类的管道和双下划线方法 (#3967) @fkiraly

  • 新估计器:时间序列的DBSCAN聚类;时间序列核的支持向量分类器 (#3950, #4003) @fkiraly, @josuedavalos

  • 在 macOS 上使用 ARM 处理器安装 sktime 的注意事项和故障排除指南 (#4010) @dainelli98

核心接口变更#

BaseObject#

  • python_dependencies 标签现在允许使用完整的 PEP 440 规范字符串来指定包依赖关系

数据类型、检查、转换#

  • 用于时间序列、面板和层次数据的新m类型,可以在安装 dask 时使用: dask_seriesdask_paneldask_hierarchical。这些现在可以在估计器中使用。与 dask 的端到端集成尚未可用,但已在路线图中。

距离, 核函数#

  • 成对变换器现在拥有一个方法 transform_diag,该方法返回距离/核矩阵的对角线。

  • 成对面板变换器可以通过算术运算相互组合,这将导致变换器的相应算术组合,例如,距离之和

  • 成对面板转换器可以使用 * dunder 与简单转换器组合,这将导致一个管道,首先应用简单转换器,然后应用成对转换器

时间序列聚类#

  • 时间序列聚类器现在可以与 make_pipeline* 双下划线一起使用,以构建带有时间序列转换器的线性管道

弃用和移除#

  • check_estimatorrun_tests 中,return_exceptions 参数已被弃用,并将在 0.17.0 中被 ``raise_exceptions``(其逻辑否定)取代。直到 0.17.0,两个参数都将有效,非默认值将覆盖。

增强功能#

数据类型、检查、转换#

  • [ENH] dask mtypes - 第一部分, Series (#3554) @fkiraly

  • [ENH] dask mtypes - 第二部分,PanelHierarchical (#4011) @fkiraly

  • [ENH] 加速基于 pandaspd.PeriodIndex 的 mtype 检查 (#3991) @fkiraly

  • [ENH] 改进基于 pandas 的面板和分层 mtype 检查的性能 (#3935) @danbartl

  • [ENH] 加速层次检查并与面板方法统一 (#4061) @danbartl

距离, 核函数#

  • [ENH] 将 AggrDistFlatDist 泛化以允许任意可调用对象,包括 sklearn 核函数 (#3956) @fkiraly

  • [ENH] 成对变换器的 transform_diag 方法,用于计算距离/核矩阵的对角线 (#3957) @fkiraly

  • [ENH] 将核转换为距离和将距离转换为核的包装器 (#3958) @fkiraly

  • [ENH] 时间序列距离和核的 dunders (#3949) @fkiraly

预测#

  • [ENH] 为 DirectTabularRegressionForecasterDirectTimeSeriesRegressionForecaster 添加全局预测(池化)选项 (#3688) @danbartl

  • [ENH] 预测基准函数 evaluate 接受评分器列表 (#3883) @aiwalter

  • [ENH] 为分层预测添加合约测试 (#3969) @fkiraly

  • [ENH] 扩展 Prophet 以允许 pd.PeriodIndex (#3995) @fkiraly

  • [ENH] 改进 make_reductionscitype 的处理 (#4022) @fkiraly

  • [ENH] hcrystalball 预测器适配器 (#4040) @MichalChromcak

流水线#

时间序列分类#

  • [ENH] 时间序列核的核支持向量分类器 (#3950) @fkiraly

时间序列聚类#

变换#

  • [ENH] 在转换器场景中的“典型长度”常量 (#3892) @fkiraly

  • [ENH] 更改 DateTimeFeatures 转换以处理多索引数据,并添加选项以删除列。(#3996) @KishManani

  • [ENH] 时间箱聚合转换器 (#3997) @fkiraly

  • [ENH] 启用 TimeSince 转换器以原生转换多索引数据框 (#4006) @KishManani

  • [ENH] 通过更改周期差计算使 TimeSince 转换更快 (#4018) @KishManani

  • [ENH] 清理 Detrender,扩展到需要在 fit 中提供预测范围的预测器 (#4053) @fkiraly

测试框架#

  • [ENH] 更新 _check_soft_dependencies 以允许 PEP 440 规范字符串用于版本边界 (#3925) @fkiraly

  • [ENH] 允许在 _check_soft_dependencies 中使用包标识符字符串的元组/列表 (#3955) @fkiraly

  • [ENH] _check_estimator_deps 也允许 BaseObject 的列表或元组 (#4002) @fkiraly

  • [ENH] 扩展 sklearn_scitype 以从组合中正确推断出 scitype (#4021) @fkiraly

  • [ENH] 改进 test_estimator_tags 测试中的错误信息 (#4014) @fkiraly

  • [ENH] 在 check_estimatorrun_tests 中用 raise_exceptions 替换 return_exceptions 参数,并进行弃用 (#4030) @fkiraly

  • [ENH] 增加测试参数集以将每个估计器的测试参数集数量增加到2个或更多 (#4043) @fkiraly

可视化#

维护#

  • [MNT] 对0.15.0意外遗漏的弃用操作进行处理:在 WEASELBOSS 中,移除 type_dict 并更新默认 alphabet_size=2 (#4025) @xxl4tomxu98

  • [MNT] 将 badrmarani 贡献移动到按时间顺序排列 (#4029) @fkiraly

  • [MNT] 跳过 #4033 相关的失败,直到修复 (#4034) @fkiraly

  • [MNT] 由于 main 分支上的未修复失败,跳过 LSTMFCNClassifier 测试 (#4037) @fkiraly

  • [MNT] 对 scipy 的显式低版本限制 (#4019) @fkiraly

  • [MNT] 修复 _check_soft_dependencies 在无类引用的情况下对 PEP 440 规范符的破坏 (#4044) @fkiraly

  • [MNT] 最小依赖集的向下兼容修复 (#4041) @fkiraly

  • [MNT] 解决 pd.Series 构造函数 dtype 弃用 / FutureWarning (#4031) @fkiraly

  • [MNT] 隔离 statsmodels,最近的实例 (#4035) @fkiraly

  • [MNT] 解决 TrendForecasterpandas astype 的弃用 / FutureWarning (#4032) @fkiraly

  • [MNT] 在 WindowSummarizer 中显式使用 min_periods 参数以解决弃用消息 (#4052, #4074) @arnavrneo

文档#

修复#

距离, 核函数#

  • [BUG] 修复 AggrDistFlatDist 中的标签逻辑 (#3971) @fkiraly

预测#

  • [BUG] 修复 StatsForecastAutoARIMA_.predict 在样本内开始索引不正确的问题 (#3942) @tianjiqx

  • [BUG] 修复当外生变量 X 传递的索引多于 fh 时的 statsmodels 估计器 (#3972) @adoherty21

  • [BUG] 修复 ReconcilerForecaster 在未与 Aggregator 一起在管道中使用时的问题 (#3980) @ciaran-g

  • [BUG] 修复 ForecastX 预测中的逻辑错误 (#3987) @aiwalter, @fkiraly

  • [BUG] 修复 Prophet 在非整数预测范围下无法工作的问题 (#3995) @fkiraly

  • [BUG] 修复 BaggingForecaster 中丢失的列索引 (#4001) @fkiraly

  • [BUG] 修复 TrendForecaster 如果 regressor 不是布尔可强制转换的 (#4047) @fkiraly

  • [BUG] 修复 PolynomialTrendForecaster._fitregressor 的突变 (#4057) @fkiraly

  • [BUG] 修复当 sample_frac 参数不为 None 时 ConformalIntervals 的更新 (#4083) @bethrice44

治理#

  • [GOV] 行为准则更新 - 财务和资源分配的决策 (#3674) @fkiraly

时间序列分类#

  • [BUG] 任何 DL 估计器的构造函数传递非默认值到底层 Network 对象 (#4075) @achieveordie

  • [BUG] 修复基于BOSS的分类器将类名截断为单个字符长度的问题 (#4096) @erjieyong

时间序列聚类#

  • [BUG] 修复所有 mtypes 的默认 BaseClusterer._predict_proba (#3985) @fkiraly

时间序列回归#

  • [BUG] 任何 DL 估计器的构造函数传递非默认值到底层 Network 对象 (#4075) @achieveordie

变换#

  • [BUG] 修复 TimeSince 检查 time_indexstart 之间不一致的问题 (#4015) @KishManani

  • [BUG] 修复 Detrender 的多变量和层次行为 (#4053) @fkiraly

测试框架#

  • [BUG] 修复 _check_soft_dependencies 在 PEP 440 规范符没有类引用时中断的问题 (#4044) @fkiraly

可视化#

  • [BUG] plot_cluster_algorithm: 修复错误 predict_series 未定义X 作为 np.ndarray 传递时 (#3933) @hakim89

贡献者#

@Aarthy153, @achieveordie, @adoherty21, @aiwalter, @arnavrneo, @badrmarani, @bethrice44, @ciaran-g, @dainelli98, @danbartl, @darshitsharma, @erjieyong, @fkiraly, @hakim89, @josuedavalos, @KishManani, @MatthewMiddlehurst, @MichalChromcak, @miraep8, @patrickzib, @tianjiqx, @xxl4tomxu98

版本 0.15.0 - 2022-12-22#

亮点#

依赖项更改#

  • sktime 现在兼容 numpy 1.24,绑定已放宽至 <1.25

  • sktime 现在与 sklearn 1.2.0 兼容,绑定已放宽至 <1.3.0

  • pycatch22 不再是 sktime 的软依赖,由于安装问题。如果 pycatch22 依赖在 Python 环境中安装了,基于 pycatch22 的转换器仍然可以正常工作。

  • statsmodels 将在 sktime 0.16.0 中从核心依赖变为软依赖。

核心接口变更#

BaseObject#

现在,任何 sktime 对象的相等性比较都会比较通过 get_params 获得的参数标识,如果对象/估计器是嵌套的,则会递归应用。

弃用和移除#

依赖项#

  • statsmodels 将在 sktime 0.16.0 中从核心依赖变为软依赖。为了确保在弃用期后,依赖于 statsmodels 的估计器的 sktime 代码能够正常运行,请确保在环境中显式安装 statsmodels,或者安装包含 statsmodelsall_extras 软依赖集。

数据类型、检查、转换#

datatypes.check_is_scitype: 第二个返回参数(仅在 return_metadata=True 时返回)将从 list 格式更改为 dict 格式(参见文档字符串)。自 0.14.0 版本起,list 格式已被弃用,并在 0.15.0 版本中被 dict 格式取代。格式由临时附加参数 msg_legacy_interface 决定,该参数的默认值现已更改为 False``(即 ``dict 格式)。msg_legacy_interface 参数以及返回旧版 list 格式的选项将在 0.16.0 版本中移除。

预测#

  • ExpandingWindowSplitter 已移除 start_with_window 参数。从现在开始,应使用 initial_window=0 代替 start_with_window=False

  • 行变换器 SeriesToSeriesRowTransformerSeriesToPrimitivesRowTransformer 已被移除。自 0.11.0 版本起,sktime 原生支持行/实例向量化功能,不再需要通过这些包装器添加。这两个变换器将在 0.15.0 版本中移除。要迁移,只需移除行变换器包装器。在某些较少见、模糊的向量化情况下(例如,使用已向量化的包装函数,如 np.mean),可能需要使用 FunctionTransformer 代替 SeriesToPrimitivesRowTransformer

  • 将公开 cutoff 属性推迟到 0.16.0:预测器的公开 cutoff 属性将从索引元素更改为 pd.Index 子类型。

时间序列分类#

  • 延迟:ProbabilityThresholdEarlyClassifier 的基类将在 0.16.0 版本中更改为 BaseEarlyClassifier。这将改变分类安全决策的制定和返回方式,请参阅 BaseEarlyClassifierTEASER 以了解新的接口。

变换#

  • transformations.series.compose 已被移除,取而代之的是 transformations.compose。前者中的所有估计器都已移至后者。

  • TSFreshFeatureExtractorTSFreshRelevantFeatureExtractor 中,default_fc_parameters 的默认值已从 "efficient" 更改为 "comprehensive"

测试框架#

  • 通用接口契约测试 test_methods_do_not_change_state 已重命名为 test_non_state_changing_method_contract

增强功能#

MLOps 与部署#

BaseObject#

  • [ENH] 为 BaseObject 添加比较蓝图的 equality dunder (#3862) @fkiraly

预测#

  • [ENH] 检查分层数据中的频率,提供设置分层数据频率的工具函数 (#3729) @danbartl

  • [ENH] 预测流水线 get_fitted_params (#3863) @fkiraly

时间序列注释#

  • [ENH] 用于层次凝聚聚类估计的 E-Agglo 估计器 (#3430) @KatieBuc

时间序列分类#

  • [ENH] 将 LSTM-FCN 分类器从 sktime-dl 迁移到 sktime (#3714) @solen0id

  • [ENH] 将 ResNetClassifiersktime-dl 迁移到 sktime (#3881) @nilesh05apr

时间序列回归#

变换#

可视化#

修复#

预测#

  • [BUG] 在 ConformalIntervals 中,修复滑动窗口分割器的残差矩阵更新 (#3914) @bethrice44

  • [BUG] 修复 ExpandingWindowSplitter 中的 start_with_window 弃用问题 (#3953) @fkiraly

  • [BUG] 修复 EnsembleForecaster 错误的广播和属性冲突 (#3964) @fkiraly

时间序列分类#

  • [BUG] 修复未报告的 ClassifierPipelineRegressorPipeline 中的 set_params 错误 (#3857) @fkiraly

  • [BUG] 修复了 KNN 估计器的 kneighbors 方法,使其适用于所有 mtypes (#3927) @fkiraly

时间序列回归#

  • [BUG] 修复未报告的 ClassifierPipelineRegressorPipeline 中的 set_params 错误 (#3857) @fkiraly

  • [BUG] 修复了 KNN 估计器的 kneighbors 方法,使其适用于所有 mtypes (#3927) @fkiraly

变换#

  • [BUG] ClearSky 不会对范围索引和当 X 没有设定频率时引发错误 (#3872) @ciaran-g

  • [BUG] sklearn 1.2.0 兼容性 - 修复传递给 sklearn NearestCentroid 的无效肘变量选择收缩参数 (#3921) @fkiraly

可视化#

  • [BUG] 修复 plotting.plot_correlations 中的软依赖检查 (#3887) @dsanr

文档#

维护#

  • [MNT] 在 pyproject.toml 中添加项目URL (#3864) @lmmentel

  • [MNT] sklearn 1.2.0 兼容性 - 在 KNeighborsTimeSeriesClassifierRegressor 中移除私有 _check_weights 导入 (#3918) @fkiraly

  • [MNT] sklearn 1.2.0 兼容性 - 覆盖 BaseForest 参数更改 (#3919) @fkiraly

  • [MNT] sklearn 1.2.0 兼容性 - 解耦 sklearn.base._pprint (#3923) @fkiraly

  • [MNT] sklearn 1.2.0 兼容性 - 从 RidgeClassifierCV 中移除 normalize=False 参数 (#3924) @fkiraly

  • [MNT] sklearn 1.2.0 兼容性 - ComposableTimeSeriesForest 保留属性修复 (#3926) @fkiraly

  • [MNT] 移除 pycatch22 作为软依赖 (#3917) @fkiraly

  • [MNT] 更新 sklearn 兼容性至 1.2.x,版本限制为 <1.3 (#3922) @fkiraly

  • [MNT] 将 numpy 版本限制提升至 <1.25 并修复兼容性问题 (#3915) @aquemy, @fkiraly

  • [MNT] 0.15.0 弃用操作 (#3952) @fkiraly

  • [MNT] 跳过偶发的 ResNetClassifier 失败 (#3974) @fkiraly

贡献者#

@aiwalter, @aquemy, @badrmarani, @benjaminbluhm, @bethrice44, @chillerobscuro, @ciaran-g, @danbartl, @dsanr, @fkiraly, @GianFree, @KatieBuc, @kcc-lion, @KishManani, @lmmentel, @nilesh05apr, @nshahpazov, @solen0id, @templierw, @TonyBagnall

版本 0.14.1 - 2022-11-30#

亮点#

  • 专为转换器和特征工程设计的笔记本教程 - 请关注pydata全球2022的更多内容! (#1705) @fkiraly

  • 文档 & 添加新数据集加载器的逐步指南 (#3805) @templierw

  • 新转换器:Catch22Wrapperpycatch22 的直接接口 (#3431) @MatthewMiddlehurst

  • 新转换器:TimeSince 用于特征工程,计算自固定日期/索引以来的时间 (#3810) @KishManani

  • 用于调整预测管道中估计器顺序的排列包装器 Permute (#3689) @aiwalter @fkiraly

  • 所有软依赖现在都隔离在测试中,所有测试现在都以最小依赖运行 (#3760) @fkiraly

核心接口变更#

预测#

  • 用于变量子集的外生数据的双下划线方法:my_forecaster[variables] 将创建一个 ForecastingPipeline,该管道将外生数据子集化为 variables

增强功能#

BaseObject#

  • [ENH] 为 _HeterogenousMetaEstimator 添加默认的 get_params / set_params 方法 & [BUG] 修复 FeatureUnionget_params 方法的无限循环问题,由 hoesler (#3708) @fkiraly 提交

预测#

时间序列分类#

时间序列回归#

  • [ENH] 为深度学习分类器和回归器添加一些 get_test_params 值 (#3761) @TonyBagnall

变换#

治理#

修复#

数据加载器#

预测#

时间序列分类#

  • [BUG] keras 导入快速修复 (#3744) @ltsaprounis

  • [BUG] 在 TemporalDictionaryEnsemble 中,设置 Parallel prefer="threads",修复了 #3788 (#3808) @TonyBagnall

  • [BUG] 在 DummyClassifier 中,修复错误设置的 capability:multivariate 标签 (#3858) @fkiraly

变换#

  • [BUG] 修复 FourierFeaturespd.DatetimeIndex 的行为 (#3606) @eenticott-shell

  • [BUG] 修复 FeatureUnionget_params 的无限循环 (#3708) @hoesler @fkiraly

  • [BUG] SupervisedIntervals 错误修复和清理 (#3727) @MatthewMiddlehurst

  • [BUG] 减少 MultiRocket 测试示例的大小以避免测试中偶尔出现的 MemoryError (#3813) @TonyBagnall

  • [BUG] 修复行向量化情况下 transformers 的 Primitives 输出的返回索引 (#3839) @fkiraly

  • [BUG] 在 Reconciler 中,修复了外层索引中只有一个唯一ID的小层次结构的求和矩阵错误 (#3859) @ciaran-g

测试框架#

  • [BUG] 更新 test_deep_estimator_full 以整合 tensorflow / keras 的新版本 (#3820) @achieveordie

文档#

维护#

贡献者#

@achieveordie, @aiwalter, @ciaran-g, @danbartl, @eenticott-shell, @fkiraly, @hadifawaz1999, @haskarb, @hoesler, @jorenham, @KishManani, @lmmentel, @matt-wisdom, @MatthewMiddlehurst, @michaelfeil, @RikStarmans, @templierw, @TonyBagnall, @wolph

版本 0.14.0 - 2022-11-05#

亮点#

  • 通过 save 方法和 base.load 对所有 sktime 对象进行序列化和反序列化(#3336, #3425):user:achieveordie @fkiraly

  • .ts 文件的文档格式规范 (#3380) @achieveordie

  • 新预测器:模块化/可配置的 Theta 预测器 (#1300) @GuzalBulatova

  • 新的概率预测加法器用于预测者:平方残差 (#3378) @kcc-lion

  • 预测 evaluate 现在支持层次和面板数据,并通过 daskjoblib 实现并行化(#3511, #3542):user:topher-lo @fkiraly

  • get_fitted_params 现在通过默认值支持所有估计器 (#3645) @fkiraly

核心接口变更#

BaseObject & BaseEstimator#

  • 所有对象和估计器(BaseObject 的后代)现在都拥有一个用于序列化到内存或文件的 save 方法。序列化对象可以通过 base.load 反序列化。saveload 的接口契约现在由标准测试套件(例如,check_estimator)进行测试。

  • 所有可拟合的对象(“估计器”,BaseEstimator 的后代)现在都有一个有效的 get_fitted_params 默认实现。get_fitted_params 的接口契约现在由标准测试套件(例如,check_estimator)进行测试。

  • get_fitted_params 的扩展合约已经更改。对于 sktime 估计器的新实现,开发者应实现 _get_fitted_params 而不是直接实现 get_fitted_params,类似于 fit_fit。相应的扩展模板已更新。遵循旧扩展合约的估计器目前仍然兼容,并且至少在 0.15.0 版本之前将保持兼容。

弃用和移除#

预测#

  • ExpandingWindowSplitter 参数 start_with_window 已被弃用,并将在 0.15.0 版本中移除。为了继续使用 start_with_window=True 的功能,请改为使用 start_with_window=0。其他 start_with_window 的值将表现为 start_with_window=False 的情况。

  • 孤立的 pd.timedelta 元素不应再传递给分割器和 ForecastingHorizon,因为 pandas 已弃用 pd.deltafreq。在 freq 未传递且无法推断的极端情况下,将引发异常。

  • 将公开的 cutoff 属性延迟到 0.15.0:预测器的公开 cutoff 属性将从索引元素更改为 pd.Index 子类型。

时间序列分类#

  • ProbabilityThresholdEarlyClassifier 的基类将在 0.15.0 版本中更改为 BaseEarlyClassifier。这将改变分类安全决策的制定和返回方式,请参阅 BaseEarlyClassifierTEASER 以了解新的接口。

变换#

  • TSFreshFeatureExtractorTSFreshRelevantFeatureExtractor 中,default_fc_parameters 的默认值将从 "efficient" 变为 "comprehensive" 在 0.15.0 版本中。

测试框架#

  • 测试名称 test_methods_do_not_change_state 将在 0.15.0 版本中更改为 test_non_state_changing_method_contract。如果在 check_estimator 中作为参数使用了旧名称,为了安全过渡,请在测试/固定装置的排除或包含中同时使用新名称和旧名称(以列表形式)。

增强功能#

BaseObject#

数据加载器#

数据类型、检查、转换#

  • [ENH] 多索引 pandas.DataFramedask 转换适配器 (#3513) @fkiraly

  • [ENH] 将 mtype 转换扩展工具重构到一个位置 (#3514) @fkiraly

预测#

  • [ENH] 模块化/可配置的 Theta 预测器 (#1300) @GuzalBulatova

  • [ENH] 全局/局部递归减少原型 (#3333) @fkiraly

  • [ENH] 平方残差估计器 (#3378) @kcc-lion

  • [ENH] 在 make_reduction 中扩展递归策略以允许对面板数据进行全局池化 (#3451) @danbartl

  • [EHN] 使用 {joblib, dask} 并行化 evaluate (#3511) @topher-lo

  • [ENH] 在 _StatsModelsAdapter._update 中使用 statsmodelsappend (#3527) @chillerobscuro

  • [ENH] 扩展 evaluate 到层次结构和面板数据 (#3542) @fkiraly

  • [ENH] ColumnEnsembleForecasternumpy 整数支持 (#3557) @fkiraly

  • [中] 按级别预测包装器 (#3585) @fkiraly

  • [ENH] 为 EnsembleForecaster 的多变量测试用例 (#3637) @fkiraly

  • [ENH] 扩展 ColumnEnsembleForecaster 以允许应用多元预测器 (#3504) @fkiraly

  • [ENH] 添加带有字符串列的预测器测试用例 (#3506) @fkiraly

  • [ENH] 扩展预测网格/随机搜索到层次和面板数据 (#3548) @fkiraly

  • [ENH] 使 EnsembleForecaster 支持多元数据 (#3623) @AnH0ang

  • [ENH] 修复 ExpandingWindowSplitterinitial_window=0 时的问题,并弃用 "start_with_window" (#3690) @chillerobscuro

参数估计#

时间序列注释#

时间序列分类#

  • [ENH] 用于分类的 TapNet DL 模型 (#3386) @achieveordie

  • [ENH] 重构/整合 _contrib - diagram_code (#3519) @fkiraly

  • [ENH] 为 TapNet 估计器快速测试参数及文档字符串/接口清理 (#3544) @achieveordie

  • [ENH] 为 CNNRegressor 添加更多相关参数以提高用户灵活性 (#3561) @achieveordie

  • [ENH] 允许 KNeighborsTimeSeriesClassifier 处理不等长序列之间的距离 (#3654) @fkiraly

时间序列回归#

  • [ENH] 从 sktime-dl 中用于回归的 TapNet DL 模型 (#3481) @achieveordie

  • [ENH] 允许 KNeighborsTimeSeriesRegressor 处理不等长序列之间的距离(#3654) @fkiraly

变换#

  • [ENH] 测试 TruncationTransformerpd-multiindex 中保留索引和列名 (#3535) @fkiraly

  • [ENH] 在 Reconciler 中用非原地排序替换原地排序 (#3553) @fkiraly

  • [ENH] SupervisedIntervals 转换器和清理后的 numba 函数 (#3622) @MatthewMiddlehurst

  • [ENH] TSFreshFeatureExtractor 清理、测试和文档字符串 (#3636) @kcc-lion

  • [ENH] 并行适应 Clearsky 变压器的选项 (#3652) @ciaran-g

测试框架#

  • [ENH] 通过估计器 (#3590) @fkiralyget_fitted_params 接口合约的测试

治理#

文档#

维护#

  • [MNT] 0.14.0 弃用操作 (#3677) @fkiraly

  • [MNT] 将 pre-commit 操作从 2 升级到 3 (#3576) @lmmentel

  • [MNT] 将 setup-python 操作从 2 升级到 4 (#3577) @lmmentel

  • [MNT] 从 _HeterogeneousMetaEstimator 中移除 ABCMeta 继承 (#3569) @fkiraly

  • [MNT] 放宽 scipy 的限制至 <2.0.0 (#3587) @fkiraly

  • [MNT] 用 sphinx-design 替换已弃用的 sphinx-panels (#3575) @MatthewMiddlehurst

  • [MNT] 将checkout操作从2升级到3 (#3578) @lmmentel

  • [MNT] 暂时从测试中移除随机失败的tapnet (#3624) @fkiraly

  • [MNT] 在测试中用reducer替换``ARIMA``以移除测试中的软依赖 (#3552) @fkiraly

  • [MNT] 在作者字段中用GitHub ID替换作者姓名,进行代码风格检查 (#3628) @fkiraly

  • [ENH] 隔离 statsmodels 导入 (#3445) @fkiraly

  • [MNT] 隔离 statsmodels 导入,第二部分 (#3515) @fkiraly

  • [MNT] 隔离 statsmodels,第 3 部分:替换测试参数中的依赖估计器 (#3632) @fkiraly

  • [MNT] 在作者字段中用GitHub ID替换作者姓名,进行代码风格检查 (#3628) @fkiraly

重构#

  • [ENH] 重构剩余的 get_fitted_params 覆盖为 _get_fitted_params (#3591) @fkiraly

  • [BUG] 修复 get_fitted_params 对于不符合规范的估计器 (#3599) @fkiraly

修复#

BaseObject#

  • [BUG] 修复不可拟合组件的 get_fitted_params 默认值 (#3598) @fkiraly

数据加载器#

  • [BUG] 修复当 extract_path 不为 None 时从 timeseriesclassification.com 加载数据的错误 (#3021) @TonyBagnall

  • [BUG] 修复在ts格式文件中写入数据集的错误 (#3532) @TonyBagnall

数据类型、检查、转换#

  • [BUG] 修复 pd.concat 在分层重采样中导致 check_is_scitype 错误的 (#3546) @TonyBagnall

  • [BUG] 修复 check_estimator 排除参数对非基础类型测试无效的问题 (#3566) @fkiraly

  • [BUG] 修复输入检查器中的错误断言 (#3556) @fkiraly

  • [BUG] 从 is_int 检查中排除 np.timedelta64 (#3627) @khrapovs

  • [BUG] 修复 numpy 格式的 get_cutoff (#3442) @fkiraly

预测#

  • [BUG] 修复 ConformalIntervals 更新未更新 residuals_matrix (#3460) @bethrice44

  • [BUG] 修复 predict_residuals 的副作用 (#3475) @aiwalter

  • [BUG] 修复 NaiveForecaster.predict_var 中非空 window_length 的残差公式 (#3495) @topher-lo

  • [BUG] 修复 ColumnEnsembleForecaster 对于 str 索引的问题 (#3504) @canbooo @fkiraly

  • [BUG] 修复NaN值的管道标签 (#3549) @aiwalter

  • [BUG] 修复 EnsembleForecaster 中的条件 requires-fh-in-fit 标签 (#3642) @fkiraly

参数估计#

  • [BUG] 修复 PluginParamsForecaster 文档字符串并添加字典使用示例 (#3643) @fkiraly

时间序列注释#

时间序列聚类#

时间序列分类#

时间序列距离和核#

时间序列回归#

  • [BUG] 修复 KNeighborsTimeSeriesRegressor 标签处理依赖于距离组件 (#3654) @fkiraly

变换#

  • [BUG] RandomShapeletTransform: 将最大形状数量限制为类别数量 (#3564) @TonyBagnall

  • [BUG] ClearSky 转换器:修复转换后缺失值的问题 (#3579) @ciaran-g

贡献者#

@achieveordie, @aiwalter, @AnH0ang, @arampuria19, @bethrice44, @canbooo, @chillerobscuro, @chrisholder, @ciaran-g, @danbartl, @fkiraly, @GuzalBulatova, @kcc-lion, @khrapovs, @lmmentel, @MatthewMiddlehurst, @miraep8, @shagn, @TonyBagnall, @topher-lo

版本 0.13.4 - 2022-09-27#

维护版本 - 将 sktime 仓库从 alan-turing-institute 组织迁移到 sktime 组织 (#2926)

分叉和链接应被重定向,治理保持不变。

如果遇到任何问题,请通过 问题跟踪器讨论论坛 联系我们。

版本 0.13.3 - 2022-09-25#

亮点#

依赖项更改#

  • sktime 现在与 pmdarima 2.0.0 兼容,绑定已放宽至 <3.0.0

  • sktime 现在兼容 pandas 1.5.0,绑定放宽至 <1.6.0

弃用和移除#

数据类型、检查、转换#

datatypes.check_is_scitype: 第二个返回参数(仅在 return_metadata=True 时返回)将从 list 格式更改为 dict 格式(参见文档字符串)。list 格式将在 0.14.0 版本中被弃用,并在 0.15.0 版本中被 dict 格式取代。格式将由临时附加参数 msg_legacy_interface 决定,该参数将在 0.14.0 版本中引入,默认值在 0.15.0 版本中更改为 False,并在 0.16.0 版本中移除。

增强功能#

数据类型、检查、转换#

  • [ENH] 支持 xarray DataArray 和 mtypes (#3255) @benHeid

  • [ENH] 避免在 scitype 工具中进行元数据计算 (#3357) @fkiraly

  • [ENH] check_is_scitype 错误消息返回类型更改为 dict (#3466) @fkiraly

  • [ENH] mtypes 的软依赖处理 (#3408) @fkiraly

  • [ENH] 优化 from_3d_numpy_to_nested 转换函数 (#3339) @paulbauriegel

  • [ENH] 简化 convert_to_scitype 逻辑,修复 scitype 转换器模块中的导出和文档字符串遗漏 (#3358) @fkiraly

数据加载器#

  • [ENH] 测试 load_basic_motions 的正确返回类型 (#3458) @fkiraly

预测#

  • [ENH] pmdarima 2.0.0 兼容性修复 - 返回中使用绝对索引 (#3302) @fkiraly

  • [ENH] DirectReductionForecaster 的全局/局部设置 (#3327) @fkiraly

  • [ENH] 在参数估计器和 AutoARIMA 中一致处理 sp (#3367) @fkiraly

  • [ENH] 为预测器和委托估计器启用默认的 get_fitted_params (#3381) @fkiraly

  • [ENH] 在预测器多路复用器中防止向量化 (#3391) @fkiraly

  • [ENH] 在更新包装器和 ForecastX 中防止向量化 (#3393) @fkiraly

  • [ENH] 在预测器中添加了缺失的数据输入检查 (#3405) @fkiraly

  • [ENH] 为 ConformalIntervals 中的 residuals_matrix 计算添加并行 fitpredict_residuals (#3414) @bethrice44

  • [ENH] 为朴素预测器添加预测方差和分位数 (#3435) @topher-lo

时间序列注释#

时间序列分类#

时间序列距离和核#

变换#

测试框架#

  • [ENH] 使用与 fit 数据不同的 transform 数据测试转换器 (#3341) @fkiraly

  • [ENH] 减少测试框架中的传统逻辑并重构为场景 (#3342) @fkiraly

  • [ENH] 第二个参数为选定的估计器设置 (#3428) @fkiraly

修复#

数据类型、检查、转换#

  • [BUG] 确保 nested_univ 元数据推断通过现有的标量列 (#3463) @fkiraly

预测#

时间序列注释#

时间序列分类#

  • [BUG] 修复了 MLPNetwork 中缺少 super.__init__ 调用的问题 (#3350) @fkiraly

变换#

维护#

文档#

  • [DOC] 更新扩展模板 - 标签解释,软依赖 (#3334) @fkiraly

  • [DOC] dists_kernels 模块的 API 参考 (#3312) @fkiraly

  • [DOC] 修复笔记本/示例符号链接 (#3379) @khrapovs

  • [DOC] 关于使虚拟环境工作的几点建议 (#3331) @miraep8

  • [DOC] 将 SlidingWindowSplitterstart_with_window 的错误文档字符串默认值更改为实际默认值 (#3340) @bugslayer-332

  • [DOC] 修正 examples/AA_datatypes_and_datasets.ipynb 中的小拼写错误 (#3349) @achieveordie

  • [DOC] 更新扩展模板 - 解释变压器标签 (#3377) @fkiraly

  • [DOC] 修正和澄清 BaseSplitter 文档字符串 (#3440) @fkiraly

  • [DOC] 修复 TransformerPipeline 的文档字符串 (#3401) @aiwalter

  • [DOC] 在“提问地点”下的过期slack链接 (#3449) @topher-lo

  • [DOC] 如何跳过新软依赖的测试说明。(#3416) @miraep8

  • [DOC] 用链接替换旧的估计器概述 (#3407) @fkiraly

  • [DOC] 更新核心开发者列表 (#3415) @aiwalter

  • [DOC] 在“提问地点”下的过期slack链接 (#3449) @topher-lo

  • [文档] 为 plot_series 添加了示例,并修复了 plot_lags 的示例 (#3400) @shagn

贡献者#

@achieveordie, @aiwalter, @AurumnPegasus, @benHeid, @bethrice44, @bugslayer-332, @fkiraly, @ilkersigirci, @KatieBuc, @khrapovs, @lmmentel, @ltsaprounis, @miraep8, @patrickzib, @paulbauriegel, @shagn, @stepinski, @topher-lo

版本 0.13.2 - 2022-08-23#

亮点#

  • 新预测器:statsmodels ARDL 接口 (#3209) @kcc-lion

  • 新转换器:通道/变量选择(Dhariyal 等 2021)用于多变量时间序列分类(#3248@haskarb

  • 新 dunders: trafo ** forecaster = 应用于外生数据; -trafo = OptionalPassthrough; ~trafo = 反转 (#3243, #3273, #3274) @fkiraly

  • 成对变换(时间序列距离、核)现在已完全集成到 check_estimator 工具中(#3254@fkiraly

依赖项更改#

  • pmdarima 的版本限制为 <2.0.0 ,直到兼容性问题解决为止

核心接口变更#

预测#

  • 用于将转换器管道化到外生数据的 dunder 方法:my_trafo ** my_forecaster 将创建一个 ForecastingPipeline 注意:** 优先于 ``*``(应用于内生数据)

  • ignores-exogeneous-X 标签的默认值设置为更安全的值 False。这不会影响 sktime 预测器,但可能会影响 sktime 兼容的预测器,在这些预测器中,如果标签的显式设置被省略,那么 X 现在会被传递给所有内部函数 _fitpredict 等。这种情况只有在以下条件下才会被破坏:(a) 标签被错误地省略,(b) 内部函数被破坏,即只有在错误 (a) 掩盖了错误 (b) 的情况下才会引发异常。

时间序列距离和核#

  • 用于将普通转换器与成对转换器进行管道连接的 dunder 方法:my_trafo ** distance 将创建一个 PwTrafoPanelPipeline,等同于“首先对两个输入应用 my_trafo.fit_transform,然后应用 distance

变换#

  • 应用 OptionalPassthrough 的 dunder 方法:-my_trafo 等同于 OptionalPassthrough(my_trafo)

  • 用于反转变换器的dunder方法:~my_trafotransforminverse_transform 被交换了

弃用和移除#

变换#

  • 已弃用: transformations.series.compose 已被 transformations.compose 取代。前者中的所有估计器已移至后者,并且从 0.15.0 版本起将不再在 transformations.series.compose 中访问。

  • 已弃用:行转换器 SeriesToSeriesRowTransformerSeriesToPrimitivesRowTransformer 已被弃用。从 0.11.0 版本开始,sktime 原生支持行/实例向量化功能,不再需要通过这些包装器添加。这两个转换器将在 0.15.0 版本中移除。要迁移,只需移除行转换器包装器。在某些较少见、模糊的向量化情况下(例如,使用已向量化的包装函数,如 np.mean),可能需要使用 FunctionTransformer 代替 SeriesToPrimitivesRowTransformer

增强功能#

BaseObject#

  • [ENH] 增强 BaseObject.set_tags 以应对遗漏的 __init__ (#3226) @fkiraly

数据类型、检查、转换#

  • [ENH] 在转换 nested_univpd-multiindex 时处理非嵌套列 (#3250) @fkiraly

预测#

  • [ENH] statsmodels ARDL 接口 (#3209) @kcc-lion

  • [ENH] ** 用于在预测器中对外生数据应用转换器的双下划线 (#3243) @fkiraly

  • [ENH] 在预测器中测试带有名称属性的 pd.Series (#3297, #3323) @fkiraly

  • [ENH] 将默认 ignores-exogeneous-X 设置为 False (#3260) @fkiraly

  • [ENH] 使用 Detrender 的预测管道测试用例 (#3270) @fkiraly

  • [ENH] 使用层次数据测试层次预测器 (#3321) @fkiraly

时间序列注释#

  • [ENH] 注释数据生成器 - 正态多元均值漂移 (#3114) @KatieBuc

时间序列距离和核#

变换#

  • [ENH] 通道选择 (Dhariyal et al 2021) 用于多变量时间序列分类 (#3248) @haskarb

  • [ENH] 通道选择 (Dhariyal et al 2021) - 与任意距离的兼容性 (#3256) @fkiraly

  • [ENH] 在 Lag 中,使单滞后和多滞后情况下的列命名一致 (#3261) @KishManani

  • [ENH] 弃用 transformations.series.compose 以支持 transformations.compose (#3271) @fkiraly

  • [ENH] 转换器包装和双下划线的反转 (#3274) @fkiraly

  • [ENH] 对 OptionalPassthrough 的正确性测试 (#3276) @aiwalter

  • [ENH] 通过 neg dunder 实现的 OptionalPassthrough 包装 (#3273) @fkiraly

  • [ENH] 将 OptionalPassthrough 重构为委托者 (#3272) @fkiraly

测试框架#

  • [ENH] 在对象和估计器中测试 super.__init__ 调用 (#3309) @fkiraly

治理#

  • [GOV] sktime 作为一个“库”,而不是一个“精选集合” (#3155) @fkiraly

修复#

数据集和数据加载器#

数据类型、检查、转换#

预测#

  • [BUG] 在转换后 ForecastingGridSearchCV 中延迟修剪 (#3132) @miraep8

  • [BUG] 修复 DirectReductionForecaster 中的标签 (#3257) @KishManani

  • [BUG] 确保预测器不添加 pd.Series.name 属性 (#3290) @fkiraly

  • [BUG] 如果 auto=Trueadditive_only=True,在 AutoETS.fit 中移除多余的 UserWarning #3311 (#3317) @chillerobscuro

  • [BUG] 修复 ColumnEnsembleForecaster 以处理层次输入 (#3324) @fkiraly

  • [BUG] 修复默认预测器 _update 清空转换器存储的错误 (#3325) @fkiraly

  • [BUG] (临时修复) 从递归减少预测器中移除分层数据类型 (#3326) @fkiraly

参数估计#

  • [BUG] 修复了 ParamFitterPipeline 的 concat dunder (#3262) @fkiraly

时间序列注释#

时间序列分类#

变换#

维护#

  • [MNT] 弃用行转换器 (#2370) @fkiraly

  • [MNT] 为 CNNClassifier 添加软依赖标签 (#3252) @fkiraly

  • [MNT] 绑定 pmdarima < 2.0.0 (#3301) @fkiraly

  • [MNT] 修复合并事故,恢复删除的 DtwDist 导出 (#3304) @fkiraly

  • [MNT] 将 transformations.series.compose 中的转换器移动到 transformations.compose (#3310) @fkiraly

贡献者#

@achieveordie, @aiwalter, @chillerobscuro, @chrisholder, @fkiraly, @haskarb, @KatieBuc, @kcc-lion, @KishManani, @miraep8, @patrickzib, @paulbauriegel

版本 0.13.1 - 2022-08-11#

亮点#

依赖项更改#

  • 新的软件依赖 mne,来自 Filter 转换器

  • 新开发者依赖 pytest-randomly

核心接口变更#

所有估计器#

  • get_fitted_params 现在有一个私有的实现接口 _get_fitted_params,类似于 fit / _fit 等。

  • 未记录的 _required_parameters 参数不再需要(存在于某些估计器中)

预测#

  • 预测指标类现在完全支持通过 multilevel 参数进行分层数据和层次平均。

参数估计#

  • 新的估计器类型 - 参数估计器,基类 BaseParamFitter

弃用和移除#

时间序列分类#

  • ProbabilityThresholdEarlyClassifier 已被弃用,并将在 0.15.0 版本中被同名早期分类器取代。

    接口将不会向下兼容。

增强功能#

BaseObject#

  • [ENH] 从 BaseTask 中移除自定义 __repr__ ,继承自 BaseObject (#3049) @fkiraly

  • [ENH] get_fitted_params 的默认实现和嵌套拟合参数接口 (#3077) @fkiraly

  • [ENH] 从 BaseObject 中移除 _required_parameters 接口点 (#3152) @fkiraly

数据集和数据加载器#

数据类型、检查、转换#

  • [ENH] 为 mtype 检查添加唯一列索引检查 (#2971) @fkiraly

  • [ENH] 从 pd-multiindexgluonts ListDataset 的适配器 (#2976) @TNTran92

  • [ENH] 在 nested_univ mtype 中添加非重复索引检查 (#3029) @fkiraly

  • [BUG] 移除 datatypes._utilities.get_cutoff 中的冗余计算 (#3070) @shchur

预测#

参数估计#

  • [ENH] 参数估计器和“插入参数”合成器 (#3041) @fkiraly

时间序列注释#

时间序列分类#

时间序列回归#

变换#

  • [ENH] 重构了 ColumnConcatenator,使用 pd-multiindex 内部类型重写 (#2379) @fkiraly

  • [ENH] __getitem__[ ] 用于转换器的双下划线方法,列子集化 (#2907) @fkiraly

  • [ENH] YtoX 转换器用于将内生数据转换为外生数据 (#2922) @fkiraly

  • [BUG] 修复 RandomIntervalFeatureExtractor 以拥有唯一的列名 (#3001) @fkiraly

  • [BUG] 修复 Differencer.inverse_transform 无法访问数据索引 freq 的问题 (#3007) @fkiraly

  • [ENH] 重构 _deseasonalize 模块中的转换器 (#3040) @fkiraly

  • [ENH] sktime-neuro 中的 Filter 转换器 (#3067) @fkiraly

  • [ENH] 增加 FunctionTransformerTabularToSeriesAdaptor 的无状态范围 (#3087) @fkiraly

  • [ENH] ClearSky 用于太阳辐照度时间序列的转换器 (#3130) @ciaran-g

  • [ENH] 将简单的 ShapeletTransform_contrib 移动到 transformations 模块 (#3136) @fkiraly

测试框架#

  • [ENH] 测试转换器输出列是否唯一 (#2969) @fkiraly

  • [ENH] 测试估计器 fit 不带软依赖 (#3039) @fkiraly

  • [ENH] 测试所有 BaseObject 后代以确保与 sklearn 的兼容性 (#3122) @fkiraly

  • [ENH] functools 包装器以保留由 make_mock_estimator 包装的估计器中的文档字符串 (#3228) @ltsaprounis

  • [ENH] 将 FittedParamExtractor 的测试参数重构为 get_test_params (#2995) @mariamjabara

  • [ENH] 重构了 ColumnTransformer 的测试参数 (#3008) @kcc-lion

  • [ENH] 将 _config 中剩余的所有测试参数重构为 get_test_params (#3123) @fkiraly

  • [ENH] 测试矩阵的分区设计,将测试时间减少到三分之一 (#3137) @fkiraly

文档#

修复#

数据类型、检查、转换#

  • [BUG] 修复 from_multi_index_to_3d_numpy 中的多余参数 (#3239) @fkiraly

预测#

  • [BUG] 修复多变量数据的预测分位数默认值 (#3106) @fkiraly

  • [BUG] ExpandingWindowSplitter 构造函数 sklearn 兼容性修复 (#3121) @fkiraly

  • [BUG] 修复“预测区间”加法器的覆盖/默认问题 (#3129) @bethrice44

  • [BUG] 修复 check_equal_time_index 以支持 numpy 数组作为输入 (#3160, #3167) @benHeid

  • [BUG] 修复 AutoEnsembleForecaster 逆方差方法 (#3208) @AnH0ang

  • [BUG] 修复度量基类和自定义性能度量的错误 (#3225) @fkiraly

时间序列分类#

  • [BUG] 修复 HIVE-COTE 间歇性测试失败 (#3094) @MatthewMiddlehurst

  • [BUG] 修复了 BaseClassifier._predict_proba 默认值和 SklearnClassifierPipelinepredict_proba 未实现时的情况 (#3104) @fkiraly

  • [BUG] 允许在 sklearn 分类器(树/森林)中使用单类情况 (#3204) @fkiraly

  • [BUG] 跳过对收缩分类器中估计器数量的检查 (#3207) @fkiraly

变换#

  • [BUG] 修复了转换器管道中的逆变换逻辑 (#3085) @fkiraly

  • [BUG] 修复了 DateTimeFeatures 输出类型格式不一致的问题 (#3223) @danbartl

  • [BUG] 修复了 Datetimefeaturesday_of_year 选项无法工作的问题 (#3223) @danbartl

测试框架#

  • [BUG] 修复 _check_soft_dependenciesobject 的遮蔽问题 (#3116) @fkiraly

  • [BUG] 防止 all_estimators 中的循环导入 (#3198) @fkiraly

维护#

贡献者#

@achieveordie, @aiwalter, @AnH0ang, @Arvind644, @AurumnPegasus, @benHeid, @bethrice44, @C-mmon, @ciaran-g, @danbartl, @eenticott-shell, @fkiraly, @jelc53, @kcc-lion, @khrapovs, @lbventura, @lmmentel, @Lovkush-A, @ltsaprounis, @mariamjabara, @MatthewMiddlehurst, @miraep8, @shchur, @soma2000-lang, @sveameyer13, @TNTran92, @tobiasweede, @ZiyaoWei

版本 0.13.0 - 2022-07-14#

亮点#

依赖项更改#

  • Python 需求和软依赖现在尽可能地隔离到估计器类中,见下文。

  • sktime 现在支持 numpy 1.22

  • prophet 软依赖现在必须高于 1.1 版本,在此版本中它不再依赖于 pystan

  • pystan 的间接软依赖已被移除。

  • hcrystalball 的软依赖已被移除。

核心接口变更#

数据类型、检查、转换#

  • VectorizedDF 现在支持对列进行矢量化

依赖处理#

  • Python 要求和软依赖现在通过 python_versionpython_dependencies 标签隔离到估计器类中。这允许将算法与其依赖要求一起打包。

预测#

  • 所有预测器现在都可以进行多元预测。单变量预测器通过迭代/向量化变量来实现这一点。在这种情况下,变量的单个预测器存储在 forecasters_ 属性中。

  • ForecastingHorizon 现在在 freq 属性中存储频率信息。它可以通过新的 freq 参数在构造函数中设置,并且在传递数据时会推断/更新。

变换#

  • 所有转换器现在都可以转换多元时间序列。单变量转换器通过迭代/向量化变量来实现这一点。在这种情况下,变量的单个转换器存储在 transformers_ 属性中。

弃用和移除#

预测#

  • 已弃用:使用带有 freqpd.Timestamp 的 ForecastingHorizon 方法已被弃用,并将在 0.14.0 版本中引发异常。使用 pd.Timestamp 仍然是可能的。这是由于 pandaspd.Timestampfreq 属性已被弃用。

  • 从 0.14.0 版本开始,预测器的公共 cutoff 属性将从索引元素更改为 pd.Index 子类型。

  • 移除:类 HCrystalBallForecaster ,参见 #2677

性能指标#

  • 从所有性能指标构造函数中移除了 funcname 参数。

  • changed: greater_is_better 属性已被 greater_is_better 标签替换。

时间序列分类#

  • BaseClassifier 后代中移除了 "capability:early_prediction" 标签。早期的分类器现在有自己的估计器类型。为了搜索早期分类器,请使用 early-classifier 科学类型字符串,而不是标签。

变换#

  • 移除:Differencer - drop_na 参数 已被移除。na_handling 的默认值已更改为 fill_zero

  • 移除:WindowSummarizer 中的 lag_config 参数,请改用 lag_feature 参数。

增强功能#

数据类型、检查、转换#

  • [ENH] VectorizedDF 支持跨列/变量的向量化 (#2864) @fkiraly

  • [ENH] 在 get_cutoff 中保留 index.freq (#2908) @fkiraly

  • [ENH] 扩展 get_cutoff 以支持 pd.Index 输入 (#2939) @fkiraly

预测#

变换#

  • [ENH] 扩展 ColumnSelect 以适用于标量 columns 参数 (#2906) @fkiraly

  • [ENH] 转换器向量化:如果未向量化的输出是多变量的,确保列名唯一 (#2958) @fkiraly

修复#

数据加载器#

  • [BUG] load_UCR_UEA_dataset 检查文件的存在性,而不仅仅是目录 (#2899) @TonyBagnall

数据类型、检查、转换#

  • [BUG] 修复 get_time_index 对于 1D 和 2D numpy 格式的支持 (#2852) @fkiraly

  • [BUG] 修复嵌套数据框的转换问题 (#2375) @fkiraly

  • [BUG] 保留 pd-multiindex 索引名称 (#2999) @fkiraly

预测#

  • [BUG] 放宽索引检查相关标签并修复不正确的管道标签推断 (#2842) @fkiraly

  • [BUG] 在 BaseGridSearch 中移除非标准的 score 函数 (#2752) @fkiraly

  • [BUG] 修复 Prophet 以拥有正确的输出列名 (#2973) @fkiraly

  • [BUG] 修复网格/随机搜索的委托问题 (#2945) @fkiraly

  • [BUG] 预测器向量化 update 和概率预测,修复 (#2960) @fkiraly

  • [BUG] 修复单变量估计器的管道矢量化 (#2959) @fkiraly

时间序列分类#

变换#

  • [BUG] 确保 IntervalSegmenter 唯一列输出 (#2970) @fkiraly

  • [BUG] 修复 bootstrap 转换器中的 NaN 列 (#2974) @fkiraly

  • [BUG] 确保 TruncationTransformer.transform 的输出现在与输入具有相同的列 (#2999) @fkiraly

重构#

  • [ENH] NaiveForecaster: 移除手动向量化层,改为使用基类向量化 (#2874) @fkiraly

  • [ENH] 从 VectorizedDF 中移除旧的 multiindex-df 索引约定 hack (#2863) @fkiraly

  • [ENH] 删除重复的分类器测试 (#2912) @fkiraly

维护#

文档#

  • [DOC] 更新了多变量向量化的预测教程 (#3000) @fkiraly

  • [DOC] all_estimators 作者变量 (#2861) @fkiraly

  • [DOC] 在 naive.py 中添加了缺失的信用信息 (#2876) @fkiraly

  • [DOC] 将 _is_vectorized 添加到预测器扩展模板排除列表中 (#2878) @fkiraly

  • [DOC] 将 AyushmaanSeth 名称替换为 GitHub ID (#2911) @fkiraly

  • [DOC] 添加了展示如何使用 metricsevaluate 的示例代码 (#2850) @TNTran92

  • [DOC] 更新发布流程为当前事实上的流程 (#2927) @fkiraly

贡献者#

@a-pasos-ruiz, @aiwalter, @AurumnPegasus, @ciaran-g, @fkiraly, @haskarb, @jlopezpena, @KatieBuc, @khrapovs, @lbventura, @lmmentel, @ltsaprounis, @MatthewMiddlehurst, @ris-bali, @TNTran92, @tobiasweede, @TonyBagnall

版本 0.12.1 - 2022-06-28#

亮点#

  • 用于使用基础模型残差协调预测的新 ReconcilerForecaster 估计器 (#2830) @ciaran-g

  • | 用于多路复用和自动机器学习的双下划线,是 MultiplexTransformer 的简写 (#2810) @miraep8

  • 滞后变压器 Lag 用于轻松生成滞后 (#2783) @fkiraly

依赖项更改#

  • 由于 cmdstanpy 不兼容,上限为 prophet < 1.1

核心接口变更#

BaseObject#

  • set_params 现在与使用相应参数调用 __init__ 的行为完全相同,包括动态设置标签。这是为了完全符合 sklearn 接口的假设,即这种情况是存在的。(#2835) @fkiraly

增强功能#

BaseObject#

  • [ENH] set_params 调用 reset,以符合 sklearn 参数接口假设 (#2835) @fkiraly

预测#

  • [ENH] 使 get_cutoff 兼容所有时间序列格式,修复 VectorizedDF 输入的错误 (#2870) @fkiraly

  • [ENH] 提供更多信息性的错误消息以诊断预测器的错误输入格式 (#2824) @fkiraly

变换#

修复#

预测#

  • [BUG] 修复了在向量化模式下预测器未更新 cutoff 的问题 (#2870) @fkiraly

  • [BUG] 修复概率区间包装器 NaiveVarianceConformalInterval 的类型转换错误 (#2815) @bethrice44

  • [BUG] 修复当传递 numpy.int 作为滞后整数时 Lag 转换器的问题 (#2832) @fkiraly

  • [ENH] 修复 get_window 工具当 window_lengthNone 时的问题 (#2866) @fkiraly

变换#

  • [BUG] 在 transformers 中的向量化过程中,如果传递了 y,则 y 会被 X 覆盖 (#2844) @fkiraly

  • [BUG] 修复了向量化 Panel 情况下返回类型不明确时的输出类型检查 (#2843) @fkiraly

文档#

  • [DOC] 添加缺失的 Sajaysurya 引用 (#2800) @fkiraly

  • [DOC] 在 0.12.0 的变更日志中添加缺失的 TonyBagnall 到贡献者列表 (#2803) @fkiraly

  • [DOC] 在安装指南的故障排除部分添加了“未找到匹配项”的解决方案 (#2786) @AurumnPegasus

  • [DOC] 清理转换器API参考 (#2818) @fkiraly

  • [DOC] 团队更新:从 CC 中移除 TonyBagnall (#2794) @fkiraly

  • [DOC] 添加了 Databricks 的 diviner 和 Nixtla 的 statsforecast 到相关软件 (#2873) @aiwalter

维护#

贡献者#

@aiwalter, @AurumnPegasus, @bethrice44, @ciaran-g, @fkiraly, @khrapovs, @miraep8

版本 0.12.0 - 2022-06-12#

亮点#

依赖项更改#

  • 新的软依赖项:pykalman``filterpy``(用于卡尔曼滤波器转换器)

核心接口变更#

BaseObject#

  • 所有估计器现在在 fit 开始时重置并执行 __init__ (#2562) @fkiraly。因此, fit 之前的初始化和检查现在也可以写在 __init__ 的末尾。

  • 所有估计器现在都拥有一个 clone 方法,该方法在功能上等同于 sklearnclone (#2565) @fkiraly

预测#

  • ExpandingWindowSplitter 在单独添加数据后,现在是 BaseForecaster.update_predict 中的默认 cv (#2679) @fkiraly。之前,如果不指定 cv 会导致错误。

性能指标#

  • 性能指标有一个新的基类设计和继承结构。请参阅 BaseForecastingErrorMetric 文档字符串文档。接口的更改向下兼容,并为进一步的重构奠定了基础。

时间序列回归#

  • TSR 基类已更新为一个与 BaseClassifier 平行的接口(#2647):user:fkiraly。请参阅基类文档字符串以获取规范详细信息。

弃用和移除#

数据类型、检查、转换#

  • from_multi_index_to_3d_numpy 中移除了 instance_indextime_index 参数。请改用 convertconvert_to

预测#

  • 移除:标签 fit-in-predict,现归入 fit_is_empty

  • 已弃用: HCrystalBallForecaster,将在 0.13.0 版本中移除。参见 #2677

性能指标#

  • changed: 在所有相关性能指标中,将 symmetric 超参数默认设置为 True

  • 已弃用:funcname 参数将从 0.13.0 版本的所有性能指标构造函数中移除。如果需要这些属性,它们应作为对象或类属性,并且可以是可选的构造函数参数。然而,不再要求所有性能指标的构造函数都必须有 funcname 作为参数。

  • 已弃用:greater_is_better 属性将在 0.13.0 版本中被 greater_is_better 标签取代。在此之前,实现者应设置 greater_is_better 标签。用户在 0.13.0 之前仍可调用 greater_is_better 属性,该属性将作为 greater_is_better 标签的别名,如果已设置的话。

时间序列分类#

  • 已弃用: "capability:early_prediction" 将在 0.13.0 版本中从 BaseClassifier 的子类中移除。早期的分类器应改为继承自特定学习任务的基础类 BaseEarlyClassifier

变换#

  • 移除了标签 fit-in-transform,现在归入 fit_is_empty

  • 移除:FeatureUnionpreserve_dataframe 参数

  • 移除了:series_as_features.compose 模块,内容已移至 transformations.compose

  • 移除:transformations.series.window_summarize 模块,内容已移至 transformations.series.summarize

  • 更改:Imputer"drift", "mean", "median", "random" 方法现在使用训练集(fit 参数)来计算参数。对于 0.12.0 之前的旧行为,即使用 transform 集,请将 Imputer 包装在 FitInTransform 合成器中。

增强功能#

BaseObject#

数据类型、检查、转换#

  • [ENH] 为 get_slice 添加对多索引和层次数据的支持 (#2761) @bethrice44

距离, 核函数#

预测#

  • [ENH] 为 NaiveVariance 进行早期拟合 (#2546) @fkiraly

  • [ENH] 经验性和一致性概率预测区间 (Stankeviciute et al, 2021) (#2542 #2706) @bethrice44 @fkiraly

  • [ENH] BaseSplitter 扩展:层次化数据,直接分割序列 (#2599) @fkiraly

  • [ENH] 基于预测比例的自上而下协调器 (#2664) @ciaran-g

  • [ENH] HCrystalBallForecaster 弃用 (#2675) @aiwalter

  • [ENH] 为 Prophet 添加 int 处理 (#2709) @fkiraly

  • [ENH] 在使用外生预测器之前,用于外生数据预测的合成器 (#2674) @fkiraly

  • [ENH] 在 BaseForecaster.update_predict 中添加 ExpandingWindowSplitter 作为默认 cv (#2679) @fkiraly

性能指标#

流水线#

  • [ENH] make_pipeline 工具用于创建任何类型的线性管道 (#2643) @fkiraly

时间序列分类与回归#

  • [ENH] 从 sktime-dl 转移深度学习分类器和回归器 (#2447) @TonyBagnall

  • [ENH] 邻近森林,移除遗留转换 (#2518) @fkiraly

  • [ENH] 更新 TSR 基类,kNN 时间序列回归 (#2647) @fkiraly

  • [ENH] DummyClassifier,朴素分类器基线 (#2707) @ZiyaoWei

  • [ENH] 从 sktime 转换器和 sklearn 分类器进行时间序列分类的管道 (#2718) @fkiraly

变换#

测试框架#

  • [ENH] 在软依赖检查中允许不同的导入和包名 (#2545) @fkiraly

  • [ENH] 在 check_estimator 中排除测试/固定装置的选项 (#2756) @fkiraly

  • [ENH] make_mock_estimator 传递被模拟类的构造函数参数 (#2686) @ltsaprounis

  • [ENH] 连续数据的 test_update_predict_predicted_index (#2701) @ltsaprounis

  • [ENH] 接口合规性测试以确保构造函数的 sklearn 合规性 (#2732) @fkiraly

  • [ENH] check_estimators 在没有软依赖的情况下运行 (#2779) @fkiraly

  • [ENH] 预测管道测试,触发 #2739 中的转换和失败条件 (#2790) @fkiraly

  • [ENH] 在 TestAllEstimators 中将估计器方法迭代作为测试夹具暴露 (#2781) @fkiraly

治理#

修复#

聚类#

  • [BUG] 修复了与 sklearn 不兼容的构造函数:TimeSeriesKMeans (#2773) @fkiraly

数据类型、检查、转换#

  • [BUG] 修复 pd.Seriespd.DataFrame 的 mtype 转换,当系列有名称时 (#2607) @fkiraly

  • [BUG] 修正了 SeriesPanel 的转换,适用于 numpy 格式 (#2638) @fkiraly

距离, 核函数#

预测#

  • [BUG] 修复 update_predictcv 参数默认值和文档字符串错误 (#2589) @aiwalter

  • [BUG] 修复 Prophet 的逻辑增长问题 #1079 (#2609) @k1m190r

  • [BUG] UnobservedComponentsignores-exogeneous-X 标签修正 (#2666) @fkiraly

  • [BUG] 修复了 StackingForecaster 的外生数据问题 (#2667) @fkiraly

  • [BUG] 修复了 pmdarima 接口的索引处理,如果 X 索引集严格大于 y 索引集 (#2673) @fkiraly

  • [BUG] 修复 pd.tseries.offsets.BaseOffsetint 强制转换 (#2726) @khrapovs

  • [BUG] 修复了 NaiveVariance 训练/测试集中的重叠问题,原因是时间戳限制的包含性索引 (#2760) @bethrice44

  • [BUG] 修复了与 sklearn 不兼容的构造函数:AutoETS (#2736) @fkiraly

  • [BUG] 修复了与 sklearn 不兼容的构造函数: UnobservedComponents (#2773) @fkiraly

  • [BUG] 修复了 ARIMAAutoARIMA 中的 sarimax_kwargs 与 scikit-learn 接口不兼容的问题 (#2731, #2773) @fkiraly

  • [BUG] 添加补丁以确保 NaiveForecaster 中的列/名称保留 (#2793) @fkiraly

时间序列分类与回归#

  • [BUG] 修复构造函数不符合 sklearn 规范:KNeighborsTimeSeriesClassifierKNeighborsTimeSeriesRegressor (#2737, #2773) @fkiraly

变换#

  • [BUG] 修复了 Imputer 的 fit 方法 (#2362) @aiwalter

  • [BUG] 修复boxcox模块中作者变量的拼写错误 (#2642) @fkiraly

  • [BUG] TransformerPipeline 修复了向量化边缘情况和 sklearn 转换器 (#2644) @fkiraly

  • [BUG] SummaryTransformer 多元输出修复及针对序列到原始数据转换输出的测试 (#2720) @fkiraly

  • [BUG] 修复与 sklearn 不兼容的构造函数:PCATransformer (#2734) @fkiraly

维护#

  • [MNT] 在 setup.cfg 中添加了 pytest 标志 (#2535) @aiwalter

  • [MNT] 为 HCrystalBallForecaster 添加了弃用警告 (#2675) @aiwalter

  • [MNT] 用 .squeeze(“columns”) 方法替换 pd.read_csv 中已弃用的参数 squeeze (#2693) @khrapovs

  • [MNT] 用 pandas.concat 替换 pandas.DataFrame.append 以应对未来的弃用 (#2723) @khrapovs

  • [MNT] 在 PR 模板中添加 [MNT] 标签 (#2727) @khrapovs

  • [MNT] 从 transformer_simple 扩展模板中移除了冗余的 todo (#2740) @NoaBenAmi

  • [MNT] 解决来自 pandasnumpy 的各种未来警告 (#2725) @khrapovs

  • [MNT] 测试 sktime 不带软依赖 (#2719) @fkiraly

  • [MNT] 从 nosoftdeps 中移除意外的 codecov 覆盖 (#2782) @fkiraly

  • [MNT] 0.12.0 版本中计划的弃用操作 (#2747) @fkiraly

重构#

文档#

贡献者#

@aiwalter, @asattiraju13, @bethrice44, @chrisholder, @ciaran-g, @DBCerigo, @dougollerenshaw, @eenticott-shell, @fkiraly, @k1m190r, @keepersas, @khrapovs, @lbventura, @lielleravid, @ltsaprounis, @miraep8, @NoaBenAmi, @Ris-Bali, @TonyBagnall, @ZiyaoWei

版本 0.11.4 - 2022-05-13#

亮点#

  • 针对最新 scikit-learn 1.1.0 版本的兼容性维护更新

依赖项更改#

  • 添加了防御性上限 scikit-learn<1.2.0

维护#

增强功能#

BaseObject#

  • [ENH] 组件检索工具和复合组件的默认 BaseForecaster._update(update_params=False) (#2596) @fkiraly

聚类#

数据类型、检查、转换#

  • [ENH] 如果无法识别mtype,mtype 提供更详细的错误信息 (#2606) @fkiraly

距离, 核函数#

预测#

  • [ENH] 扩展滑动和扩展窗口分割器以允许时间增量预测范围 (#2551) @khrapovs

  • [ENH] 移除了 Prophet 的 interval_width 参数 (#2630) @phershbe

时间序列分类#

变换#

修复#

BaseObject#

聚类#

预测#

  • [BUG] 预测管道 get/set 参数已修复为双下划线生成的管道 (#2619) @fkiraly

测试框架#

  • [BUG] 修复测试套件中同一测试在不同测试运行之间的副作用 (#2558) @fkiraly

贡献者#

@chrisholder, @ciaran-g, @fkiraly, @khrapovs, @miraep8, @phershbe, @Ris-Bali, @TonyBagnall

版本 0.11.3 - 2022-04-29#

亮点#

  • sktime 现在兼容 scipy 1.8.X 版本 (#2468, #2474) @fkiraly

  • 预测管道的dunder方法:为 TransformedTargetForecaster 管道写 trafo * forecaster * my_postproc (#2404) @fkiraly

  • 多路复用/自动机器学习的dunder方法:为 MultiplexForecaster 编写 forecaster1 | forecaster2 | forecaster3,用于在预测器上进行调优(#2540):user:miraep8

  • dunders 与现有的转换器管道和特征联合结合,例如,trafo1 * trafo2 * forecaster(trafo1 + trafo2) * forecaster

  • UnobservedComponents 预测器的预测区间 (#2454) @juanitorduz

  • all_estimators 的新参数 return_tags 允许列出带有选定标签的估计器 (#2410) @miraep8

依赖项更改#

  • scipy 的上限放宽至 scipy<1.9.0sktime 现在与 scipy 1.8.X 版本兼容。

核心接口变更#

所有估计器#

所有估计器现在都有一个 reset 方法,该方法将对象重置为初始化后的干净状态,同时保留超参数。相当于 clone 但会覆盖 self

预测#

预测器有两个新的魔术方法。使用魔术方法可以轻松创建管道对象:

  • * 与一个转换器结合创建预测管道,例如,my_trafo1 * my_forecaster * my_postproc。预测器之前的转换器在 TransformedTargetForecaster 中用于预处理。预测器之后的转换器在 TransformedTargetForecaster 中用于后处理。

  • | 与另一个预测器结合创建一个多路复用器,例如,forecaster1 | forecaster2 | forecaster 3。结果是 MultiplexForecaster 类,可以与网格搜索结合用于自动机器学习风格的调优。

Dunder 方法与现有的 transformer dunder * (管道) 和 + (特征联合) 兼容。

预测器 update_predict 现在接受一个额外的布尔参数 reset_forecaster。如果 reset_forecaster = True``(默认且当前预期行为),预测器状态不会改变。如果 ``reset_forecaster = False,则 updatepredict 序列会更新状态。

在 0.13.0 版本中,默认值将更改为 reset_forecaster = False

弃用#

预测#

预测器 update_predict 的默认行为将从 reset_forecaster = True 更改为 reset_forecaster = False,从 0.13.0 版本开始(见上文)。

变换#

Differencer: drop_na 参数将在 0.12.0 版本中被弃用,并在 0.13.0 版本中移除。它将被 na_handling 参数和默认值 "fill_zero" 取代。

WindowSummarizer: lag_config 将在 0.12.0 版本中被弃用,并在 0.13.0 版本中移除。它将被 lag_feature 参数和新规范语法所取代。

增强功能#

BaseObject#

数据类型、检查、转换#

  • [ENH] 新的 _make_panel 工具,与 _make_panel_X 分开,具有任意返回类型 (#2505) @fkiraly

预测#

  • [ENH] 为 UnobservedComponents 预测器添加预测区间 (#2454) @juanitorduz

  • [ENH] 从DirRec简化器中移除外生变量``X``的错误消息 (#2463) @fkiraly

  • [ENH] 在分割器中用 np.arghwere 替换 np.arange 以启用基于时间的索引和选择 (#2394) @khrapovs

  • [ENH] 使用时间增量预测范围测试 SingleWindowSplitter (#2392) @khrapovs

  • [ENH] Aggregator: 移除索引命名要求 (#2479) @ciaran-g

  • [ENH] MultiplexForecaster 与多变量、概率性和层次预测的兼容性 (#2458) @fkiraly

  • [ENH] Differencer NA 处理 - “填充零”参数 (#2487) @fkiraly

  • [ENH] 为 statsmodels 适配器和估计器添加 random_state (#2440) @ris-bali

  • [ENH] 为 MultiplexForecaster 添加了测试 (#2520) @miraep8

  • [ENH] 为 MultiplexForecaster 添加了 | 双下划线方法 (#2540) @miraep8

注册表#

  • [ENH] 为 all_estimators 添加新参数 return_tags (#2410) @miraep8

测试框架#

变换#

修复#

聚类#

  • [BUG] 修复了kmedoids中的medoids在整个数据中被选择,而不是按簇选择的问题 (#2548) @chrisholder

数据类型、检查、转换#

  • [BUG] 修复从/到 numpyflat mtype 的直接转换被间接转换覆盖的问题 (#2517) @fkiraly

距离, 核函数#

预测#

  • [BUG] 重构 _predict_moving_cutoff 并修复错误,外部 update_predict_single 应被调用 (#2466) @fkiraly

  • [BUG] 修复 ThetaForecaster.predict_quantilespd.DataFrame 输入时中断的问题 (#2529) @fkiraly

  • [BUG] 修复默认 _predict_var 实现的错误 (#2538) @fkiraly

  • [BUG] 在向量化时确保层次预测中保留行索引名称 (#2489) @fkiraly

  • [BUG] 修复在构建嵌套管道时由于管道类型多态性导致的类型检查错误 (#2456) @fkiraly

  • [BUG] 修复 update_predict 状态处理错误,用 deepcopy 替换分离的截止 (#2557) @fkiraly

  • [BUG] 修复了 WindowSummarizer 中的索引名称依赖 (#2567) @ltsaprounis

  • [BUG] 修复 ColumnEnsembleForecaster.pred_quantilespred_interval 的非合规输出 (#2512) @eenticott-shell

时间序列分类#

  • [BUG] 修复了 ColumnEnsembleClassifier 处理不等长数据的问题 (#2513) @fkiraly

变换#

  • [BUG] 从 _boxcox 中移除 alpha 参数,移除私有方法依赖,确保与 scipy 1.8.0 的兼容性 (#2468) @fkiraly

  • [BUG] 修复 MiniRocketMultivariate 中的随机状态覆盖 (#2563) @fkiraly

测试框架#

  • [BUG] 修复测试场景中默认方法/参数序列的意外覆盖 (#2457) @fkiraly

重构#

  • [ENH] 将引用 fit-in-transform 改为 fit_is_empty (#2494) @fkiraly

  • [ENH] 清理 _panel._convert 模块 (#2519) @fkiraly

  • [ENH] 遗留测试重构 - 移动 test_data_processing,在 test_classifier_output 中处理 mtype (#2506) @fkiraly

  • [ENH] 没有日志的 MockForecasterMockUnivariateForecaster 清理 (#2539) @fkiraly

  • [ENH] 指标重构第一部分 - 输出格式测试 (#2496) @fkiraly

  • [ENH] 简化 load_from_tsfile,支持更多 mtypes (#2521) @fkiraly

  • [ENH] 在 _predict_moving_cutoff 重构后移除无效的参数和函数 (#2470) @fkiraly

维护#

文档#

贡献者#

@aiwalter, @chrisholder, @ciaran-g, @danbartl, @eenticott-shell, @fkiraly, @GuzalBulatova, @juanitorduz, @KatieBuc, @khrapovs, @lmmentel, @ltsaprounis, @MatthewMiddlehurst, @miraep8, @ris-bali, @Samuel-Oyeneye, @tarpas, @Tomiiwa

版本 0.11.2 - 2022-04-11#

修复#

  • [BUG] 对传递给聚合器的层次结构X中的未命名级别进行临时解决方法 (#2432) @fkiraly

  • [BUG] 预测管道双下划线修复 (#2431) @fkiraly

  • [BUG] 修复 ColumnEnsembleForecaster 中的错误直接传递 (#2436) @fkiraly

  • [BUG] 通过 (#2438) @danbartl 修复了在分层数据上 make_reduction 返回错误索引的问题

版本 0.11.1 - 2022-04-10#

亮点#

核心接口变更#

数据类型、检查、转换#

  • pd-multiindex mtype 被放宽,允许任意层级名称

预测#

  • 概率预测接口现在也适用于自动向量化的情况

  • 概率预测接口现在与层次预测接口兼容

增强功能#

数据类型、检查、转换#

  • [ENH] tsf 加载器以允许指定返回的 mtype (#2103) @ltsaprounis

  • [ENH] 放宽多索引的名称规则 - 修复了 from_multi_index_to_nested 中的遗漏 (#2384) @ltsaprounis

预测#

  • [ENH] 在区间/分位数预测中要求多个alpha/覆盖率的唯一性 (#2326) @fkiraly

  • [ENH] 在 VAR 构造函数中添加 fit 参数 #1850 (#2304) @TNTran92

  • [ENH] 为返回 pd.DataFrame 的概率预测方法进行向量化 (#2355) @fkiraly

  • [ENH] 为 ForecastingPipelineTransformedTargetForecaster 添加对概率性和层次性预测的兼容性 (#2318) @fkiraly

  • [ENH] 允许 pd.Timedelta 值在 ForecastingHorizon 中使用 (#2333) @khrapovs

  • [ENH] 为 ColumnEnsembleForecaster 的概率方法(predict_proba 除外)(#2356) @fkiraly

  • [ENH] NaiveVariance: 详细参数和扩展文档字符串 (#2395) @fkiraly

  • [ENH] 使用概率度量的网格搜索 (#2234) @eenticott-shell

  • [ENH] 流预测的包装器(用于 update_predict 使用)以触发定期重拟合 (#2305) @fkiraly

  • [ENH] 在 TransformedTargetForecaster 中的后处理,用于(转换后的 y)预测管道的双下划线方法 (#2404) @fkiraly

  • [ENH] 在 all_estimators 估计器检索中抑制弃用消息,解决 dtw 导入消息 (#2418) @katiebuc

  • [ENH] 当接收到不兼容的输入时,改进预测器中的错误消息 (#2314) @fkiraly

  • [ENH] NaiveVariance: 详细参数和扩展文档字符串 (#2395) @fkiraly

  • [ENH] 禁止不兼容的分割器参数 (#2328) @khrapovs

  • [ENH] 添加了 statsmodels SARIMAX 的接口 (#2400) @TNTran92

  • [ENH] 扩展归约器以处理层次数据,添加转换 (#2396) @danbartl

时间序列分类#

  • [ENH] 更快的分类器示例参数 (#2378) @MatthewMiddlehurst

  • [ENH] BaseObject.is_composite 工具,将 BaseClassifier 输入检查中的错误放宽为复合警告 (#2366) @fkiraly

  • [ENH] 为转换器和分类器管道的能力推断 (#2367) @fkiraly

变换#

  • [ENH] 为分层预测实现协调器 - 转换器 (#2287) @ciaran-g

  • [ENH] 层次聚合转换器 (#2292) @ciaran-g

  • [ENH] 为 WindowSummarizer 增加内存功能,使 transform 窗口能够延伸到 fit 时间段 (#2325) @fkiraly

维护#

重构#

  • [ENH] 在整个代码库中移除不符合规范的 fit_params 关键字参数 (#2343) @fkiraly

  • [ENH] 分类预期输出测试更新 (#2295) @MatthewMiddlehurst

  • [ENH] Transformers 模块全面重构 - 第三部分,panel 模块(第二批)(#2253) @fkiraly

  • [ENH] Transformers 模块全面重构 - 第 IV 部分,panel 模块(第 3 批)(#2369) @fkiraly

  • [ENH] 测试参数重构:TSInterpolator (#2342) @NoaBenAmi

  • [ENH] 将“sktime 预测器测试”移入 TestAllForecasters 类 (#2311) @fkiraly

  • [ENH] 升级 BasePairwiseTransformer 以使用 datatypes 输入转换和检查 (#2363) @fkiraly

  • [ENH] 扩展 _HeterogeneousMetaEstimator 估计器以允许混合元组/估计器列表 (#2406) @fkiraly

  • [MNT] 测试参数重构:预测缩减器和 ColumnEnsembleClassifier (#2223) @fkiraly

  • [ENH] 重构 test_all_transformers 以测试类架构 (#2252) @fkiraly

修复#

预测#

  • [BUG] 修复 _updatefh 延迟传递情况下的默认值 (#2362) @fkiraly

  • [ENH] 将缓存的 ForecastingHorizon 方法提取为函数并避免 B019 错误 (#2364) @khrapovs

  • [ENH] AutoETS 预测区间简化 (#2320) @fkiraly

  • [BUG] 修复了大多数 mtypes 的 get_time_index (#2380) @fkiraly

变换#

  • [BUG] TSInterpolatornested_univ 检查修复 (#2259) @fkiraly

  • [BUG][ENH] WindowSummarizer 偏移修复,更简单的滞后指定 (#2316) @danbartl

  • [BUG] FeatureUnion 输出列名已修复 (#2324) @fkiraly

  • [ENH][BUG] 修复和实现变换器组合中缺失的 inverse_transform (#2322) @fkiraly

文档#

  • [DOC] 修复 0.11.0 发布说明亮点格式 (#2310) @fkiraly

  • [DOC] 拼写修正:在扩展模板中将 constructor 修正为 constructor (#2348) @fkiraly

  • [DPC] 修复了 'docs/source/developer_guide/testing_framework.rst' 的问题 (#2335) @0saurabh0

  • [DOC] 更新了 conda 安装说明 (#2365) @RISHIKESHAVAN

  • [DOC] 更新了扩展模板:链接到文档并引用了 check_estimator (#2303) @fkiraly

  • [DOC] 改进了预测器的文档字符串 (#2314) @fkiraly

  • [DOC] 为加载数据函数添加了文档字符串示例 (#2393) @aiwalter

  • [DOC] 在 README 中添加了平台徽章 (#2398) @aiwalter

  • [DOC] 添加 GSoC 2022 登陆页面和公告 (#2373) @lmmentel

  • [DOC] 在 interval_based_classification 示例笔记本中,使用多元数据集进行多元示例 (#1822) @ksachdeva

贡献者#

@0saurabh0, @aiwalter, @ciaran-g, @danbartl, @eenticott-shell, @fkiraly, @katiebuc, @khrapovs, @ksachdeva, @lmmentel, @ltsaprounis, @MatthewMiddlehurst, @NoaBenAmi, @RISHIKESHAVAN, @TNTran92

版本 0.11.0 - 2022-03-26#

亮点#

依赖项更改#

  • sktime 有一个新的可选深度学习依赖集,包括 tensorflowtensorflow-probability

  • 新的软件依赖:tslearn``(``tslearn 聚类器所需)

  • 新的软依赖:statsforecast``(``StatsforecastAutoARIMA 所需)

核心接口变更#

数据类型、检查、转换#

  • 新的 Hierarchical 科学类型用于层次时间序列数据,mtype 格式为 ``pd_multiindex_hier``(行多索引序列)

  • 新的 Table 科学类型用于“普通”的表格(类似二维数据框)数据,这些数据不是时间序列或顺序的。

  • Table 科学类型的多种 mtype 格式:numpy1Dnumpy2Dpd_DataFrame_Tablepd_Series_Tablelist_of_dict

  • 新的 Proba 科学类型用于分布和类似分布的对象(用于概率预测)

预测#

  • 预测器现在也接受 Panel 类型(面板和全局预测器)和 Hierarchical 类型(分层预测器)的输入

  • 当预测器接收到 PanelHierarchical 输入,并且只定义了 Series 逻辑时,预测器将自动循环处理(序列)实例。

  • 当预测器接收到 Hierarchical 输入,并且只定义了 PanelSeries 逻辑时,预测器将自动循环处理(面板)实例。

  • 新的概率预测接口用于概率预测:

    • 新方法 predict_var(fh, X, cov=False) 用于方差预测,返回预测方差的时间序列

    • 新方法 predict_proba(fh, X, marginal=True) 用于分布预测,返回 tensorflow Distribution

时间序列分类#

  • 用于管道分类器和转换器的双下划线方法:my_trafo1 * my_trafo2 * my_clf 将创建一个 ClassifierPipeline``(与 ``sklearn 兼容)

变换#

  • transformers 现在也接受 Panel 类型(panel 和 global transformers)和 Hierarchical 类型(hierarchical transformers)的输入

  • 当给定 PanelHierarchical 输入,并且只定义了 Series 逻辑时,转换器将自动循环处理(系列)实例。

  • 当给定 Hierarchical 输入时,如果只定义了 PanelSeries 逻辑,转换器将自动循环遍历(面板)实例。

  • Table 科学类型用作返回“原始”数据的转换器的输出。

  • 用于管道转换器的 dunder 方法:my_trafo1 * my_trafo2 * my_trafo3 将创建一个(单一的)``TransformerPipeline``(与 sklearn 兼容)

  • transformers 中 FeatureUnion 的 dunder 方法:my_trafo1 + my_trafo2 + my_trafo3 将创建一个(单一的)``FeatureUnion`` (sklearn 兼容)

  • transformer dunder pipeline 与 sklearn 转换器兼容,自动包装在 TabularToSeriesAdaptor

弃用和移除#

数据类型、检查、转换#

  • 已移除:check_is,重命名为 check_is_mtype (#1692) @mloning

预测#

  • 移除了预测器 predictfit_predictupdate_predict_single 中的 return_pred_int 参数。由 predict_intervalpredict_quantiles 接口替代。

  • 已弃用: fit-in-predict 标签已被弃用并重命名为 fit_is_empty。旧标签 fit-in-predict 可以在 0.12.0 版本之前使用,届时将被移除。

  • 已弃用:预测指标 symmetric 参数的默认值将在 0.12.0 版本中更改为 False。在此之前,默认值为 True

变换#

  • 移除:系列变压器不再接受 Z 参数 - 请改用第一个参数 X 代替 (#1365, #1730)

  • 已弃用: fit-in-transform 标签已被弃用并重命名为 fit_is_empty。旧标签 fit-in-transform 可以在 0.12.0 版本之前使用,届时将被移除。

  • 已弃用:FeatureUnion 中的 series_as_features 旧位置已移至 transformations.compose。旧位置在 0.12.0 之前仍可导入。

  • 已弃用: FeatureUnionpreserve_dataframe 参数,将在 0.12.0 版本中移除。

  • 已弃用:WindowSummarizertransformations.series.windows_summarizer 的旧位置,已移动到 transformations.series.summarize。旧位置在 0.12.0 之前仍可导入。

增强功能#

数据类型、检查、转换#

  • [ENH] 为 Series, Panel 和 Hierarchical mtypes 添加 cutoff getter (#2115) @fkiraly

  • [ENH] Gettimeindex 访问分层数据的索引 (#2110) @danbartl

  • [ENH] 对基于区间和分位数的概率预测的数据类型支持 (#2130) @fkiraly

  • [ENH] sklearn 类型工具 (#2208) @fkiraly

  • [ENH] 放宽 pd-multiindex mtype 以允许字符串实例索引 (#2262) @fkiraly

数据集和数据加载器#

聚类#

  • [ENH] tslearn 作为软依赖添加,并用于添加新的聚类器。(#2048) @chrisholder

  • [ENH] 添加用户选项以确定单个问题聚类/分类问题中的返回类型 (#2139) @TonyBagnall

距离, 核函数#

预测#

时间序列分类#

变换#

  • [ENH] 单变量时间序列自助法 (#2065) @ltsaprounis

  • [ENH] 将 FunctionTransformer._fit 改为通用签名 (#2205) @fkiraly

  • [ENH] 升级 BaseTransformer 以使用向量化工具,分层 mtype 兼容性 (#2219) @fkiraly

  • [ENH] WindowSummarizer 处理分层数据 (#2154) @danbartl

  • [ENH] Transformer 管道和 dunder 方法 (#2090) @fkiraly

  • [ENH] 表格转换器适配器“fit in transform”参数 (#2209) @fkiraly

  • [ENH] dunder 管道 sklearn 估计器支持 (#2210) @fkiraly

测试框架#

治理#

固定#

  • [BUG] 修复了由 ThetaForecaster.predict_quantiles 引起的固定状态变化 (#2108) @fkiraly

  • [BUG] _make_hierarchical 被重命名为 _make_hierarchical (拼写错误/bug) 问题 #2195 (#2196) @Vasudeva-bit

  • [BUG] 修复 PaddingTransformer._transform 的错误输出类型 (#2217) @fkiraly

  • [BUG] 修复 nested_dataframe_has_nans (#2216) @fkiraly

  • [BUG] 测试预测器的向量化,以及各种错误修复 (#2188) @fkiraly

  • [BUG] 修复了预测减少器的 ignores-exogeneous-X 标签 (#2230) @fkiraly

  • [BUG] 修复 STLBootstrapTransformer 错误信息和文档字符串 (#2260) @fkiraly

  • [BUG] 修复 BaseForecaster 中的转换区间->分位数,并修复 ARIMA.predict_interval (#2281) @fkiraly

  • [DOC] 修复指向行为准则的断链 (#2104) @mikofski

  • [BUG] 修复 VectorizedDF.__getitem__ 中索引频率的 Windows 错误 (#2279) @ltsaprounis

  • [BUG] 修复了 _predict_var 文档字符串中 Returns 部分的重复问题 (#2306) @fkiraly

  • [BUG] 修复了 check_pdmultiindex_panel 的错误 (#2092) @danbartl

  • [BUG] 修复了当生成空簇时kmeans和medoids的崩溃问题 (#2060) @chrisholder

  • [BUG] 相同的截断拼写错误修复 (#2193) @cdahlin

  • [BUG] 解决由于软依赖导入失败导致的文档构建问题 (#2170) @fkiraly

  • 弃用处理:sklearn 1.2 弃用警告 (#2190) @hmtbgc

  • 弃用处理:使用 StandardScaler 替换 normalize (#2167) @KishenSharma6

文档#

维护#

  • [MNT] 更新发布草稿 (#2096) @lmmentel

  • 加速EE测试和ColumnEnsemble示例 (#2124) @TonyBagnall

  • [MNT] 在 test_plotting 中添加 xfails 直到 #2066 被解决 (#2144) @fkiraly

  • [MNT] 在 #2066 解决之前,为整个 test_plotting 添加跳过 (#2147) @fkiraly

  • [ENH] 改进了 deep_equals 的返回信息,如果 dict 不一致 (#2107) @fkiraly

  • [BUG] 解决由于软依赖导入失败导致的文档构建问题 (#2170) @fkiraly

  • [ENH] 扩展 deep_equals 以支持 ForecastingHorizon (#2225) @fkiraly

  • [ENH] deep_equals 工具的单元测试 (#2226) @fkiraly

  • [MNT] 更快的文档字符串示例 - ForecastingGridSearchCV, MultiplexForecaster (#2229) @fkiraly

  • [BUG] 移除 StratifiedGroupKFold 的测试 (#2244) @TonyBagnall

  • [ENH] 分类器类型提示 (#2246) @MatthewMiddlehurst

  • 更新了 pre-commit 链接,并且语法上也更新了 Coding Style 文档 (#2285) @Tomiiwa

  • 更新 .all-contributorsrc (#2286) @Tomiiwa

  • [ENH] 用于测试的模拟估计器和模拟估计器生成器 (#2197) @ltsaprounis

  • [MNT] 弃用移除 0.11.0 (#2271) @fkiraly

  • [BUG] 修复 pyproject 和 jinja2 CI 失败 (#2299) @fkiraly

  • [DOC] 更新 PULL_REQUEST_TEMPLATE.md 以便 PR 标题应以 [ENH]、[DOC] 或 [BUG] 开头 (#2293) @aiwalter

  • [MNT] 在 test_plotting 中添加跳过,直到 #2066 解决 (#2146) @fkiraly

重构#

贡献者#

@aiwalter, @cdahlin, @chrisholder, @ciaran-g, @danbartl, @dionysisbacchus, @eenticott-shell, @FedericoGarza, @fkiraly, @hmtbgc, @IlyasMoutawwakil, @kejsitake, @KishenSharma6, @lielleravid, @lmmentel, @ltsaprounis, @MatthewMiddlehurst, @mikofski, @RafaAyGar, @theanorak, @Tomiiwa, @TonyBagnall, @Vasudeva-bit

[0.10.1] - 2022-02-20#

亮点#

  • 此版本主要是一个维护补丁,它将 scipy<1.8.0 上限设置为防止由于 scipy 中的接口变化导致的错误。

  • 一旦 sktimescipy 1.8.0 兼容,上限将被放宽

  • 新预测器:STLForecaster (#1963) @aiwalter

  • 新转换器:滞后窗口汇总转换 (#1924) @danbartl

  • 加载 .tsf 数据格式的加载器 (#1934) @rakshitha123

依赖项更改#

  • 引入绑定的 scipy<1.8.0,以防止由于 scipy 接口变化导致的错误。

  • 一旦 sktimescipy 1.8.0 兼容,上限将被放宽

添加#

文档#

数据集和数据加载器#

数据类型、检查、转换#

  • [ENH] convert 存储重置/冻结行为 & 修复了 bug 1976 (#1977) @fkiraly

  • [ENH] 新的 Table mtypes: pd.Series 基于的, listdict (如在词袋转换器中使用) (#2076) @fkiraly`

预测#

  • [ENH] 添加了 STLForecaster (#1963) @aiwalter

  • [ENH] 将预测器测试参数从 _config 移入类中 - 排除减少 (#1902) @fkiraly

变换#

维护#

固定#

贡献者#

@aiwalter, @baggiponte, @chicken-biryani, @danbartl, @eenticott-shell, @fkiraly, @khrapovs, @lmmentel, @MatthewMiddlehurst, @rakshitha123, @RishiKumarRay, @Rubiel1, @Saransh-cpp, @schettino72,

[0.10.0] - 2022-02-02#

亮点#

依赖项更改#

  • sktime 现在支持在 Windows、Mac 和基于 Unix 的系统上使用 python 3.7-3.9。

  • sktime 现在支持并要求 numpy>=1.21.0statsmodels>=0.12.1

  • sktime Prophet 接口现在使用 prophet 而不是已弃用的 fbprophet

  • sktime 的开发者安装不再需要 C 编译器和 cython

核心接口变更#

预测#

新的概率预测接口,用于分位数和预测区间:

  • 对于所有具有概率预测能力的预测者,即带有 capability:pred_int 标签的预测者

  • 新方法 predict_interval(fh, X, coverage) 用于区间预测

  • 新方法 predict_quantiles(fh, X, alpha) 用于分位数预测

  • coveragealpha 中都进行了向量化,并适用于多元预测

  • 旧的 return_pred_int 接口已被弃用,并将在 0.11.0 版本中移除。

  • 参见预测器基础API和预测器扩展模板

返回残差的便捷方法:

  • 所有预测器现在都有一个方法 predict_residuals(y, X, fh)

  • 如果未传递 fh,则计算样本内残差

变换#

基础接口重构已应用于系列变压器(#1790, #1795):

  • fit, transform, fit_transform 现在接受 SeriesPanel 作为参数

  • 如果将 Panel 传递给一个系列转换器,它将应用于所有实例。

  • 所有转换器现在都有签名 transform(X, y=None)inverse_transform(X, y=None)。这是由新的基础接口强制执行的。

  • Z (原第一个参数) 在系列变换器中直到0.11.0版本别名为 X,之后将被移除

  • X``(前第二个参数)在这些转换器中未被使用,已更改为 ``y

  • 参见 transformer 基础 API 和 transformer 扩展模板

弃用和移除#

数据类型、检查、转换#

  • 已弃用,计划在0.11.0版本中移除:check_is 重命名为 check_is_mtypecheck_is 将在0.11.0版本中移除(#1692@mloning

预测#

  • 已弃用,计划在0.11.0版本中移除:预测器 predictfit_predictupdate_predict_single 中的 return_pred_int 参数。已被 predict_intervalpredict_quantiles 接口取代。

时间序列分类#

变换#

  • 已弃用,计划在0.11.0版本中移除:系列变换器将不再接受 Z 参数 - 第一个参数 ZX 替换(#1365, #1730

添加#

文档#

数据类型、检查、转换#

  • [ENH] check_is_scitype,清理 dists_kernels 输入检查/转换 (#1704) @fkiraly

  • [ENH] 表格 类型和 转换 模块的重构 (#1745) @fkiraly

  • [ENH] 估计器科学类型工具 (#1838) @fkiraly

  • [ENH] 实验性:层次时间序列 scitype hierarchical_scitype (#1786) @fkiraly

  • [ENH] 升级 mtype_to_scitype 以支持列表类参数 (#1807) @fkiraly

  • [ENH] check_is_mtype 返回 scitype (#1789) @fkiraly

  • [ENH] 为 sktime 时间序列格式提供向量化/迭代工具 (#1806) @fkiraly

数据集和数据加载器#

聚类#

距离, 核函数#

  • [ENH] numba 距离模块的可组合距离接口原型 (#1858) @fkiraly

预测#

时间序列分类#

变换#

  • [ENH] Transformers 模块全面重构 - 第一部分, series 模块 (#1795) @fkiraly

  • [ENH] 转换器基类 DRY-ing,以及 inverse_transform (#1790) @fkiraly

  • [ENH] 转换器基类,允许在输入始终为单变量时输出多变量 (#1706) @fkiraly

测试模块#

  • [ENH] 使用场景测试重构 (#1833) @fkiraly

  • [ENH] 高级测试的测试场景 (#1819) @fkiraly

  • [ENH] pytest 条件性夹具 (#1839) @fkiraly

  • [ENH] 测试增强文档 (#1922) @fkiraly

  • [ENH] 将 series_as_features 中的测试分为分类和回归 (#1959) @tonybagnall

  • [ENH] 测试 check_is_mtype 的元数据返回 (#1748) @fkiraly

  • [ENH] 扩展了 deep_equals,精确指示相等性失败的原因 (#1844) @fkiraly

  • [ENH] 测试 test_create_test_instances_and_names 固定装置生成方法 (#1829) @fkiraly

  • [ENH] 工具模块 housekeeping varia utils-housekeeping (#1820) @fkiraly

  • [ENH] 扩展测试框架以测试每个估计器的多个实例夹具 (#1732) @fkiraly

治理#

维护#

  • [MNT] 将额外依赖从 fbprophet 切换到 prophet (#1958) @lmmentel

  • [MNT] 更新代码依赖版本,即 numpystatsmodels 以减少依赖冲突 (#1921) @lmmentel

  • [MNT] 将所有 CI/CD 工作流迁移到 github actions 并放弃 azure pipelines 和 appveyor (#1620, #1920) @lmemntel

  • [MNT] 重构遗留测试配置 (#1792) @lmmentel

  • [修复] 添加缺失的初始化文件 (#1695) @mloning

  • [MNT] 添加 shellcheck 到 pre-commit (#1703) @mloning

  • [MNT] 移除分配贡献者工作流程 (#1702) @mloning

  • [MNT] 缺少初始化文件时在CI中失败 (#1699) @mloning

  • [ENH] 替换已弃用的 np.int, np.float (#1734) @fkiraly

  • [MNT] 修正运行笔记本示例的bash错误传播 (#1816) @lmmentel

固定#

  • [DOC] 修复了transformer扩展模板中的拼写错误 (#1901) @rakshitha123

  • [DOC] 修复“设置开发环境”部分的拼写错误 (#1872) @shubhamkarande13

  • [BUG] 修复 ARIMA 和 TrendForecaster 的错误“使用 X”标签 (#1895) @ngupta23

  • [BUG] 修复在连接训练和测试数据时的错误 (#1892) @tonybagnall

  • [BUG] Knn 错误修复以允许 GridsearchCV 和与列集合一起使用 (#1903) @tonybagnall

  • [BUG] 修复了DrCIF、STSF、MUSE、Catch22中的各种错误 (#1869) @MatthewMiddlehurst

  • [BUG] 修复detrender中内部变量的混淆 (#1863) @fkiraly

  • [BUG] 转换器基类更改和错误修复 (#1855) @fkiraly

  • [BUG] 修复了 convert_align_to_align_loc 中的错误索引强制 (#1911) @fkiraly

  • [BUG] 针对场景测试中发现的各种错误的修复 (#1846) @fkiraly

  • [BUG] 1523 修复 ForecastHorizon.to_absolute 对于带有锚定频率的问题 (#1830) @eenticott-shell

  • [BUG] 从 BaseClassifier.score 中移除重复的输入检查 (#1813) @fkiraly

  • [BUG] 修复了 check_is_scitype 中的 mtype 返回字段 (#1805) @fkiraly

  • [BUG] 在 predict_intervalpredict_quantiles 中修复 fh -> self.fh (#1775) @fkiraly

  • [BUG] 修复不正确的文档字符串并解决面板元数据推断中长度不等/间隔不一致的混淆问题 (#1768) @fkiraly

  • [BUG] 修复当传递多变量 y 到 boxcox 转换器时的错误 (#1724) @fkiraly

  • [BUG] 修复了 CIF 与 CIT 的冲突,添加了预防性测试 (#1709) @MatthewMiddlehurst

  • [BUG] 修正 examples/catch22.ipynb 中对 transform_single_feature 的调用 (#1793) @lmmentel

  • [BUG] 修复了关于外生变量X内部变化的prophet错误 (#1711) @kejsitake

  • [BUG] 修复 pd.Series 在 sktime/utils/tests/test_datetime.py:21 中的 DeprecationWarning (#1743) @khrapovs

  • [BUG] 修复了 BaseClassifier 中的错误,更新了基类的文档字符串 (#1804) @fkiraly

贡献者#

@aiwalter, @amrith-shell, @Aparna-Sakshi, @AreloTanoh, @chrisholder, @eenticott-shell, @fkiraly, @k1m190r, @kejsitake, @khrapovs, @lmmentel, @ltsaprounis, @MatthewMiddlehurst, @MrPr3ntice, @mloning, @ngupta23, @rakshitha123, @RNKuhns, @shubhamkarande13, @sumit-158, @TonyBagnall,

[0.9.0] - 2021-12-08#

亮点#

  • 经常请求的功能:AutoARIMA get_fitted_params 访问拟合的顺序和季节性顺序 (#1641) @AngelPone

  • Numba 距离模块 - 高效的时间序列距离 (#1574) @chrisholder

  • Transformers 基础接口重构 - 默认向量化到面板数据 @fkiraly

  • 新实验模块:时间序列对齐,dtw-python 接口 (#1264) @fkiraly

核心接口变更#

数据类型、检查、转换#

  • check_is 重命名为 check_is_mtypecheck_is 将在 0.10.0 版本中弃用 (#1692) @mloning

时间序列分类#

  • 时间序列分类器现在通过转换为3D而不是抛出异常来接受2D np.ndarray (#1604) @TonyBagnall

变换#

基础接口重构(#1365, #1663, #1706):

  • fit, transform, fit_transform 现在接受 SeriesPanel 作为参数

  • 如果将 Panel 传递给一个系列转换器,它将应用于所有实例。

  • 所有转换器现在都使用 X 作为它们的第一个参数,y 作为它们的第二个参数。这是由新的基础接口强制执行的。

  • 这在不同类型的变压器之间以前是不一致的:串联变压器使用 Z 作为第一个参数,X 作为第二个参数。

  • Z (前第一个参数) 在系列转换器中直到0.10.0版本别名为 X,之后将被弃用

  • X`(原第二个参数)在这些转换器中未被使用,其中它已更改为 `y

  • 查看新的转换器扩展模板

  • 这些更改将逐步通过 0.9.X 版本推出到所有转换器。

0.10.0 的新弃用项#

数据类型、检查、转换#

  • check_is 重命名为 check_is_mtypecheck_is 将在 0.10.0 版本中弃用 (#1692) @mloning

时间序列分类#

变换#

  • 系列变压器将不再接受 Z 参数 - 第一个参数 ZX 取代 (#1365)

添加#

文档#

数据类型、检查、转换#

  • [ENH] 为 scitype 检查添加了 check_is_scitype,清理了 dists_kernels 输入检查/转换 (#1704) @fkiraly

预测#

  • [ENH] Auto-ETS 根据数据的非负性检查模型以供选择 (#1615) @chernika158

  • [DOC] ForecastingGridSearchCV 的文档字符串元调优示例 (#1656) @aiwalter

时间序列对齐#

  • [ENH] 新模块:时间序列对齐;对齐距离 (#1264) @fkiraly

时间序列分类#

时间序列距离#

治理#

维护#

固定#

估计器注册#

  • [BUG] 修复了注册表查找,注册表查找的测试套件 (#1648) @fkiraly

预测#

  • [BUG] Facebook prophet 对外部数据 X 的副作用 (#1711) @kejsitake

  • [BUG] 修复 _split 的错误,意外移除了对 pandas.Index 的支持 (#1582) @fkiraly

  • [BUG] 修复 convert_split 对于 Numpy 1D 输入的问题 (#1650) @fkiraly

  • [BUG] 当我们通过 (#1595) @ltsaprounis 重新拟合预测器时,update_y_X 存在问题

性能指标,评估#

时间序列对齐#

时间序列分类#

变换#

维护#

贡献者#

@aiwalter, @AngelPone, @AreloTanoh, @Carlosbogo, @chernika158, @chrisholder, @fstinner, @fkiraly, @freddyaboulton, @kejsitake, @lmmentel, @ltsaprounis, @MatthewMiddlehurst, @marcio55afr, @MrPr3ntice, @mloning, @OliverMatthews, @RNKuhns, @thayeylolu, @TonyBagnall,

完整更新日志#

https://github.com/sktime/sktime/compare/v0.8.1…v0.9.0

[0.8.1] - 2021-10-28#

亮点#

0.10.0 的新弃用项#

预测#

  • 当前在 predict 中通过 return_pred_int 的预测区间接口将被弃用,并由新的接口点 predict_intervalpredict_quantiles 替代。

核心接口变更#

预测#

  • 概率预测的新接口点,predict_intervalpredict_quantiles (#1421) @SveaMeyer13

  • 将预测 univariate-only 标签更改为 ignores-exogeneous-X (#1358) @fkiraly

添加#

BaseEstimator/BaseObject#

预测#

时间序列分类#

变压器#

注解:变化点,分割#

文档#

治理#

测试框架#

固定#

所有贡献者:@Aparna-Sakshi@BINAYKUMAR943@IlyasMoutawwakil@MatthewMiddlehurst@Piyush1729@RNKuhns@RavenRudi@SveaMeyer13@TonyBagnall@afzal442@aiwalter@bobbys-dev@boukepostma@danbartl@eyalshafran@fkiraly@freddyaboulton@kejsitake@mloning@myprogrammerpersonality@patrickzib@ronnie-llamado@xiaobenbenecho@SinghShreya05,以及 @yairbeer

[0.8.0] - 2021-09-17#

亮点#

核心接口变更#

BaseEstimator/BaseObject#

  • 估计器(类和对象)的能力可以通过 get_tagget_tags 接口进行检查。

  • 通过 registry/all_tags 列出应用于估计器类型的所有标签

  • 通过 registry/all_estimators 列出所有特定类型的估计器,带有某些标签。

内存数据类型#

  • 介绍用于定义跨所有模块的内存格式约定的 m(achine)types 和 scitypes,请参阅 内存数据类型教程

  • 松散转换方法现在在 datatypes 中的 _convert 文件中将不再在 0.10.0 版本中公开访问。

预测#

  • 预测器现在可以接受 pd.DataFramepd.Seriesnp.ndarray 作为 Xy,并返回与传入的 y 相同类型的预测结果。

  • sktime 现在支持多变量预测器,在这种情况下,所有核心接口方法都返回合理的返回类型。

  • 预测器是否能处理多变量序列可以通过 get_tag("scitype:y") 来检查,该方法可以返回 "univariate""multivariate""both"

  • 已经引入了更多标签,请参见 registry/all_tags

时间序列分类#

  • 已经引入了标签,参见 registry/all_tags

添加#

预测#

时间序列分类#

变压器#

基准测试与评估#

文档#

测试框架#

固定#

所有贡献者:@Aparna-Sakshi@AreloTanoh@BINAYKUMAR943@Flix6x@GuzalBulatova@IlyasMoutawwakil@Lovkush-A@MatthewMiddlehurst@RNKuhns@SveaMeyer13@TonyBagnall@afzal442@aiwalter@bilal-196@corvusrabus@fkiraly@freddyaboulton@juanitorduz@justinshenk@ltoniazzi@mathco-wf@mloning@moradabaz@pul95@tensorflow-as-tf@thayeylolu@victordremov@whackteachers@xloem

[0.7.0] - 2021-07-12#

添加#

更改#

固定#

所有贡献者:@Dbhasin1@GuzalBulatova@Lovkush-A@MarcoGorelli@MatthewMiddlehurst@RNKuhns@Riyabelle25@SveaMeyer13@TonyBagnall@Yard1@aiwalter@chrisholder@ckastner@fkiraly@jambo6@julramos@kachayev@ltsaprounis@mloning@thayeylolu@tombh

[0.6.1] - 2021-05-14#

固定#

更改#

添加#

所有贡献者:@GuzalBulatova@RNKuhns@aaronreidsmith@aiwalter@kachayev@ltsaprounis@luiszugasti@mloning@satya-pattnaik@yashlamba

[0.6.0] - 2021-04-15#

固定#

更改#

添加#

所有贡献者:@AidenRushbrooke@Ifeanyi30@Lovkush-A@MarcoGorelli@MatthewMiddlehurst@TonyBagnall@afzal442@aiwalter@ayan-biswas0412@dsherry@jschemm@kanand77@koralturkk@luiszugasti@mloning@pabworks@xuyxu

[0.5.3] - 2021-02-06#

固定#

更改#

添加#

所有贡献者:@Lovkush-A@MatthewMiddlehurst@RNKuhns@TonyBagnall@ViktorKaz@aiwalter@goastler@koralturkk@mloning@pabworks@patrickzib@xuyxu

[0.5.2] - 2021-01-13#

固定#

所有贡献者:@Hephaest@MatthewMiddlehurst@TonyBagnall@aiwalter@dhirschfeld

[0.5.1] - 2020-12-29#

添加#

固定#

  • 固定 pandas 版本以修复 Linux 上的 pandas 相关 AutoETS 错误 (#581) @mloning

  • 在 SlidingWindowSplitter 的文档字符串中修复了默认参数 (#556) @ngupta23

所有贡献者:@HYang1996@TonyBagnall@afzal442@aiwalter@angus924@juanitorduz@mloning@ngupta23

[0.5.0] - 2020-12-19#

添加#

更改#

固定#

已移除#

所有贡献者:@AaronX121@Afzal-Ind@AidenRushbrooke@HYang1996@MarcoGorelli@MatthewMiddlehurst@MichalChromcak@TonyBagnall@aiwalter@bmurdata@davidbp@gracewgao@magittan@mloning@ngupta23@patrickzib@raishubham1@tch@utsavcoding@vnmabus@vollmersj@whackteachers

[0.4.3] - 2020-10-20#

添加#

更改#

固定#

所有贡献者:@Emiliathewolf@alwinw@evanmiller29@kkoziara@krumeto@mloning@patrickzib

[0.4.2] - 2020-10-01#

添加#

固定#

更改#

所有贡献者: @HYang1996, @SebasKoel, @fkiraly, @akanz1, @alwinw, @big-o, @brettkoonce, @mloning, @patrickzib

[0.4.1] - 2020-07-09#

添加#

更改#

固定#

所有贡献者:@Ayushmaanseth@Mo-Saif@Pangoraw@marielledado@mloning@sophijka@Cheukting@MatthewMiddlehurst@Multivin12@ABostrom@HYang1996@BandaSaiTejaReddy@vedazeren@hiqbal2@btrtts

[0.4.0] - 2020-06-05#

添加#

  • 预测框架,包括:预测算法(预测器),用于构建复合模型的工具(元预测器),调优和模型评估

  • 所有估计器的持续单元测试

  • 一致的输入检查

  • 通过 flake8 强制执行 PEP8 代码检查

  • 更新日志

  • 对 Python 3.8 的支持

  • 支持 manylinux 轮子

更改#

  • 修订了所有估计器以符合通用接口,并确保与scikit-learn兼容

已移除#

  • 为支持 scikit-learn 的实现,针对序列作为特征的设置,提供了一些冗余的类:PipelineGridSearchCV

  • HomogeneousColumnEnsembleClassifier 更倾向于更灵活的 ColumnEnsembleClassifier

固定#

  • 来自 scikit-learn 的弃用和未来警告

  • statsmodels 的用户警告