更改日志#

格式基于 Keep a Changelog,我们遵循 Semantic Versioning

所有 版本 的源代码都可在 GitHub 上获取。

注意

要随时了解 sktime 版本更新,请在此订阅 sktime,或在 LinkedIn 上关注我们。

有关我们的长期计划,请参阅我们的路线图

版本 0.37.0 - 2025-04-12#

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

有关上次非维护内容更新,请参阅 0.36.1。

依赖项更改#

  • keras-self-attention(深度学习软依赖)不再是软依赖。该包已被放弃,现在已内置到 sktime 中。

核心接口更改#

现在可以直接使用 scikit-learn 估计器构建预测和转换管道,无需再用 TabularToSeriesAdaptor 进行包装。

行为与以前相同,但 TabularToSeriesAdaptor 现在是可选的。

弃用和移除#

预测#

  • 已弃用:handles-missing-data 标签已弃用并重命名为 capability:missing_values,以便与其他估计器类型保持一致。旧的标签名 handles-missing-data 可以使用到 1.0.0 版本,届时将被移除,但会触发弃用警告。

  • 已移除:已弃用的 HierarchyEnsembleForecaster.fitted_list 参数已移除。用户应改用 get_fitted_paramsforecasters_

时间序列异常、变点、分割#

  • 已移除:已弃用的 annotation 模块已移除。用户应将从 sktime.annotation 导入改为从 sktime.detection 导入。

  • 已移除:检测器方法中已弃用的 Y 参数已移除。用户应改用 y 参数。

改进#

BaseObject 和基础框架#

  • [改进] _safe_import 允许从多个模拟类进行多重继承 (#8061) @fkiraly

数据类型、检查、转换#

  • [改进] 重构 datatypes 注册表到 scikit-base 记录 (#7816) @fkiraly

预测#

  • [改进] 移除预测器中意外的 univariate-only 标签 (#8180) @fkiraly

  • [改进] 开始将 handles-missing-data 标签重命名为 capability:missing_values (#7917) @fkiraly

  • [改进] 在显式预测管道规范语法中自动进行变换器强制类型转换 (#8153) @fkiraly

变换#

  • [改进] 在显式变换器管道规范语法中自动进行变换器强制类型转换 (#8160) @fkiraly

维护#

  • [维护] 0.37.0 弃用和更改操作 (#8148) @fkiraly

  • [维护] 跳过一些已知失败的测试 (#8152) @fkiraly

  • [维护] 文档字符串示例修复和测试跳过 (#8159) @fkiraly

  • [维护] 暂时跳过 SCINetForecaster (#8171) @fkiraly

  • [维护] 从 all_extras_pandas2 依赖项集合中移除 tsbootstrap 软依赖 (#8174) @fkiraly

  • [维护] 内置已弃用的 keras-self-attention 库 (#8155) @fkiraly

  • [维护] 跳过使用 ray 并行化夹具的测试 (#8188) @fkiraly

  • [维护] 由于与 pandas 1 不兼容,跳过 VECM doctest (#8187) @fkiraly

修复#

  • [Bug] 修复在检测到两种或多种类型时 coerce_to_list=Falseforce_single_scitype=False 情况下的 scitype 返回 (#8133) @fkiraly

  • [Bug] 如果在 _safe_import 中引发异常,则停止导入模块 (#8182) @jgyasu

贡献者#

@fkiraly, @jgyasu

版本 0.36.1 - 2025-04-04#

亮点#

依赖项更改#

  • tensorflow(深度学习软依赖)的边界已更新为 <2.20

  • dask(数据容器和并行化后端软依赖)的边界已更新为 <2025.2.1,>2024.8.2

  • ray 现在是一个软依赖(并行化后端)

核心接口更改#

  • 所有原生并行化位置现在都接受 "ray" 作为并行化后端,例如

    预测参数调优,或通过 set_config 进行分层并行化

  • ForecastingBenchmark 已重做

    • 接受 sktime 内存数据格式和数据集加载器

    • 为基准测试输出提供不同的处理程序,包括 jsoncsvparquet

    • 支持全局预测器

改进#

BaseObject 和基础框架#

  • [改进] 添加工具 _safe_import 用于编程方式的软依赖隔离 (#7702) @jgyasu

  • [改进] 用于安全地向未知签名函数传递参数的私有工具 (#7766) @fkiraly

  • [改进] 扩展 _check_soft_dependencies 以允许依赖项析取 (#7943) @fkiraly

  • [改进] 重构 scitype 检测逻辑和元估计器克隆逻辑,以包含 sklearn 估计器类型 (#8131) @fkiraly

基准测试、度量、拆分器#

数据集和数据加载器#

  • [改进] 数据集的加载器函数返回具有数值 dtypey (#7588) @vedantag17

预测#

  • [改进] STLForecaster - 添加方法 plot_components (#6423) @ericjb

  • [改进] 来自 statsforecastADIDA 间歇性预测器 (#7754) @vedantag17

  • [改进] 在 GroupByCategoryForecaster 和文档字符串中添加聚类器用法 (#7782) @fkiraly

  • [改进] 在 ChronosForecaster 中实现对 chronos-bolt 的支持 (#7718) @PranavBhatP

  • [改进] HierarchyEnsembleForecaster 并行化后端 (#7954) @LHoelper

  • [改进] 提高 DirectReductionForecasterRecursiveReductionForecaster 的方法测试覆盖率 (#7770) @PranavBhatP

  • [改进] reducer - 微小的代码清晰度重构 (#7556) @fkiraly

  • [改进] 添加 TinyTimeMixerForecasterfit_strategy (#7648) @Sohaib-Ahmed21

  • [改进] TimeLLM 用于预测(内置) (#7663) @jgyasu

  • [改进] 使 HF Transformers Forecaster 能够以对象形式传递模型 (#7689) @Spinachboul

  • [改进] ES-RNN 预测器 (#7772) @Ankit-1204

  • [改进] 将朴素预测器移动到单独的文件夹 (#8067) @fkiraly

  • [改进] TimeMoE 预测器(内置) (#7869) @PranavBhatP

参数估计#

  • [改进] 扩展了在 fit 中包含 y 的参数估计器基类 (#7737) @satvshr

  • [改进] 在套件测试中测试参数估计器 update 方法 (#7952) @fkiraly

测试框架#

  • [改进] 测试用例以确保如果未更新 EXCLUDED_TESTS_BY_TEST 则抛出 AssertionError (#7622) @satvshr

  • [改进] 修复 HFTransformersForecastertest_excluded_tests_by_test (#7882) @fkiraly

  • [改进] 改进 test_excluded_tests_by_test 中的条件和错误消息 (#7904) @fkiraly

  • [改进] 如果核心框架模块发生更改,则触发差异测试 (#7923) @fkiraly

  • [改进] 添加一些缺少的差异测试跳过 (#8004) @fkiraly

  • [改进] 如果 raise_exceptions=True,则 check_estimator 会详细输出通过和失败的测试 (#8047) @fkiraly

  • [改进] 在 TestAllEstimators 中处理 BaseForecaster.predict_probaskpro 依赖项 (#8023) @fkiraly

  • [改进] tests._config 中微小的 linting 修复 (#7912) @fkiraly

  • [改进] 放宽 Panel-To-Panel 变换以允许更改实例数量 (#7991) @felipeangelimvieira

  • [改进] 捕获 test_fit_idempotent predict_proba 软依赖错误 (#8076) @fkiraly

时间序列异常、变点、分割#

  • [改进] 基于 QuoVadisTAD 的时间序列 AUPRC 异常检测度量 (#7729) @Ankit-1024

变换#

  • [改进] MiniRocket 的参数集 (#7814) @Bergschaf

  • [改进] 向 Rocket 估计器添加了测试参数 (#7813) @fkiraly

  • [改进] 通过变换器 SeasonalDummies 添加季节虚拟变量特征(用于季节性分类变量的独热编码) (#7915) @ericjb

  • [改进] repeater bootstrap (#5854) @fkiraly

  • [改进] 使用 RBFLayerRBFTransformer 中进行变换,并将 RBFLayerRBFNetwork 移动到 networks (#7730) @phoeenniixx

  • [改进] 在卡尔曼滤波器单元测试中使用有效的协方差矩阵 (#8029) @oseiskar

  • [改进] 将卡尔曼滤波器变换器移动到文件夹模块中 (#8066) @fkiraly

  • [改进] 添加基于 simdkalman 的 Series 和 Panel 变换器 (#8030) @oseiskar

  • [改进] 允许 Merger 在分层输入上工作 (#8071) @wilsbj

文档#

维护#

  • [维护] 从 EXCLUDED_TESTS_BY_TEST 列表中移除 MiniRocket 以修复 CI 失败 (#7860) @satvshr

  • [维护] 向模板添加 LLM 提示 (#7851) @felipeangelimvieira

  • [维护] 避免跳过几个预测器的单元测试 (#7826) @yarnabrina

  • [维护] 暂时跳过 MACNNClassifier 失败的测试 (#7959) @fkiraly

  • [维护] 暂时跳过 MCDCNNClassifier 失败的测试 (#7960) @fkiraly

  • [维护] 移除 tj-actions (#7989) @fkiraly

  • [维护] 将发布转移到受信任的发布者 (#7990) @fkiraly

  • [维护] 由于超时暂时跳过 VARMAX 测试 (#7986) @fkiraly

  • [维护] 在估计器内部隔离 pykan 导入 (#6885) @fkiraly

  • [维护] 暂时跳过 pytorch-forecasting 测试,直到解决 #7997 (#7998) @fkiraly

  • [维护] 更新 pre-commit 钩子并在所有文件上运行所有钩子 (#7996) @yarnabrina

  • [维护] 暂时跳过 STDBSCAN 聚类器 (#8024) @fkiraly

  • [维护] 对于 TSFreshFeatureExtractor,移除 scipy 的上限,设置 tsfresh 的下限 (#7847) @benHeid

  • [维护] 对 test_kalman_filter 进行 lint 检查 (#8054) @fkiraly

  • [维护] 提高 pytorch-forecasting 上限 (#7783) @fkiraly

  • [维护] 更新 pyproject.toml 以在 python 3.12 之前安装 tensorflow (#7865) @Reckadon

  • [维护] 从 BaseObject 中移除 numpy 2 依赖处理程序 (#7955) @fkiraly

  • [维护] 处理 numpy 数组赋值弃用 (#7919) @fkiraly

  • [维护] 处理一些 pandas 弃用警告 (#7866) @fkiraly

  • [维护] 暂时跳过 DistanceFeatures 直到修复已知故障 (#8078) @fkiraly

  • [维护] 暂时跳过 TimeSeriesKvisibility 直到修复已知故障 (#8079) @fkiraly

  • [维护] 从 EXCLUDED_TESTS_BY_TEST 列表中移除 MiniRocket 以修复 CI 失败 (#7860) @satvshr

  • [维护] 暂时跳过 pytorch-forecasting 测试,直到解决 #7997 (#7998) @fkiraly

  • [维护] 从单元测试中暂时移除 RecursiveReductionForecaster (#8081) @felipeangelimvieira

  • [维护] 在 test_multiprocessing_idempotent 中跳过早期分类器 TEASER (#8085) @fkiraly

  • [维护] 暂时跳过 test_transformation_can_return_new_instances 直到解决 #8084 (#8086) @fkiraly

  • [维护] 由于依赖解析失败,从 3.13 依赖集中移除 dask (#8101) @fkiraly

  • [维护] 从 test_check_estimator 中移除调试行 (#8104) @felipeangelimvieira

  • [维护] 更新 PyKANForecaster 依赖集 (#8109) @fkiraly

  • [维护] 移除 CNTCRegressor 参数测试跳过 (#8122) @fkiraly

  • [维护] 阻止在 python 3.13 和 macOS 上安装 torch (#8143) @fkiraly

  • [维护] 将 tensorflow 上限提高到 <2.20 (#8119) @fkiraly

  • [维护] 将 dask 版本更新到 dask<2025.2.1,>2024.8.2 (#8083) @fkiraly

  • [维护] [Dependabot](deps): 将 sphinx-gallery 要求从 <0.19.0 更新到 <0.20.0 (#7819) @dependabot[bot]

  • [维护] [Dependabot](deps): 将 dask 要求从 <2024.8.1 更新到 <2025.2.1 (#7857) @dependabot[bot]

修复#

BaseObject 和基础框架#

  • [Bug] 修复 _safe_import 并添加测试 (#7888) @jgyasu

  • [Bug] 用于抑制 pandas 2.2 警告的更安全的上下文管理器 (#7910) @fkiraly

  • [Bug] 修复 _check_estimator_deps 在析取情况下的问题 (#8025) @fkiraly

数据集和数据加载器#

  • [Bug] 向 load_forecastingdata 添加缺失的频率 (#7575) @benHeid

  • [Bug] 修复 load_fpp3,使用备用 URL 以避免 CRAN URL 更改导致的失败 (#7799) @ericjb

数据类型、检查、转换#

  • [Bug] 将 Series-pd.DataFrame 转换为 Series-pd.Series 时,现在在 pd.Series 中保留原始列名作为属性名 (#7762) @ericjb

  • [Bug] 修复 datatypes.alignmentcheck_align 的解包错误 (#7821) @geetu040

预测#

  • [Bug] 修复 BaggingForecaster.predict_proba (#7791) @fkiraly

  • [Bug] 修复 EnsembleForecaster 的 (str, forecaster, count) 参数化问题 (#7785) @fkiraly

  • [Bug] 修复 statsmodels 适配器中用于 pd.Series 的变量名问题 (#7832) @fkiraly

  • [Bug] 当所有测试被触发时,test_get_test_params_coverage 会抛出错误 (#7878) @satvshr

  • [Bug] 修复 RecursiveReductionForecaster 导致 test_hierarchical_with_exogeneous 失败的问题 (#7927) @felipeangelimvieira

  • [Bug] 针对 pandas 时间序列往返转换的临时修复 (#7925) @fkiraly

  • [Bug] 确保 statsforecast 适配器跟踪已训练的预测器 (#7983) @yarnabrina

  • [Bug] 修复 HierarchyEnsembleForecaster 测试失败的问题 (#7992) @wilsbj

  • [Bug] 修复 _HeterogenousEnsembleForecaster 参数检查问题 (#7984) @fkiraly

  • [Bug] 修复 _HeterogenousMetaForecasterforecasters_ 的处理问题 (#8020) @fkiraly

  • [Bug] 在 HierarchicalProphet 中使用 _DelegatedForecaster,并为 prophetverse 版本添加上限 (#7980) @felipeangelimvieira

  • [Bug] MAPA 预测器 - 缺少克隆,使用外部数据 (#7872) @satvshr

  • [Bug] 修复 fh.to_absolute 中的时间戳格式变化问题 (#7914, #8110) @XinyuWuu

  • [Bug] 修复 NaiveForecaster 中的 freq 丢失问题 (#8091) @XinyuWuu

参数估计#

  • [Bug] 修复参数估计器缺少单变量场景和隐藏的 bug (#7932) @fkiraly

测试框架#

  • [Bug] 修复由于 pytest 继承 bug 导致的 TestAllForecasters 测试集合失败问题 (#7789) @yarnabrina

  • [Bug] 修复 check_estimatorTestAllGlobalForecasters 的集成问题 (#7800) @fkiraly, @sohaib-ahmed21

  • [Bug] 在测试中,处理 BaseForecaster.predict_probaskpro 的软依赖 (#7981) @fkiraly

  • [Bug] 测试工具 retrieve_scenarios 应该为预测器、聚类器和分类器选择场景 (#7971) @wilsbj

  • [Bug] 捕获 test_fit_idempotent predict_proba 软依赖错误 - 二次修复 (#8080) @fkiraly

  • [Bug] 确保 test_doctest_examples 正确检查 doctests (#8065) @fkiraly

时间序列异常、变点、分割#

  • [Bug] BaseDetector - segments_to_change_points 的文档字符串和测试不正确 (#7640) @satvshr

时间序列分类#

  • [Bug] 修复 ProximityStump 和 WDTW 中偶发的越界错误 (#7836) @fkiraly

  • [Bug] 暂时跳过 RocketClassifier 预期输出测试直到解决 (#7922) @fkiraly

  • [Bug] 修复 MACNNClassifier 测试中的序列化错误 (#8057) @benHeid

时间序列聚类#

  • [Bug] TimeSeriesKVisibility - 修复缺失的 python_dependencies 标签 (#7972) @fkiraly

  • [Bug] 修复 TestAllClusterers 中损坏的聚类测试 (#7977) @fkiraly

  • [Bug] 修复 SklearnClustererPipelineTimeSeriesDBSCANClustererPipeline 的测试失败问题 (#8028) @wilsbj

时间序列回归#

转换#

  • [Bug] sklearn 1.6.XTabularToSeriesAdaptor 的兼容性 - 在 adapt.py 中通过 requires_fit 处理 stateless 标签 (#7845) @benHeid

  • [Bug] 修复 SummaryTransformer_SuppressWarningPatternLossySetitemError 的无限递归问题 (#7903) @celestinoxp

  • [Bug] 修复 Series-to-Primitives 转换器对分层数据的输出索引问题 (#8037) @fkiraly

  • [Bug] 在 ClustererAsTransformer 中处理分层 mtype (#8013) @felipeangelimvieira

  • [Bug] 传递给 ClustererAsTransformer 的分层数据失败 (#8053) @wilsbj

  • [Bug] 修复分层转换的预期输出长度测试 (#8069) @fkiraly

  • [Bug] 使 _TransformChangeNInstances 能够处理分层测试场景 (#8092) @felipeangelimvieira

  • [Bug] 正确处理 ColumnConcatenator 中的分层输入类型 (#8070) @wilsbj

内置库: vmdpy#

贡献者#

@amitsubhashchejara, @Ankit-1204, @benHeid, @Bergschaf, @celestinoxp, @danferns, @ericjb, @felipeangelimvieira, @fkiraly, @geetu040, @haroon0x, @hazrulakmal, @itsbharatj, @jgyasu, @LHoelper, @LorchZachery, @oseiskar, @phoeenniixx, @PranavBhatP, @Reckadon, @satvshr, @Sohaib-Ahmed21, @Spinachboul, @tapyu, @TomatoChocolate12, @Utkarsh-Aggarwal, @vedantag17, @wilsbj, @XinyuWuu, @yarnabrina

版本 0.36.0 - 2025-02-03#

维护版本,包含预定的版本边界更新。

上次非维护内容更新,请参阅 0.35.1。

依赖项变更#

  • numpy(核心依赖项)的边界已更新至 <2.3.0

  • scikit-learn(核心依赖项)的边界已更新至 <1.7.0

内容#

版本 0.35.1 - 2025-02-02#

亮点#

依赖项变更#

  • skpro(概率分布软依赖)的范围已更新为 >=2,<2.10.0

  • numba(计算软依赖)的范围已更新为 <0.62

  • optuna(超参数优化软依赖)的范围已更新为 <4.3

  • pykan(预测软依赖)的范围已更新为 >=0.2.1,<0.2.9

  • dask(数据容器和并行化后端软依赖)的范围已更新为 <2025.1.1

核心接口变更#

数据集和数据加载器#

  • 针对数据集和数据加载器引入了统一的 API,

遵循 scikit-base 模式。所有数据加载器现在都提供了统一的 load 方法,以及用于检索的 keys 和 tags 等进一步统一的 API 入口点。更多详细信息请参阅 数据集 参考。

预测#

  • 所有预测指标现在都可以通过 by_index=True 参数进行构建。

这将直接调用返回每个时间索引的指标。这等同于调用 evaluate_by_index 方法。by_index=False 是默认值,并像当前一样调度到指标的 evaluate 方法。

弃用和移除#

HierarchyEnsembleForecaster 中,fitted_list 属性已被弃用。要访问已拟合的估计器,用户应转而使用 get_fitted_params 方法或 forecasters_ 属性。给定一个已拟合的实例 f,对 f.fitted_list 的已弃用读取调用可以替换为 f.get_fitted_params()['forecasters']f.forecasters_

改进#

BaseObject 和基础框架#

  • [ENH] 估计器的 HTML 显示 - 在 HeterogenousMetaEstimator 后代中通过 _steps_attr 进行标签和一致处理 (#7233) @mateuszkasprowicz

  • [ENH] 将依赖检查器与 scikit-base 同步 (#7529) @fkiraly

基准测试、指标、拆分器#

  • [ENH] 检测指标的基础设计 (#7515) @fkiraly

  • [ENH] 将 InstanceSplitter 重构为一个实用工具 apply_split,用于将 sklearn 拆分应用于时间序列集合 (#7330) @ksharma6

  • [ENH] 检测指标 - 在样板中强制转换为检测类型 (#7546) @fkiraly

  • [ENH] 减少预测指标输入检查中请求的元数据 (#7514) @fkiraly

  • [ENH] 将 evaluate 参数暴露给预测基准测试的 add_task 方法 (#7574) @benHeid

  • [ENH] 为 MedianSquaredError 实现高效的 _evaluate_by_index 方法 (#7615) @satvshr

  • [ENH] 用于时间序列分割的 RAND Index 指标 (#7533) @gavinkatz001

  • [ENH] 预测 evaluate: 新增 return_model 参数以返回已拟合估计器的状态 (#7637) @marrov

  • [ENH] 用于检测的窗口式 F1 分数 (#7628) @gavinkatz001

  • [ENH] 为 MdAPE 实现高效的 _evaluate_by_index 方法 (#7606) @HarshvirSandhu

  • [ENH] 预测指标的 __call__ 方法调度到 evaluateevaluate_by_index (#7608) @benHeid

数据集和数据加载器#

数据类型、检查、转换#

  • [ENH] 移除 gluonts_ListDataset_panel mtype 中的 gluonts dependency (#7558) @PranavBhatP

  • [ENH] 数据类型:提前检查 python 类型和主机模块以提高性能和依赖隔离 (#7736) @fkiraly

  • [ENH] 将 AlignmentProba 数据类型重构为 scikit-base 记录 (#7739) @fkiraly

预测#

参数估计和假设检验#

注册表和搜索#

  • [ENH] 将 all_estimators 的检索更改为完全基于标签 (#7555) @fkiraly

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

  • [ENH] 检测模块重做 - 填充作者和维护者标签 (#7510) @fkiraly

  • [ENH] 修复用于分割和 HMM 估计器的 BaseDetector (#7480) @y-mx, @fkiraly

  • [ENH] 将检测器输出的检查重构到单独的模块中 (#7542) @fkiraly

  • [ENH] 检测基类的输入检查和转换 (#7577) @fkiraly

  • [ENH] 针对新检测接口修复 ClaSPSegmentation (#7585) @fkiraly

  • [ENH] 针对新检测接口修复 PyODDetector (#7584) @fkiraly

  • [ENH] 通过聚类实现的基于窗口的时间序列分割 (#7612) @Ankit-1204

  • [ENH] 针对新检测接口修复 BinarySegmentation (#7504) @Alex-JG3

  • [ENH] 针对新检测接口修复 GreedyGaussianSegmentation (#7472) @Spinachboul

时间序列分类#

时间序列聚类#

  • [ENH] 改进聚类器基类和测试 (#7665) @fkiraly

  • [ENH] K-可见性聚类算法 (#7592) @seigpe

  • [ENH] 聚类器:在 capability:out_of_sample = False 的情况下,改进对 fitpredictX 的检查,对 predict_proba 默认值进行微小改进 (#7593) @fkiraly

转换#

测试框架#

文档#

  • [DOC] 将贡献者 Gavin Katz 添加到 .all-contributorsrc 文件中 (#7513) @gavinkatz001

  • [DOC] 在 InceptionTimeClassifier 的 docstring 中添加注释以修复 #7453 (#7508) @skinan

  • [DOC] 修复 transformation.rst 中的一些拼写错误 (#7520) @phoeenniixx

  • [DOC] 为 AlignerDTWAlignerDTWfromDist 提供 docstring 使用示例 (#7381) @Adarsh2345

  • [DOC] SeriesXarray mtype 的 API 参考文档 (#7494) @SABARNO-PRAMANICK

  • [DOC] 在各种时间序列分类器中为 hfawaz 和 dl-4-tsc 添加适当的致谢 (#7518) @fkiraly

  • [DOC] TablePdDataFrameTablePdSeries mtypes 的 API 规范 docstrings (#7540) @VjayRam

  • [DOC] mtype PanelGluontsList 的 API 参考 (#7539) @b9junkers

  • [DOC] 文档化新的 visual_block_kind 标签 (#7524) @fkiraly

  • [DOC] TableNp1D mtype 的 API 参考 (#7553) @RUPESH-KUMAR01

  • [DOC] 为 `/transformations/panel/catch22.py` 中的函数添加缺失的 docstring (#7527) @PranavBhatP

  • [DOC] 添加了 TableNp2d 和 TableListOfDict 类的 docstrings (#7563) @VjayRam

  • [DOC] 对 hf_transformers_forecaster 进行微小的格式改进 (#7659) @fkiraly

  • [DOC] 更新 sameloc 拆分器的 docstring,包含适当的数学描述 (#7550) @keitaVigano

  • [DOC] AutoREG docstring 包含不存在的参数 #7653 (#7654) @cheachu

  • [DOC] 数据加载器文档的微小改进 (#7633) @fkiraly

  • [DOC] 修复了与最近合并的 PR #7666 相关的 TablePolarsEager 渲染问题 (#7699) @fnhirwa

  • [DOC] 改进了发布管理器指南的格式和清晰度 (#7705) @fkiraly

  • [DOC] 改进了 git 工作流程指南,关于避免 rebase 的说明 (#7670) @fkiraly

  • [DOC] 检测指标的 API 参考 (#7722) @fkiraly

  • [DOC] 改进了 grouped/clustering 预测器合成器的 docstring (#7709) @fkiraly

  • [DOC] 在教程中添加处理多元数据的新模式 (#7362) @PranavBhatP

  • [DOC] 更新 NoaWegerhoff 的 GitHub 名称 (#7682) @fkiraly

  • [DOC] 修复文档示例代码中需要双括号切片 dataframe 的拼写错误。DeepAR (#7641) @gbilleyPeco

  • [DOC] 修复添加估计器文档中的拼写错误 (#7519) @jgyasu

  • [DOC] 修复 #7623 无效链接 (#7625) @jgyasu

  • [DOC] 添加了 TablePolarsEager 的描述 (#7666) @RHYTHM2405

  • [DOC] 修复 sktime 网站上指向 elections 仓库的无效链接 (#7631) @tanvincible

  • [DOC] 修复文档示例代码中需要双括号切片 dataframe 的拼写错误。 (#7639) @gbilleyPeco

  • [DOC] 更新 ttm docstring 以说明零样本/微调 (#7280) @geetu040

维护#

修复#

BaseObject 和基础框架#

  • [BUG] 接受预发布版本作为有效的 python 版本 (#7544) @Abelarm

预测#

  • [BUG] 修复 _HeterogenousEnsembleForecaster 后代中 get_fitted_params 对包装的估计器的访问 (#7522) @fkiraly

  • [BUG] 修复在 RecursiveReductionForecaster 中使用 Imputer 的问题 (#7706) @Salzemann

神经网络#

注册表和搜索#

  • [BUG] 修复错误检索回退 Normal 分布的问题 (#7720) @fkiraly

  • [BUG] 修复在使用非 scitype 特定标签时 all_estimators 查找的问题 (#7679) @fkiraly

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

时间序列分类#

  • [BUG] 在 shapelet 转换修复 #7499 后,修复 ShapeletTransformClassifier 的预期输出测试 (#7734) @fkiraly

  • [BUG] 修复 MACNNClassifier, MACNNRegressor 中的错误 (#7651) @KrishBakshi

转换#

  • [BUG] 修复 _online_shapelet_distance 标准差计算中的不一致问题 (#7499) @fnhirwa

  • [BUG] TSFreshFeatureExtractorTSFreshRelevantFeatureExtractor: 修复 distributor 未传递给 extract_features 的问题 (#7541) @marcosfelt

  • [BUG] 在转换器中,如果 scitype 不匹配,不要将 y 传递给内部方法 (#7733) @fkiraly

贡献者#

@Abelarm, @abhishek-iitmadras, @Adarsh2345, @Alex-JG3, @Ankit-1204, @b9junkers, @benHeid, @cheachu, @Dehelaan, @felipeangelimvieira, @fkiraly, @fnhirwa, @gavinkatz001, @gbilleyPeco, @geetu040, @HarshvirSandhu, @jgyasu, @keitaVigano, @KrishBakshi, @ksharma6, @lenaklosik, @marcosfelt, @marrov, @mateuszkasprowicz, @phoeenniixx, @PranavBhatP, @RHYTHM2405, @RUPESH-KUMAR01, @SABARNO-PRAMANICK, @Salzemann, @sanskarmodi8, @satvshr, @seigpe, @skinan, @Spinachboul, @tanvincible, @VjayRam, @y-mx, @yarnabrina

版本 0.35.0 - 2024-12-09#

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

上一个非维护性内容更新请参阅 0.34.1。

依赖变更#

  • scikit-base 的范围已更新为 >=0.6.1,<0.13.0

  • skpro(概率分布软依赖)的范围已更新为 >=2,<2.9.0

弃用和移除#

  • sktime 0.38.0 开始,预测器的 predict_proba 将需要 Python 环境中存在 skpro,以便分布对象表示分布预测。自 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` 的导入。

  • 在面向 neuralforecast 的估计器接口中,broadcasting 参数的默认值已一致更改为 False

维护#

贡献者#

@fkiraly, @fnhirwa, @yarnabrina

Version 0.34.1 - 2024-11-29#

亮点#

依赖项变更#

  • dask(数据容器和并行化后端软依赖项)的边界已更新至 <2024.11.3

核心接口变更#

预测#

预测指标现在允许将可调用对象作为 sample_weight 传递,用于动态权重生成。文档字符串中记录了可调用对象需要满足的精确契约。

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

时间序列探测器的核心 API 已更改,并与 skchange 的 API 同质化。

这些变更在某些方面是破坏性的,需要用户代码进行调整。这些变更对于确保时间序列探测器 API 的一致性是必要的。

  • BaseDetector.predict 现在返回一个 pd.DataFrame。这个 DataFrame 始终有一个 RangeIndex,其中各个行对应于各个事件。该 DataFrame 至少有一个列 "ilocs",其中包含检测到的事件的整数索引,参考传递给 predict 的参数 X。条目的格式可以是单个整数,也可以是一个左闭合的整数 pd.Interval,表示单个点或一段点。

  • 在标记事件的情况下,可能会出现一个额外的列 "labels"

  • BaseDetector.predict_pointspredict_segments 现在也返回 pd.DataFrame,格式与 predict 相同,不同之处在于 predict_points 将检测到的事件强制转换为点,将段的起点和终点视为单独的点。predict_segments 将检测到的事件强制转换为段,可能是单索引段。

  • BaseDetector.transform 现在始终返回一个 pd.DataFrame,其中至少包含一列 "transform",其中包含转换后的时间序列。

增强功能#

BaseObject 和基础框架#

  • [ENH] 重构 _check_estimator_types 以使用记录类接口 (#7395) @fkiraly

  • [ENH] _HeterogenousMetaEstimator._check_estimatorskbase 的一致性以及 EnsembleForecaster.__init__ 中的修复 (#7429) @fkiraly

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

预测#

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

  • [ENH] STRAY 的测试参数集 (#7420) @tajir0

  • [ENH] 添加 _transform_score 模板并从探测器中移除已失效的 fmt 相关代码 (#7425) @ShivamJ07

  • [ENH] sktime 和 skchange 检测 API 同质化 - 基础类 predict 返回类型 (#7433) @alyssadsouza

  • [ENH] 将私有 make_annotation_problem 重命名为 make_detection_problem (#7436) @fkiraly

  • [ENH] BaseDetector 的小改进 (#7435) @fkiraly

  • [ENH] 将探测器非 suite 测试移动到 detection 文件夹 (#7445) @fkiraly

  • [ENH] sktimeskchange 检测 API 同质化 - 第一部分 - 基础类和 y 参数 (#7342) @fkiraly

  • [ENH] sktime 和 skchange 检测 API 同质化 - 第二部分 - 基础类 transform 返回类型 (#7432) @alyssadsouza

  • [ENH] 将探测器类移动到 detection 模块 (#7448) @fkiraly

  • [ENH] detection 模块中估计器特定测试的条件测试和导入 (#7446) @fkiraly

  • [ENH] 将探测器特定标签添加到标签注册表和标签 API 参考 (#7443) @liya-zhu

  • [ENH] 探测器 dummy (#7440) @fkiraly

  • [ENH] 将 scitype 名称 "series-annotator" 更改为 "detector" (#7361) @jgyfutub

  • [ENH] sktimeskchange 检测 API 同质化 - 基础类 predict_scores 返回类型 (#7460) @alyssadsouza

  • [ENH] sktimeskchange 检测 API 同质化 - 基础类 predict_points 返回类型 (#7459) @alyssadsouza

  • [ENH] skchangeCapa 重命名为 CAPA (#7457) @fkiraly

  • [ENH] 将探测器测试移动到 detection 模块 (#7455, #7464) @fkiraly

  • [ENH] 重命名探测器 suite 测试 (#7465) @fkiraly

  • [ENH] 修复 SubLOF 探测器的 API 不兼容性 (#7468) @fkiraly

  • [ENH] 添加 skchange 变化点探测器作为占位符记录 (#7458) @ShivamJ07, @fkiraly

  • [ENH] 添加 skchange 段异常探测器的占位符记录 (#7470) @fkiraly

  • [ENH] 更新 DetectorPipelineDetectorAsTransformer 内部调用和文档字符串 (#7475) @fkiraly

  • [ENH] sktime 和 skchange 检测 API 同质化 - predict, predict_points, predict_segments (#7476) @fkiraly

时间序列分类#

  • [ENH] Arsenal 分类器的第二个测试参数 (#7335) @jusssch

时间序列聚类#

时间序列回归#

  • [ENH] ComposableTimeSeriesForestRegressor 的测试参数集 (#7431) @Dehelaan

转换#

测试框架#

  • [ENH] detection 模块 suite 测试方法的覆盖扩展 (#6958) @Alex-JG3

文档#

维护#

修复#

预测#

  • [BUG] 修正 Croston 中的 ignores-exogeneous-X 标签值 (#7404) @yarnabrina

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

  • [BUG] 修复 BaseDetector 在未检测到点的情况下的方法 (#7439) @fkiraly

  • [BUG] 确保 BaseDetector.transform 使用 iloc 索引 (#7444) @fkiraly

  • [BUG] 修复 BaseDetector.change_points_to_segments (#7452) @fkiraly

时间序列分类#

时间序列聚类#

时间序列回归#

测试框架#

  • [BUG] 修复 check_estimator 测试失败的情况 (#7430) @fkiraly

贡献者#

@Akhsuna07, @Alex-JG3, @alyssadsouza, @Dehelaan, @ericjb, @fkiraly, @gavinkatz001, @geetu040, @hudsonhoch, @jgyfutub, @julian-fong, @jusssch, @keitaVigano, @liya-zhu, @manolotis, @MarkusSagen, @medha-14, @mjste, @pranavvp16, @sanskarmodi8, @ShivamJ07, @Sohaib-Ahmed21, @SSROCKS30, @tajir0, @talat-khattatov, @vagechirkov, @VectorNd, @yarnabrina

Version 0.34.0 - 2024-10-19#

维护版本

  • 完全支持 python 3.13

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

对于上次非维护的内容更新,请参阅 0.33.2。

依赖项变更#

  • numpy 的边界已更新至 >=1.21,<2.2

  • scikit-base 的边界已更新至 >=0.6.1,<0.12.0

  • holidays(转换软依赖项)的边界已更新至 >=0.29,<0.59

弃用和移除#

  • annotation 模块将重命名为 detection,从 0.34.0 开始。为了确保导入的向下兼容性,直到不早于 0.37.0 或 1.0.0 的未来版本,该模块将同时在两个名称下可用。

  • annotation 软依赖项集将重命名为 detection。为了确保导入的向下兼容性,annotation 软依赖项集将可用直到不早于 0.37.0 或 1.0.0 的未来版本。

维护#

  • [维护] 在 pyproject.toml 和 CI 中支持 python 3.13 (#7198) @fkiraly

  • [维护] 为 prophet 禁用 numpy<2 界限 (#6740) @fkiraly

  • [维护] 0.34.0 版本弃用和变更操作 (#7302) @fkiraly

  • [维护] 准备将 annotation 模块重命名为 detection - 映射导入 (#7294) @fkiraly

  • [维护] 去重 sktimeskbaseBaseEstimator (#7213) @fkiraly

  • [维护] [Dependabot](依赖): 将 numpy 要求从 <2.1,>=1.21 更新到 >=1.21,<2.2 (#7103) @dependabot[bot]

  • [维护] [Dependabot](依赖): 将 scikit-base 要求从 <0.9.0,>=0.6.1 更新到 >=0.6.1,<0.12.0 (#7238) @dependabot[bot]

  • [维护] [Dependabot](依赖): 将 holidays 要求从 <0.55,>=0.29 更新到 >=0.29,<0.59 (#7308) @dependabot[bot]

  • [维护] [Dependabot](依赖): 将 sphinx-issues 要求从 <5.0.0 更新到 <6.0.0 (#7307) @dependabot[bot]

文档#

  • [文档] 将文档中对“annotation”的引用替换为“detection” (#7299) @fkiraly

  • [文档] 将 detection 教程中的导入更改为 detection 模块 (#7306) @fkiraly

版本 0.33.2 - 2024-10-17#

亮点#

依赖变更#

  • skpro (预测软依赖) 界限已更新到 >=2,<2.8.0

  • u8darts (预测软依赖) 界限已更新到 >=0.29.0,<0.32.0

  • dask (数据容器和并行化后端软依赖) 界限已更新到 <2024.10.1

核心接口变更#

用于概率预测的性能指标,对于区间和分位数回报,现在可以选择使用 alpha (分位数预测) 或 coverage (区间预测) 参数构建,例如 EmpiricalCoverage(coverage=0.7) 用于“名义区间覆盖率为 70% 时的经验覆盖率”。

这些用于基准测试或调优接口,在这些接口中提供了度量指标,但没有显式调用 predict_intervalpredict_quantiles

在这种情况下,调优器或基准测试工具将使用度量指标的参数,在该分位数 alpha 或区间 coverage 上进行调优。

例如,ForecastingGridSearchCV(fcst, cv, scoring=PinballLoss(alpha=[0.3, 0.7])),用于在分位数 0.3 和 0.7 上根据 pinball loss 对预测器 fcst 进行评分调优。

改进#

BaseObject 和基础框架#

  • [改进] 对象和估计器的版本标签 (#3629) @fkiraly

  • [改进] 添加测试,确保对象的 html repr 不会崩溃 (#7151) @fkiraly

  • [改进] 单例和多例 OOP 模式的装饰器 (#7203) @fkiraly

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

  • [改进] ExpandingSlidingWindowSplitter,在截止点从扩展窗口切换到滑动窗口 (#7193) @MarkusSagen

  • [改进] 为所有 pred_interval 类型的指标添加了 coverage 参数 (#7278) @talat-khattatov

数据类型、检查、转换#

  • [改进] 将 datatypes 模块重构为 scikit-base 类和数据记录 (#7161) @fkiraly

  • [改进] 修复对象类型为 polars.LazyFrame 时 polars PerformanceWarning 的问题 (#7221) @shivanshsinghal-22

预测#

  • [改进] 向 PolynomialTrendForecaster 添加了 predict_interval 方法 (#6424) @ericjb

  • [改进] 使用全局预测 API 为 pytorch-forecasting 模型进行分位数预测 (#6628) @XinyuWuu

  • [改进] NeuralForecast 接口的全局预测 API (#6666) @XinyuWuu

  • [改进] 测试全局预测器:减少 _make_hierarchical 中的观测数量以生成更短运行时间的测试数据 (#6948) @julian-fong

  • [改进] Chronos (零样本) 基础模型预测器接口 (#7001) @Z-Fran, @geetu040, @benHeid, @rigvedmanoj

  • [改进] 在 ThetaLinesTransformer 中添加了 get_test_params 方法 (#7199) @Anuragwagh

  • [改进] 对重复使用情况缓存 timesfm 实例 (#7204) @fkiraly

  • [改进] 将概率预测的默认调度逻辑重构到 mixin 类 (#7230) @fkiraly

  • [改进] TimesFMForecaster 依赖现在取决于 use_source_package 参数 (#7212) @Prtm2110

  • [改进] python 3.13 兼容性 - SquaringResiduals (#7244) @fkiraly

注册和搜索#

时间序列分类#

转换#

  • [改进] HOG1D Transformer 为 get_test_params 添加新的测试参数集 (#7183) @Humorloos

  • [改进] 为 Filterget_test_params 添加了第二个参数示例 (#7178) @KarlKolibri

  • [改进] 时间径向基函数特征转换器 (#7261) @phoeenniixx

测试框架#

  • [改进] 组合模型中的 get_test_params 测试用例取决于软依赖,使用 _check_estimator_deps 进行检查 (#7225) @shivanshsinghal-22

文档#

  • [文档] 添加了 load-tecator 的引用 (#7171) @vedantag17

  • [文档] 为 HOG1DTransformer 添加示例 (#7180) @Humorloos

  • [文档] 为 PaddingTransformer 添加 docstring 示例 (#7179) @jan-mue

  • [文档] 为 HurstExponentTransformer 添加 docstring 示例 (#7185) @Dehelaan

  • [文档] 为 Filter 转换器添加 docstring 示例 (#7175) @fkiraly

  • [文档] 更清晰的安装说明 (#7206) @fkiraly

  • [文档] 将 MOIRAIforecaster 添加到 API 文档,创建新的预训练基础模型章节 (#7223) @Dehelaan

  • [文档] 改进了 k 近邻分类器和回归器的 docstrings (#7241) @fkiraly

  • [文档] SlidingWindowSplitter - 详细的数学描述 (#7195) @fkiraly

  • [文档] 来自 ODSC 2024 的异常和变化点检测笔记本 (#7284) @alex-jg3, @fkiraly

  • [文档] 修复了使用 sktime 和 ClaSP 的时间序列分割笔记本示例 (#7283) @RobotPsychologist

  • [文档] 修复了 README.md 中的细微语法错误 (#7262) @Smoothengineer

  • [文档] 在 ReverseAugmenter docstring 示例中添加了缺失的 import 语句 (#7265) @sanskarmodi8

  • [文档] 阐明预测方法中 fh 参数的解释方式 (#7227) @ericjb

维护#

  • [维护] 从 CI 中移除覆盖率上传步骤 (#7012) @Prtm2110

  • [维护] [Dependabot](依赖): 将 skpro 要求从 <2.6.0,>=2 更新到 >=2,<2.8.0 (#7245) @dependabot[bot]

  • [维护] [Dependabot](依赖): 将 sphinx-gallery 要求从 <0.18.0 更新到 <0.19.0 (#7264) @dependabot[bot]

  • [维护] [Dependabot](依赖): 将 u8darts 要求从 <0.31,>=0.29.0 更新到 >=0.29.0,<0.32 (#7272) @dependabot[bot]

  • [维护] [Dependabot](依赖): 将 dask 要求从 <2024.8.1 更新到 <2024.10.1 (#7292) @dependabot[bot]

修复#

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

  • [错误修复] 修复当 step_length > 1ExpandingCutoffSplitter 的问题 (#7290) @ninedigits

数据集和数据加载器#

  • [错误修复] 如果 rdata 未安装,则跳过测试 load_fpp3 (#7181) @jan-mue

数据类型、检查、转换#

  • [错误修复] 修复 dask_to_pd 模块中的 dask.dataframe 导入错误 (#7260) @sanskarmodi8

预测#

  • [错误修复] 修复 ForecastingHorizon.to_absolute 处理多个频率的问题 (#7172) @tianjiqx

  • [错误修复] 在 ReconcilerForecaster 中,修复所有策略的 return_totals 参数问题 (#7208) @SaiRevanth25

  • [错误修复] 修复 DartsLinearRegression 未给出警告而直接失败的问题 (#7235) @fnhirwa

  • [错误修复] 修复 Prophet 未被标记为 handles-missing-data 的问题 (#7267) @Garve

  • [错误修复] 修复 test_reconcilerforecaster_return_totals 中的奇异矩阵问题 (#7293) @fkiraly

贡献者#

@alex-jg3, @Anuragwagh, @benHeid, @Dehelaan, @ericjb, @fkiraly, @fnhirwa, @Garve, @geetu040, @Humorloos, @jan-mue, @julian-fong, @KarlKolibri, @MarkusSagen, @ninedigits, @phoeenniixx, @Prtm2110, @RobotPsychologist, @rigvedmanoj, @SaiRevanth25, @sanskarmodi8, @shivanshsinghal-22, @Smoothengineer, @talat-khattatov, @tianjiqx, @vedantag17, @XinyuWuu, @Z-Fran

版本 0.33.1 - 2024-09-26#

pydata 巴黎展示会的小型功能发布。

亮点#

依赖变更#

  • optuna (超参数优化软依赖) 界限已更新到 <4.1

  • mne (转换软依赖) 界限已更新到 >=1.5,<1.9

改进#

BaseObject 和基础框架#

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

数据类型、检查、转换#

  • [改进] 对 polars 的分层 sci类型支持 (#6697) @pranavvp16

  • [改进] 将 datatypes 示例 fixtures 重构为 BaseObject 类 (#7133) @fkiraly

预测#

  • [改进] 添加 MOIRAI 基础模型接口 (#6746) @pranavvp16, @benHeid

  • [改进] ThetaForecaster - 添加另一个参数集 (#7055) @fkiraly

  • [改进] GroupbyCategoryForecaster,用于按类别或片段应用面板预测 (#7066) @felipeangelimvieira

  • [改进] 为 ReconcilerForecaster 添加一个参数,以返回不包含双下划线级别 (dunder levels) 的 dataframe (#7127) @SaiRevanth25

  • [改进] 在 test_pred_int_tag 中添加 _predict_var (#7154) @fkiraly

注册和搜索#

  • [改进] 用于检索模块中所有函数或类的工具 (#7089) @fkiraly

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

转换#

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

文档#

维护#

  • [维护] 更新 pre-commit hooks 和相应的更改 (#7109) @yarnabrina

  • [维护] [Dependabot](依赖): 将 optuna 要求从 <3.7 更新到 <4.1 (#7104) @dependabot[bot]

  • [维护] [Dependabot](依赖): 将 mne 要求从 <1.8,>=1.5 更新到 >=1.5,<1.9 (#7129) @dependabot[bot]

  • [维护] 暂时跳过 temporian 相关的 test_complex_function 失败,直到 #7040 解决 (#7147) @fkiraly

  • [维护] 修复 FPP3 下载链接 (#7164) @fkiraly, @ericjb

  • [维护] 将 SignatureTransformer 界限为 numpy<2 (#7163) @fkiraly

  • [维护] 从示例笔记本中移除 ptf 安装 (#7165) @XinyuWuu

  • [维护] 从基于 pytorch-forecasting 的估计器中移除 python 版本界限 (#7102) @fkiraly

修复#

预测#

  • [错误修复] 修复 pykan 预测器 (#7150) @benHeid

  • [BUG] 修复概率预测,如果只实现了 _predict_var 是实现的 (#7153) @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] CRAN 上的 ffp3 数据集 URL 已更改;已相应更新 _fpp3_loaders.py (#7084) @ericjb

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

  • [MNT] [Dependabot](依赖项): 更新 dask 要求从 <2024.8.2<2024.8.3 (#7062) @dependabot[bot]

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

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

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

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

  • [MNT] [Dependabot](依赖项): 更新 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 选举相关的文档更新

核心接口变更#

  • 引入了 scitype 适配框架,允许通过类型强制将一种类型的估计器用于另一种类型的槽。该强制框架目前涵盖了 sklearnskprosktime 估计器,并且是可扩展的。提供了一个用户和开发人员的速记方式来进行此类强制转换,即 registry.coerce_scitype 函数,它分派到各个强制转换机制。

  • 可以强制将产生聚类分配的时间序列聚类器转换为变换,从而可以在变换的任何管道槽中使用它们。

  • 异常和变点检测器现在可以与变换组成管道,形成一个检测器。双下划线连接 transformer * detector 将默认为此行为。

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

增强功能#

BaseObject 和基础框架#

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

  • [ENH] scitype 强制转换和检查工具 (#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

数据类型、检查、转换#

预测#

时间序列聚类#

  • [ENH] 聚类器标签,表示分配聚类中心的能力 (#7018) @fkiraly

变换#

文档#

  • [DOC] 对 Bollinger (bands) docstring 的小改进 (#6978) @fkiraly

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

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

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

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

  • [DOC] 修复 TransformedTargetForecaster docstring 的问题 (#7002) @fkiraly

  • [DOC] 用 ISF 和 EuroSciPy 2024 的材料更新入门笔记本 (#7013) @fkiraly

  • [DOC] 修复 ExpandingCutoffSplitter 的 docstring (#7033) @ninedigits

  • [DOC] 修复 EnbPIForecaster docstring 中不正确的导入 (#7015) @fkiraly

维护#

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

  • [MNT] 将 changelog 与热修复分支 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](依赖项): 将 tj-actions/changed-files 从 44 提升到 45 (#7019) @dependabot[bot]

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

  • [MNT] [Dependabot](依赖项): 更新 dask 要求从 <2024.8.1<2024.8.2 (#7005) @dependabot[bot]

修复#

BaseObject 和基础框架#

  • [BUG] 修复 test_softdep_error 在环境标记标签不满足时的依赖项处理检查 (#6961) @fkiraly

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

基准测试和指标#

  • [BUG] 修复当数据加载器返回元组 (y, X) 时 ForecastingBenchmark 报错的问题 (#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] 修复非 sklearn 估计器的 make_reduction 类型推断问题

版本 0.32.0 - 2024-08-11#

维护版本,包含预定的弃用和变更操作。

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

依赖项变更#

  • skpro (软依赖项) 的边界已更新至 >=2,<2.6.0

  • skforecast (预测软依赖项) 的边界已更新至 <0.14.0

核心接口变更#

  • all sktime estimators and objects are now required to have at least two test parameter sets in get_test_params to be compliant with check_estimator contract tests. This requirement was previously stated in the extension template but not enforced. It is now also included in the automated tests via check_estimator. Estimators without (unreserved) parameters, i.e., where two distinct parameter sets are not possible, are excepted from this.

Deprecations and removals#

  • From sktime 0.38.0, forecasters’ predict_proba will require skpro to be present in the python environment, for distribution objects to represent distributional forecasts. Until sktime 0.35.0, predict_proba will continue working without skpro, defaulting to return objects in sktime.proba if skpro is not present. From sktime 0.35.0, an error will be raised upon call of forecaster predict_proba if skpro is not present in the environment. Users of forecasters’ predict_proba should ensure that skpro is installed in the environment.

  • The probability distributions module sktime.proba deprecated and will be fully replaced by skpro in sktime 0.38.0. Until sktime 0.38.0, imports from sktime.proba will continue working, defaulting to sktime.proba if skpro is not present, otherwise redirecting imports to skpro objects. From sktime 0.35.0, an error will be raised if skpro is not present in the environment, otherwise imports are redirected to skpro. Direct or indirect users of sktime.proba should ensure skpro is installed in the environment. Direct users of the sktime.proba module should, in addition, replace any imports from sktime.proba with imports from skpro.distributions.

Contents#

  • [MNT] 0.32.0 deprecations and change actions (#6916) @fkiraly

  • [MNT] [Dependabot](deps): Update skpro requirement from <2.5.0,>=2 to >=2,<2.6.0 (#6897) @dependabot[bot]

  • [MNT] remove numpy 2 incompatibility flag from numba based estimators (#6915) @fkiraly

  • [MNT] isolate joblib (#6385) @fkiraly

  • [MNT] handle more pandas deprecations (#6941) @fkiraly

  • [MNT] deprecation of proba module in favour of skpro soft dependency (#6940) @fkiraly

  • [MNT] update versions of pre-commit hooks (#6947) @yarnabrina

  • [MNT] 0.32.0 release action - revert temporary skip get_test_params number check for 0.21.1 and 0.22.0 release (#5114) @fkiraly

  • [MNT] Bump skforecast to 0.13 version allowing support for python 3.12 (#6946) @yarnabrina

  • [BUG] Fix Xt_msg type in tranformations.base (#6944) @hliebert

Contributors#

@fkiraly, @hliebert, @yarnabrina

Version 0.31.2 - 2024-08-13#

Hotfix release, released after hotfix release 0.32.1, to apply the same hotfix to 0.31.X versions as well.

Hotfix for using make_reduction with not fully sklearn compliant tabular regressors such as from catboost.

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

Contents#

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

Notes#

This is a hotfix for 0.31.1 release, fixing a regression. This release is not contained in the 0.32.0 or 0.32.1 releases.

Version 0.31.1 - 2024-08-10#

Highlights#

Dependency changes#

  • holiday (transformations soft dependency) bounds have been updated to >=0.29,<0.54

  • dask (data container and parallelization back-end) bounds have been updated to <2024.8.1

Core interface changes#

BaseObject and base framework#

  • implementers no longer need to set the package_import_alias tag when estimator dependencies have a different import name than the PEP 440 package name. All internal logic now only uses the PEP 440 package name. There is no need to remove the tag if already set, but it is no longer required.

  • estimators now have a tag capability:categorical_in_X: bool to indicate that the estimator can handle categorical features in the input data X. Such estimator can be used with categorical and string-valued features if X is passed in one of the pandas based mtypes.

  • the html representation of all objects now includes a link to the documentation of the object, and is now in line with the sklearn html representation.

Enhancements#

BaseObject and base framework#

Data sets and data loaders#

Data types, checks, conversions#

  • [ENH] check_pdmultiindex_panel to return names of invalid object columns if there are any (#6797) @SaiRevanth25

  • [ENH] Allow object dtype in series (#5886) @yarnabrina

  • [ENH] converter framework tests in datatypes to cover all types, including those requiring soft dependencies (#6838) @fkiraly

  • [ENH] add missing feature_kind metadata fields to gluonts based data container checkers (#6861) @fkiraly

  • [ENH] added feature_kind metadata in datatype checks (#6490) @Abhay-Lejith

  • [ENH] Adding support for gluonts PandasDataset object (#6668) @shlok191

  • [ENH] Added support for gluonts PandasDataset as a Series scitype (#6837) @shlok191

Forecasting#

  • [ENH] interface to autots ensemble (#5948) @MBristle

  • [ENH] darts Reduction Models adapter (#6712) @fnhirwa, @yarnabrina

  • [ENH] Extension Template For Global Forecasting API (#6699) @XinyuWuu

  • [ENH] enable multivariate data passed to autots interface (#6805) @fkiraly

  • [ENH] Add Sampler to ForecastingOptunaSearchCV (#6823) @bastisar

  • [ENH] Improve TestAllGlobalForecasters (#6845) @XinyuWuu

  • [ENH] Add scoring direction to ForecastingOptunaSearchCV (#6846) @gareth-brown-86, @mk406

  • [ENH] de-novo implementation of LTSFTransformer based on cure-lab research code base (#6202) @geetu040

  • [ENH] Add windows_identical to DirectReductionForecaster (#6650) @hliebert

  • [ENH] updates type inference in make_reduction to use central scitype inference and allow proba tabular regressors (#6893) @fkiraly

  • [ENH] DeepAR and NHiTS and refinements for pytorch-forecasting interface (#6551) @XinyuWuu

  • [ENH] Interface to TinyTimeMixer foundation model (#6712) @geetu040

  • [ENH] remove now superfluous try-excepts in forecasting API test suite (#6906) @fkiraly

  • [ENH] improve test_global_forecasting_tag (#6929) @geetu040

Registry and search#

  • [ENH] in estimator html repr, make version retrieval safer and more flexible (#6923) @fkiraly

Time series anomalies, changepoints, segmentation#

  • [ENH] time series annotation (outliers, changepoints) - test class and full check_estimator integration (#6843) @fkiraly

  • [ENH] Add Windowed Local Outlier Factor Anomaly Detector (#6524) @Alex-JG3

  • [ENH] Add binary segmentation annotator for change point detection (#6723) @Alex-JG3

Time series classification#

Transformations#

  • [ENH] add second test params dict to Aggregator (#6759) @fr1ll

  • [ENH] pandas inner type and global pooling for TabularToSeriesAdaptor (#6752) @fkiraly

  • [ENH] alternative returns for VmdTransformer - mode spectra and central frequencies (#6857) @fkiraly

  • [ENH] simplify dictionaries and alias handling in Catch22 (#6104) @fkiraly

  • [ENH] making self._is_vectorized access more defensive in BaseTransformer (#6863) @fkiraly

Test framework#

  • [ENH] make pyproject.toml parsing for differential testing more robust against non-package relevant changes (#6882) @fkiraly

Vendor and onboard libraries#

Documentation#

  • [DOC] Notebook and Template For Global Forecasting API (#6699) @XinyuWuu

  • [DOC] Add authorship credits to MatrixProfileTransformer for Stumpy authors (#6762) @alexander-lakocy

  • [DOC] add examples to StatsForecastGARCH and StatsForecastARCH docstrings (#6761) @melinny

  • [DOC] Add alignment notebook example (#6768) @alexander-lakocy

  • [DOC] fix transformers type table in API reference in accordance with sphinx guidelines (#6771) @alexander-lakocy

  • [DOC] Modify editable install to make cross-platform (#6758) @fr1ll

  • [DOC] TruncationTransformer docstring example (#6765) @ceroper

  • [DOC] De-duplicate User Guide and Examples (closes #6767) (#6770) @alexander-lakocy

  • [DOC] improved docstring of DWTTransformer (#6764) @Mitchjkjkjk

  • [DOC] various improvements to user journey on documentation page (#6760) @fkiraly

  • [DOC] Time series k means max iter parameter docstring (#6726) @AlexeyOm

  • [DOC] cross-reference estimator search from tags API reference (#6816) @fkiraly, @yarnabrina

  • [DOC] updated docstring for check_is_mtype to match skpro check_is_mtype function (#6835) @julian-fong

  • [DOC] example & tutorial notebooks: normalize execution counts, indentation, execute all cells (#6847) @fkiraly

  • [DOC] clarify column handling in docstring of FourierFeatures (#6834) @fkiraly

  • [DOC] added fork usage recommendations (#6827) @yarnabrina

  • [DOC] change links in documentation to refer to same version (#6841) @yarnabrina

  • [DOC] minor improvements to check_scoring docstring (#6877) @fkiraly

  • [DOC] add proper author credits to 1:1 interface classes - aligners, distances, forecasters, parameter estimators (#6850) @fkiraly

  • [DOC] fix docstring formatting of evaluate (#6864) @fkiraly

  • [DOC] Add documentation for benchmarking module (#6792) @benHeid

  • [DOC] add elections link on landing page (#6910) @fkiraly

  • [DOC] Add example notebook for the graphical pipeline (#5175) @benHeid

  • [DOC] git workflow guide - chained branches, fixing header fonts (#6913) @fkiraly

Maintenance#

  • [MNT] Remove tbats python version constraint (#6769) @fr1ll

  • [MNT] Update Callable import from typing to collections.abc (#6798) @yarnabrina

  • [MNT] Fix spellings using codespell and typos (#6799) @yarnabrina

  • [MNT] improved environment package version check (#6776) @fkiraly

  • [MNT] downgrade pykan version to <0.2.2 (#6853) @geetu040

  • [MNT] add non-unicode characters check to the linter (#6807) @fnhirwa

  • [MNT] updates and fixes to type hints (#6743) @ZhipengXue97

  • [MNT] Resolve the issue with diacritics failing to be decoded on Windows (#6862) @fnhirwa

  • [MNT] sync docstring and code formatting of dependency checker module with skbase (#6873) @fkiraly

  • [MNT] Remove package import alias related internal logic and tags (#6821) @fkiraly

  • [MNT] restrict failing Mr-SEQL version (#6879) @fkiraly

  • [MNT] release workflow: Upgrade deprecated pypa action parameter (#6878) @szepeviktor

  • [MNT] Fix pykan import and dependency checks (#6881) @fkiraly

  • [MNT] temporarily pin matplotlib below 3.9.1 (#6890) @yarnabrina

  • [MNT] make pyproject.toml parsing for differential testing more robust against non-package relevant changes (#6882) @fkiraly

  • [MNT] formatter for jupyter notebook json in build tools (#6849) @fkiraly

  • [MNT] sync differential testing utilities with skpro (#6840) @fkiraly

  • [MNT] Handle deprecations from pandas (#6855) @fkiraly

  • [MNT] sync docstring and code formatting of dependency checker module with skbase (#6873) @fkiraly

  • [MNT] fix .all-contributorsrc syntax (#6918) @fkiraly

  • [MNT] Resolve the issue with diacritics failing to be decoded on Windows (#6862) @fnhirwa

  • [MNT] changelog utility: fix termination condition to retrieve merged PR (#6920) @fkiraly

  • [MNT] restore holidays lower bound to 0.29 (#6921) @fkiraly

  • [MNT] Updating the GHA dependencies to install OSX dependencies and setting the compiler flags (#6926) @fnhirwa

  • [MNT] revert an erroneous instance of pandas deprecation fix (#6925) @fkiraly

  • [MNT] Update the path to script to fix #6926 (#6933) @fnhirwa

  • [MNT] [Dependabot](deps): Update pytest requirement from <8.3,>=7.4 to >=7.4,<8.4 (#6819) @dependabot[bot]

  • [MNT] [Dependabot](deps): Update dask requirement from <2024.6.3 to <2024.7.2 (#6818) @dependabot[bot]

  • [MNT] [Dependabot](deps): Update sphinx-gallery requirement from <0.17.0 to <0.18.0 (#6820) @dependabot[bot]

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

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

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

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

修复#

BaseObject 和基础框架#

  • [BUG] 修复 _check_soft_dependencies 对补丁版本的 post 和 pre 版本的处理 (#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] 修复 BaseTransformerinverse_transform 方法对分解器(decomposers)的广播条件问题 (#6824) @fkiraly

  • [BUG] 修复 MSTL 逆转换并将其用于预测管道 (#6825) @fkiraly

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

可视化#

  • [BUG] 在 plot_series 中,验证 dataframe 格式时修剪未使用的级别 (#6754) @SultanOrazbayev

贡献者#

@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 兼容性

  • 代码风格和 pre-commit 更新,使用 ruff 进行 linting

有关上次非维护性内容更新,请参阅 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](依赖): 更新 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 的支持后更新 pre commit hooks (#6331) @yarnabrina

  • [MNT] 抑制来自 pandas 2.2 的激进的 freq 相关警告 (#6733) @fkiraly

  • [MNT] 0.31.0 废弃和更改行动 (#6716) @fkiraly

  • [MNT] 切换到 ruff 作为 linting 工具 (#6676) @fnhirwa

  • [ENH] 重构环境检查工具并进行错误修复 (#6719) @fkiraly, @yarnabrina

贡献者#

@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] 将 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] 使用 optuna 对预测器进行超参数调优的 ForecastingOptunaSearchCV (#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](依赖): 更新 holidays 依赖要求从 <0.51,>=0.29>=0.29,<0.52 (#6634) @dependabot[bot]

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

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

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

  • [MNT] [Dependabot](依赖): 更新 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 兼容性,适用于 deep_equals 插件对 csr_matrix 的支持 (#6664) @fkiraly

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

修复#

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

  • [BUG] 修复 AUCalibration 概率指标在 multivariate 情况下的问题 (#6617) @fkiraly

数据加载器#

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

数据类型、检查、转换#

  • [BUG] 临时修复 pandas 2.2.Xfreq 时间戳/周期往返转换中关于周期开始时间戳(例如 "MonthBegin")的问题 (#6574) @fkiraly

预测#

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

时间序列分类#

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

时间序列聚类#

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

时间序列回归#

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

测试框架#

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

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

转换#

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

  • [BUG] 在 Differencer 中,进行显式克隆以避免 SettingWithCopyWarning (#6567) @benHeid

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

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

  • [BUG] 确保为 TransformerPipeline 正确设置 requires_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 issue 5414 或 pykalman issue 109。

    • 该包的分叉将在 sktime 中维护。

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

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

核心接口更改#

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

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

  • 某些估计器中使用的 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 月到达生命周期结束,并且包括 scikit-learn 在内的多个 sktime 核心依赖项已停止支持 3.8。

预测#

cINNForecaster 已重命名为 CINNForecaster。在弃用期过后,该估计器将不再使用旧名称。用户应将所有导入 cINNForecaster 的地方替换为导入 CINNForecaster

增强功能#

  • [增强] 重构基础序列标注器 API (#6265) @Alex-JG3

  • [增强] 升级路径相关的 is_module_changed 测试工具 (#6518) @fkiraly

文档#

  • [文档] 更新了 all_estimators 的 docstring,以支持 re.Pattern (#6478) @fkiraly

维护#

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

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

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

  • [维护] 在 CI 中移除 Python 3.8 的测试覆盖 (#6329) @yarnabrina

  • [维护] 重命名 cINNForecasterCINNForecaster 的最后更改周期 (0.30.0) (#6367) @geetu040

  • [维护] 添加 joblib 作为核心依赖项 (#6384) @yarnabrina

  • [维护] 0.30.0 弃用和更改操作 (#6468) @fkiraly

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

  • [维护] 将依赖项检查器移至 utils 中单独的模块 (#6354) @fkiraly

  • [维护] 解决 pykalman 问题 - sktime 本地 pykalman 分叉 (#6188) @fkiraly

  • [维护] 为低级测试添加系统化的差异测试开关 (#6511) @fkiraly

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

  • [维护] 准备重构基准测试框架:将最小的 kotsu 库合并到 sktime 中 (#6514) @fkiraly

  • [维护] 仅当 distances 模块发生更改时才运行其中的测试 (#6517) @fkiraly

  • [维护] 将 pykalman 测试重构为 pytest 并实现条件执行 (#6519) @fkiraly

  • [维护] datatypes 模块中测试的条件执行 (#6520) @fkiraly

贡献者#

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

版本 0.29.1 - 2024-05-30#

亮点#

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

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

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

  • 用于加载 fpp3 (Forecasting, Princniples and Practice) 数据集的数据加载器,通过 rdata 包转换为 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 和基础框架#

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

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

  • [增强] 区间宽度(尖锐度)指标 (#6437) @fkiraly

  • [增强] 分布预测的校准曲线下无符号面积指标 (#6460) @fkiraly

  • [增强] 预测指标:确保对 sample_weight 参数提供统一支持和测试 (#6495) @fkiraly

数据加载器#

  • [增强] 用于加载 CRAN 中 fpp3 数据集的数据加载器,通过 rdata 包转换为 sktime 数据格式 (#6477) @ericjb

数据类型、检查、转换#

预测#

  • [增强] Kolmogorov-Arnold Network (KAN) 预测器 (#6386) @benHeid

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

  • [增强] ForecastingHorizonpandas 2.2.0 及更高版本中 pandas freq 2Y 的兼容性 (#6500) @fkiraly

  • [增强] 添加 ForecastingHorizonpandas 2.2.X 兼容性的测试用例,失败情况 #6499 (#6503) @fkiraly

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

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

时间序列对齐#

  • [增强] 输入时进行时间序列对齐器能力检查,添加不等长能力标签 (#6486) @fkiraly

时间序列分类#

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

  • [增强] 具有三个类别和 pd-multiindex mtype 的分类测试场景 (#6374) @fkiraly

  • [增强] 测试在 str dtype y 上的分类器,确保 predict 返回相同的类型和标签 (#6428) @fkiraly

转换#

测试框架#

  • [增强] 使 check_estimatorQuickTester.run_tests 能够处理标记为跳过的 pytest 测试 (#6233) @YelenaYY

  • [增强] 使 get_packages_with_changed_specs 在返回值的变动下保持安全 (#6451) @fkiraly

可视化#

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

文档#

维护#

修复#

预测#

  • [BUG] 修复 ForecastXforecaster_X_exogeneous="complement" 时的错误 (#6433) @fnhirwa

  • [BUG] 修改 VAR 代码以允许进行 0.5 的 predict_quantiles 计算 (修复 #4742) (#6441) @meraldoantonio

神经网络#

时间序列分类#

  • [BUG] 解决 LSTMFCNClassifier 改变 callback 参数的问题 (#6239) @ArthrowAbstract

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

  • [BUG] 修复 BaggingClassifier 用于列子采样情况 (#6429) @fkiraly

  • [BUG] 修复 ProximityForest, tree, stump, 和 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] 解决 LSTMFCNRegressor 改变 callback 参数的问题 (#6239) @ArthrowAbstract

  • [BUG] 在 CNNRegressor 中,确保 filter_sizespadding 被传递下去 (#6452) @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 月到达生命周期结束,并且包括 scikit-learn 在内的多个 sktime 核心依赖项已停止支持 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}})

内容#

  • [维护] 更改 cINNForecaster 重命名为 CINNForecaster 的周期 (0.29.0) (#6238) @geetu040

  • [维护] python 3.8 生命周期结束和 sktime 支持停止警告 (#6348) @fkiraly

  • [维护] 加快测试收集速度 - 缓存差分测试切换工具 (#6357) @fkiraly, @yarnabrina

  • [维护] 临时跳过与超时相关的估计器 #6344 (#6361) @fkiraly

  • [维护] 0.29.0 弃用和变更操作 (#6350) @fkiraly

贡献者#

@fkiraly, @geetu040, @yarnabrina

版本 0.28.1 - 2024-04-25#

亮点#

依赖项变更#

  • 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 和基础框架#

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

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

基准测试、指标、拆分器#

  • [增强] 实例拆分器,用于将 sklearn 拆分器应用于面板数据 (#6055) @fkiraly

  • [增强] MSE 和 RMSE 的高效 _evaluate_by_index (MeanSquaredError) (#6248) @fkiraly

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

预测#

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

  • [增强] 装袋/自举预测器扩展到多元、外生、分层数据 (#6052) @fkiraly

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

  • [增强] 选项,允许 ForecastXpredict 中传递未来未知的外生变量时使用它们 (#6199) @yarnabrina

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

  • [增强] 更新面向 neuralforecast 的估计器中 freq="auto" 的行为 (#6237) @geetu040

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

神经网络#

概率分布和模拟器#

时间序列分类#

时间序列聚类#

  • [增强] 包含不等长序列的聚类器测试场景;修复聚类器标签 (#6277) @fkiraly

时间序列回归#

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

变换#

  • [增强] 使 TabularToSeriesAdaptor 与只接受 ysklearn 变换器兼容,例如 LabelEncoder (#5982) @fkiraly

测试框架#

  • [增强] 通过 deepcopy 使 get_examples 避免副作用 (#6259) @fkiraly

  • [增强] 重构测试场景创建方式,使其惰性加载而非模块加载时创建 (#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 runner 一致设置为 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] 为错误 3177 添加回归测试 (#6246) @benHeid

  • [BUG] 修复 neuralforecast 自动 freq 中的失败测试,同时 pandas freq 已弃用 (#6321) @geetu040

概率分布和模拟器#

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

  • [BUG] 修复 Empirical 索引,使其成为分层数据索引的 pd.MultiIndex (#6341) @fkiraly

时间序列聚类#

时间序列回归#

  • [BUG] 在 CNNRegressor 中,修复当 verbose=True 时出现的 self.model not found 错误 (#6232) @morestart

变换#

  • [BUG] Imputer 错误修复 #6224 (#6253) @Ram0nB

  • [BUG] 修复 window_feature 中自定义函数的向后填充问题 (#6294) @toandaominh1997

  • [BUG] 修复 TSBootstrapAdapter 中返回结果的索引问题 (#6326) @astrogilda

  • [BUG] 修复 STLTransformer.inverse_transform 在单变量情况下的问题 (#6338) @fkiraly

贡献者#

@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 (transformations 软依赖) 边界已更新为 >=0.7.0,<0.9.0

  • pykalman-bardo 依赖项已被原始分支 pykalman 替换。pykalman-bardo 已合并回 pykalmanpykalman 不再处于废弃状态。这是一项软依赖,此切换不影响使用其依赖项集合之一安装 sktime 的用户。

弃用和移除#

预测#

  • ProphetPiecewiseLinearTrendForecaster 中,季节性参数 yearly_seasonality, weekly_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 的软依赖 (transformations)

  • holidays (transformations 软依赖) 边界已更新为 >=0.29,<0.46

  • dtw-python 边界已更新为 >=1.3,<1.5

核心接口更改#

  • 时间序列拆分器现在是完全的一等公民。现在可以使用 check_estimator 检查接口一致性。

弃用和移除#

预测#

cINNForecaster 将在 sktime 0.29.0 版本中重命名为 CINNForecaster。该估计器在其当前位置以未来名称可用,并将在其弃用名称下可用直到 0.30.0 版本。为准备名称更改,请将所有导入 cINNForecaster 替换为导入 CINNForecaster

增强#

基准测试、指标、拆分器#

  • [ENH] check_estimator 集成,用于拆分器 (#6051) @fkiraly

数据加载器#

  • [ENH] 单文件类型数据加载器中文件扩展名的自动推断 (#6045) @SaiRevanth25

数据类型、检查、转换#

  • [ENH] 在从 pd-multiindexdf-list mtype 的转换中使用 Index.unique 而不是 set by @fkiraly (#6007)

距离、核#

  • [ENH] ShapeDTW 的第二个测试参数集 (#6093) @XinyuWuu

  • [ENH] 根据 docstring 中的指定,为 ScipyDist 类添加 colalign 功能 (#6110) @fnhirwa

预测#

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

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

  • [ENH] 基于 neuralforecast 的 LSTM 模型 by @pranavvp16 (#6047)

  • [ENH] 修复 ForecastingHorizon.freqpandas 2.2.X 的处理问题 by @fkiraly (#6057)

神经网络模板#

时间序列分类#

  • [ENH] 从 ProximityForest, ProximityTree, 和 ProximityStump 的参数中移除私有方法 by @fnhirwa (#6046)

时间序列聚类#

时间序列回归#

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

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

变换#

测试框架#

文档#

维护#

  • [维护] [Dependabot](deps-dev):更新 holidays 需求从 <0.45,>=0.29>=0.29,<0.46 (#6164) @dependabot[bot]

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

  • [维护] [Dependabot](deps):将 tj-actions/changed-files 版本从 42 提升到 43 (#6125) @dependabot[bot]

  • [维护] 临时跳过 ShapeletTransformPyts 的偶发性失败测试 (#6172) @fkiraly

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

  • [维护] 将 catch22 模块与 numba 工具解耦 (#6101) @fkiraly

  • [维护] 限定 temporian<0.8.0 (#6184) @fkiraly

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

  • [维护] 初始化更改周期 (0.28.0),用于将 cINNForecaster 重命名为 CINNForecaster (#6121) @geetu040

  • [维护] 修复因 tensorflow 更新导致的测试失败 (#6098) @benHeid

  • [维护] 抑制 test_evaluate_error_score 中的偶发性失败 (#6058) @fkiraly

  • [维护] 更新 forecasting extra 中的 statsforecast 版本 (#6064) @yarnabrina

  • [维护] Docker 文件更新 (#6076) @deysanjeeb

  • [维护] 为 Catch22 更改设置弃用行动时间 (#6123) @fkiraly

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

  • [维护] 临时跳过 ShapeletTransformPyts 的偶发性失败测试 (#6172) @fkiraly

  • [维护] 在“安装和测试”GHA 工作流中启用并发设置 (#6074) @MEMEO-PRO

  • [维护] 临时跳过 main 分支上的某些偶发性失败 (#6208) @fkiraly

修复#

距离,核函数#

估计器注册表#

  • [修复] 删除 all_estimators 中不必要的行 (#6103) @fkiraly

预测#

  • [修复] 修复了当 SARIMAX 在预测(predict)时传递 X 但训练(fit)时未传递而导致的失败 (#6005) @Abhay-Lejith

  • [修复] 修复如果实现了 predict_proba,则 BaseForecaster.predict_var 的默认行为 (#6067) @fkiraly

  • [修复] 在 ForecastingHorizon 中,当索引值少于 3 个时,忽略 pd.infer_freqValueError (#6097) @tpvasconcelos

时间序列分类#

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

  • [修复] 解决了 SimpleRNNClassifier 和回归器中错误的参数名 lr 问题,修复了 ResNetClassifier 中细微的 batch_size 参数问题 (#6154) @vandit98

时间序列回归#

  • [修复] 修复 BaseRegressor.score 方法因 sklearn.metrics r2_score got an unexpected keyword argument 'normalize 错误而失败的问题 (#6019) @Cyril-Meyer

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

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

转换#

测试框架#

  • [修复] 由 @MBristle 修复比较不同长度的 ForecastingHorizondeep_equals 的问题 (#5954)

网页#

  • [修复] 修复估计器概览的搜索功能无法工作的问题 (#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.59 和在 python 3.12 下的 numba

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

有关上次非维护性内容更新,请参阅 0.26.1。

依赖项变更#

  • numba 的上限已更新至 <0.60

弃用和移除#

预测调优器#

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

转换#

  • 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_basedPAA 替换为使用来自 sktime.transformations.series.paaPAA2,并相应地切换参数名称;或 2. 将使用来自 sktime.transformations.panel.dictionary_basedPAA 替换为使用来自 sktime.transformations.panel.dictionary_basedPAAlegacy,无需更改参数值。

  • 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_basedSAX 替换为使用来自 sktime.transformations.series.paaSAX2,并相应地切换参数名称;或 2. 将使用来自 sktime.transformations.panel.dictionary_basedSAX 替换为使用来自 sktime.transformations.panel.dictionary_basedSAXlegacy,无需更改参数值。

内容#

文档#

  • [文档] 改进了 HierarchyEnsembleForecaster docstring 的格式 (#6008) @fkiraly

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

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

  • [文档] sktime.net 登陆页面上的 2024 年暑期项目链接 (#6013) @fkiraly

维护#

版本 0.26.1 - 2024-02-26#

亮点#

依赖项变更#

  • dask (数据容器和并行化后端) 的上限已更新至 <2024.2.2

  • holidays (转换软依赖) 的上限已更新至 >=0.29,<0.44

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

核心接口变更#

转换#

所有转换 dunder 现在会自动将 sklearn 转换器强制转换为 sktime 转换器,在使用由 dunder 指定的 sktime 管道中的 sklearn 转换器时,不再需要包装在 TabularToSeriesAdaptor 中。

弃用和移除#

转换#

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

增强#

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

  • [增强] 用于 MeanAbsolutePercentageError 的高效 _evaluate_by_index (#5842) @fkiraly

数据加载器#

数据类型,检查,转换#

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

预测#

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

  • [增强] 暴露 ProphetPiecewiseLinearTrendForecaster 的季节性参数 (#5834) @sbuse

  • [增强] 集中处理委托器标签的安全克隆逻辑 - 预测 (#5845) @fkiraly

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

  • [增强] 与 statsmodels 库中的 ARIMA 接口 (#5857) @arnaujc91

  • [改进] 改进了预测器和变换器中部分错误消息的特异性 (#5882) @fkiraly

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

  • [改进] 直接 statsforecast 接口估计器中的几项更新 (#5920) @yarnabrina

  • [改进] 为 FallbackForecaster 添加了 nan 策略处理器 (#5924) @ninedigits

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

  • [改进] neuralforecast 适配器和 RNN 预测器 (#5962) @yarnabrina

  • [改进] 重构 ForecastingSkoptSearchCV 以使用抽象并行化后端 (#5973) @fkiraly

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

时间序列标注#

时间序列分类#

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

  • [改进] pyts KNeighborsClassifier 的适配器 (#5939) @fkiraly

  • [改进] tslearn KNeighborsTimeSeriesClassifier 的适配器 (#5952) @fkiraly

  • [改进] 为分类器添加特征重要性能力标签 (#5969) @sanjayk0508

时间序列回归#

  • [改进] 从 sktime-dl 迁移深度学习回归器:FCN、LSTMFCN、MLP (#6001) @nilesh05apr

变换#

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

  • [改进] 在变换器 dunder 中,统一 sklearn 变换器的强制类型转换 (#5869) @fkiraly

  • [改进] 改进了预测器和变换器中部分错误消息的特异性 (#5882) @fkiraly

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

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

  • [改进] 重构 Catch22Wrapper 变换器,使其内部使用 pd.Series 类型 (#5983) @fkiraly

测试框架#

  • [改进] 测试其包依赖项在 pyproject.toml 中更改的估计器 (#5727) @fkiraly

修复#

预测#

  • [错误] 移除 _pytorch.py 中 _fit 方法里 _fh_y 的重复设置 (#5889) @benHeid

  • [错误] BaseForecaster - 如果向量化,则将 check_fh 移到内循环 (#5900) @ciaran-g

  • [错误] 修复 ConformalIntervalssample_frac 过低时偶发性失败的问题 (#59/2) @fkiraly

流水线#

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

概率分布和模拟器#

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

时间序列分类#

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

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

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

变换#

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

  • [错误] 修复了 MSTL 变换器的 transform 方法 (#5996) @Abhay-Lejith

维护#

  • [维护] 模块化 CI 框架改进 - 第 2 部分,合并框架 (#5785) @fkiraly

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

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

  • [维护] 解决了部分 pandas 弃用问题 (#5883) @fkiraly

  • [维护] 通过使用更新的 root_mean_absolute_error 函数解决了 RMSE 的 FutureWarning (#5884) @yarnabrina

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

  • [维护] 修复 CRON “test all” 工作流程失败的问题 (#5925) @fkiraly

  • [维护] 更新了多个 actions 的版本 (#5929) @yarnabrina

  • [维护] 为 coverage 上传添加 codecov token (#5930) @yarnabrina

  • [维护] CI main 分支修复:添加 checkout 步骤以检测 CI 中的步骤 (#5945) @fkiraly

  • [维护] 解决了部分即将到来的弃用问题 (#5971) @fkiraly

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

  • [维护] [Dependabot](deps-dev):更新 dask requirement 从 <2024.1.1<2024.1.2 (#5861) @dependabot[bot]

  • [维护] [Dependabot](deps-dev):更新 dask requirement 从 <2024.1.2<2024.2.1 (#5958) @dependabot[bot]

  • [维护] [Dependabot](deps-dev):更新 holidays requirement 从 <0.43,>=0.29>=0.29,<0.44 (#5965) @dependabot[bot]

  • [维护] [Dependabot](deps-dev):更新 dask requirement 从 <2024.2.1<2024.2.2 (#5991) @dependabot[bot]

文档#

  • [文档] 简单参数更改和弃用管理的 recipes (#5875) @fkiraly

  • [文档] 改进的弃用 recipes (#5890) @fkiraly

  • [文档] 修复 API reference 中指向 DropNA 的断开链接 (#5899) @sbuse

  • [文档] 移除安装文档中过时的 Python 3.10 兼容性贡献请求 (#5901) @fkiraly

  • [文档] 在估计器概述中使用标签 (#5906) @fkiraly

  • [文档] 向估计器概述添加“维护者”列 (#5911) @fkiraly

  • [文档] 修复 ARDL API reference (#5912) @fkiraly

  • [文档] 在估计器表格中添加 GitHub ID 超链接 (#5916) @fkiraly

  • [文档] 修复弃用时间线示例中奇怪的格式问题 (#5957) @fkiraly

  • [文档] 改进了词汇表和预测 docstrings (#5968) @fkiraly

  • [文档] 移除扩展模板中的类型注解 (#5970) @fkiraly

  • [文档] 文档中的拼写错误,将 monotonous 修正为 monotonic (#5946) @eduardojp26

  • [文档] 修复 docstring 中的拼写错误 (#5949) @yarnabrina

  • [文档] 修复 docstring 中的拼写错误 (#5950) @yarnabrina

  • [文档] 正确格式化 feature_selection.py 中的 docstrings (#5994) @oleeviyababu

贡献者#

@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 中,直接 reduction 预测器现在支持来自 skpro 的概率表格回归器 (#5536) @fkiraly

  • 新的、高效、可并行化的 PAA 和 SAX 变换器实现,可用作 PAA2, SAX2 (#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" 通过 set_config 设置为 False,现在可以阻止预测器将所有已见数据存储为 self._yself._X。这对于预测器的序列化很有用。目前,此设置仅支持不会触发实例或变量广播的数据和预测器组合,但未来此功能将扩展到所有情况。

参数估计和假设检验#

  • 现在可以使用 * dunder 快速构建基于参数插件或估计的参数调优估计器,它将构建一个 PluginParamsForecasterPluginParamsTransformer,将左侧元素的所有拟合参数 (get_fitted_params) 插入到右侧元素中 (set_params),参数名称匹配时。例如,SeasonalityACF() * Deseasonalizer() 将构建一个 Deseasonalizer,其 sp (季节性周期) 参数由 SeasonalityACF 调优,通过时间序列上的 ACF 显著性准则估计 sp

  • * dunder 向左绑定,例如 Differencer() * SeasonalityACF() * Deseasonalizer() 将构建一个 Deseasonalizer,其 sp (季节性周期) 参数由 SeasonalityACF 调优,通过对第一次差分数据(用于平稳性)上的 ACF 显著性准则估计 sp。此处第一次差分不应用于 Deseasonalizer,仅应用于 SeasonalityACF 的输入,因为第一个 * 构建了一个参数估计器,第二个 * 将参数估计器插入到 Deseasonalizer 中。

变换#

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

弃用和移除#

变换#

  • panel.dictionary_based.PAAsktime 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.SAXsktime 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] 将 isinstance 替换为基于 object_type 标签的检查 (#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] 转换器模块的作者和维护者标签 (#5800) @fkiraly

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

数据类型、检查、转换#

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

预测#

参数估计和假设检验#

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

  • [ENH] 将估计器参数插件到转换器中,右连接 dunder 方法 (#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] 重构并行化后端 fixture 的测试,改为程序化后端 fixture 查找 (#5714) @fkiraly

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

修复#

BaseObject 和基础框架#

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

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

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

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

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

  • [BUG] 修复动态 make_forecasting_scorer 对于较新 sklearn 指标的支持 (#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_idxsort_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): Bump tj-actions/changed-files 从 41 到 42 (#5777) @dependabot[bot]

  • [MNT] [Dependabot](deps-dev): 更新 arch 要求从 <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] 处理 EnsembleForecasterpd.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] 改进了扩展模板中 tag 部分的格式 (#5812) @fkiraly

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

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

  • [DOC] 更新软依赖处理指南,使用基于 tag 的依赖检查进行测试 (#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,形式为二维 np.ndarraypd.DataFrame,其中每列对应一个输出。predict 方法将返回相同类型的预测输出。为了保持向后兼容性,对于单变量输出,predict 将始终返回一维 np.ndarray,目前这不受废弃的影响。

  • 真正的多输出分类器和回归器通过新的标签 capability:multioutput 设置为 True 来标识。所有其他分类器和回归器会按 y 的列进行广播,可以通过设置 backend:parallelbackend:parallel:params 配置标志来选择并行化后端,详情请参阅 set_config 的 docstring。一旦 sktime 更新,广播会通过基类继承自动扩展到所有现有的第三方分类器和回归器,估计器类本身无需更新。

  • 分类器和回归器现在有一个标签 y_inner_mtype,这允许扩展者指定内部 mtype,其 scitype 为 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 的 docstring 获取详细信息。

  • 在预测 evaluate 中,compute 参数已移除,此前在 0.24.0 中已废弃。其目的是在 dask 并行化后端中区分延迟(lazy)或即时(eager)评估。要切换延迟和即时评估,用户应改用 backend 参数选择 daskdask_lazy

  • 在预测 evaluate 中,kwargs 已废弃,移除时间推迟到 0.26.0。用户应通过 backend_params 参数传递后端参数。

内容#

贡献者#

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

版本 0.24.2 - 2023-12-24#

重点#

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

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

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

  • 新的转换器:扩张映射 (#5557) @fspinna

  • 现在通过 set_config 支持并行化中的自定义 joblib 后端 (#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 的 docstring。

时间序列分类#

  • 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 的 docstring。

增强#

BaseObject 和基础框架#

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

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

  • [增强] mtype 标签一致使用 np.ndarray (#5648) @fkiraly

  • [增强] 在 sktime 内部 check_is_mtype 调用中设置输出格式参数以消除废弃警告 (#5563) @benHeid

基准测试、指标、拆分器#

  • [增强] 基于截止点和预测范围 loc 的拆分器 (#5575) @fkiraly

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

数据类型、检查、转换#

  • [增强] sklearn 面向 pd.DataFrame 转换为 str 列的强制转换工具 (#5550) @fkiraly

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

  • [增强] mtypes 中 pandas 索引类型统一化 (#5561) @fkiraly

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

预测#

  • [增强] ForecastingHorizon 中预测预测索引的预期工具 (#5501) @fkiraly

  • [增强] 重构归约器中的索引生成以使用 ForecastingHorizon 方法 (#5539) @fkiraly

  • [增强] 修复归约预测器的索引名称检查 (#5543) @fkiraly

  • [增强] 预测器 fit_predict 带有用于 predictX_pred 参数 (#5562) @fkiraly

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

  • [增强] 导出和测试 DirectReductionForecaster (#5582) @fkiraly

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

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

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

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

参数估计和假设检验#

时间序列标注#

  • [增强] 更改 GGS 以继承自 BaseSeriesAnnotator (#5315) @Alex-JG3

时间序列分类#

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

  • [增强] 在 SimpleRNNClassifierSimpleRNNRegressor 中将 num_epochs 重命名为 n_epochs (#5607) @aeyazadil

时间序列聚类#

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

转换器#

  • [增强] 扩张映射转换器 (#5557) @fspinna

  • [增强] TSFreshRelevantFeatureExtractor 的第二个测试参数集 (#5623) @fkiraly

可视化#

  • [增强] 为概率预测添加 calibration_plot (#5632) @benHeid

测试框架#

  • [增强] 重新激活和修复 test_multiprocessing_idempotent (#5573) @fkiraly

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

  • [增强] 对象的条件测试 - 测试覆盖的测试类是否已更改 (#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 预测中,将索引匹配更改为整数 (#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 周期别名和来自 offset 列 (#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 中,允许 step_sizefloat 类型 (#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 周期别名和来自 offset 列 (#5513) @Ram0nB

维护#

文档#

  • [DOC] 修正 FhPlexForecaster 的 docstring 示例 (#4931) @fkiraly

  • [DOC] 通过程序修正 (所有) 拼写错误 (#5424) @kianmeng

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

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

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

  • [DOC] 更新 STLTransformer 的 docstring,修正关于逆变换和管道的陈述 (#5455) @fkiraly

  • [DOC] 改进 statsforecast 估计器的 docstrings (#5409) @fkiraly

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

  • [DOC] 修正平稳性测试的 docstrings (#5531) @fkiraly

修复#

BaseObject 和基础框架#

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

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

  • [BUG] 修正 evaluatekwargs 弃用逻辑中的错误,该错误在使用弃用的 kwargs 时总是将后端设置为 dask_lazy (#5469) @fkiraly

预测#

  • [BUG] 修正 pandas 关于静默上转型引起的 FutureWarning (#5395) @tpvasconcelos

  • [BUG] 修正 make_reduction (递归、全局) 的 predict 函数,使其能够处理时区感知数据 (#5464) @ciaran-g

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

参数估计和假设检验#

  • [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#

亮点#

  • 所有分层/多元预测器和转换器广播现在都可以通过 set_config 使用并行化后端 joblibdask (#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

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

  • 分割器已迁移到其自己的模块 sktime.split (#5017) @BensHamza

依赖项变更#

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

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

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

核心接口变更#

BaseObject 和基础框架#

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

  • sktime 的警告现在可以通过配置 warnings(通过 set_config 设置,参见文档字符串)按估计器进行屏蔽。

预测#

  • 分层和多元预测现在可以使用并行化和分布式后端,包括 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 和基础框架#

  • [增强] warnings 配置 (#4536) @fkiraly

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

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

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

  • [增强] 工具模块中的并行化后端调用 - 第 2 部分,后端参数传递 (#5311) @fkiraly

  • [增强] 工具模块中的并行化后端调用 - 第 3 部分,基类广播中的后端参数传递 (#5405) @fkiraly

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

  • [增强] 将分割器整合为自己的模块,包含系统性测试和扩展 (#5017, #5331) @BensHamza, @fkiraly

  • [增强] 允许 evaluate 接受多种指标的任意组合,并使用正确的预测方法 (#5192) @hazrulakmal

  • [增强] 添加 temporal_train_test_split 的测试 (#5332) @fkiraly

数据加载器#

预测#

  • [增强] 添加基于 scipy optimize_curveCurveFitForecaster (#5240) @benHeid

  • [增强] 重构 trend 预测器模块 (#5242) @benHeid

  • [增强] YfromX - 概率预测 (#5271) @fkiraly

  • [增强] 将 test_interval_wrappers.py 链接到 evaluate 的变更,用于条件测试 (#5337) @fkiraly

  • [增强] 在多元或分层情况下的估计器广播中添加 joblibdask 后端 - 第 1 部分,VectorizedDF.vectorize_est (#5267) @fkiraly

  • [增强] 在多元或分层情况下的估计器广播中添加 joblibdask 后端 - 第 2 部分,基类配置 (#5301) @fkiraly

  • [增强] ARCH 模型接口连接 arch 包 (#5326) @Vasudeva-bit

  • [增强] 在 ForecastX 中,启用在预测的 X 上拟合 forecaster_y (#5334) @benHeid

  • [增强] 如果内部 forecaster_y 忽略 X,则跳过 ForecastX 中不必要的拟合 (#5353) @yarnabrina

  • [增强] 移除 TestAllEstimators 中关于 predict_proba 的旧异常处理 (#5386) @fkiraly

时间序列对齐#

  • [增强] lucky 动态时间规整对齐器 (#5341) @fkiraly

  • [增强] 为时间序列对齐器添加合理的默认 _get_distance_matrix (#5347) @fkiraly

时间序列距离和核#

  • [增强] 成对时间序列距离和核的委托器 (#5340) @fkiraly

  • [增强] lucky 动态时间规整距离 (#5341) @fkiraly

  • [增强] 简化了到基于 dtw-python 的动态时间规整距离的委托器接口 (#5348) @fkiraly

时间序列回归#

  • [增强] 在 BaseRegressor 中,允许 y 是 1D 的 pd.DataFrame (#5282) @mdsaad2305

转换#

  • [增强] PeakTimeFeatures 转换器,用于生成一个或多个高峰/小时-日-周等的指标特征,工作时间等 (#5191) @ali-parizad

  • [增强] VmdTransformer,添加分解-预测-重组作为 docstring 示例和测试 (#5250) @fkiraly [增强] 改进 evaluate 失败错误消息 (#5269) @fkiraly

  • [增强] 为 STLTransformer 添加正确的 inverse_transform 方法 (#5300) @fkiraly

  • [增强] 在多元或分层情况下的估计器广播中添加 joblibdask 后端 - 第 1 部分,VectorizedDF.vectorize_est (#5267) @fkiraly

  • [增强] 在多元或分层情况下的估计器广播中添加 joblibdask 后端 - 第 2 部分,基类配置 (#5301) @fkiraly

  • [增强] 重构 DateTimeFeatures 测试以使用 pytest fixture (#5397) @adamkells

测试框架#

  • [增强] 在 test_reconstruct_identical 中为 deep_equals 断言添加错误消息返回 (#4927) @fkiraly

  • [增强] 增量测试也测试 sktime 中的任何父类是否已更改 (#5379) @fkiraly

维护#

  • [维护] 恢复 numba 要求更新从 <0.58,>=0.53 到 >=0.53,<0.59 (#5297) @fkiraly

  • [维护] 绑定 numba<0.58 (#5303) @fkiraly

  • [维护] 移除 attrs 依赖项 (#5296) @Alex-JG3

  • [维护] 简化 CI - 将 windows CI 步骤与测试矩阵合并 (#5362) @fkiraly

  • [维护] 为兼容 3.12 - 用等效功能替换 distutils 调用 (#5376) @fkiraly

  • [维护] 将 skpro 设为软依赖项 (#5273) @fkiraly

  • [维护] 移除 py37.dockerfile 并更新 CI 文档条目 (#5356) @kurayami07734

  • [维护] [Dependabot](deps): 更新 styfle/cancel-workflow-action 从 0.11.0 到 0.12.0 (#5355) @dependabot[bot]

  • [维护] [Dependabot](deps): 更新 stefanzweifel/git-auto-commit-action 从 4 到 5 (#5373) @dependabot[bot]

  • [维护] [Dependabot](deps-dev): 更新 holidays 要求从 <0.33,>=0.29 到 >=0.29,<0.34 (#5276) @dependabot[bot]

  • [维护] [Dependabot](deps-dev): 更新 numpy 要求从 <1.26,>=1.21.0 到 >=1.21.0,<1.27 (#5275) @dependabot[bot]

  • [维护] [Dependabot](deps-dev): 更新 arch 要求从 <6.2.0,>=5.6.0 到 >=5.6.0,<6.3.0 (#5392) @dependabot[bot]

文档#

  • [文档] 防止 README.md 徽章表格换行 (#5263) @fkiraly

  • [文档] 预测扩展模板 - 添加 insample 能力标签 (#5272) @fkiraly

  • [文档] 为 fkiraly 添加 blog 徽章,用于 ODSC 博客文章 (#5291) @fkiraly

  • [文档] 提高 partition_based_clustering 笔记本的运行速度 (#5278) @alexfilothodoros

  • [文档] 记录了 plot_series 中的 ax 参数和图形 (#5325) @ShreeshaM07

  • [文档] 改进笔记本 2 - 分类、回归和聚类 的可读性 (#5312) @achieveordie

  • [文档] 为 DateTimeFeatures 类添加了文档字符串中的所有特征名称 (#5283) @Abhay-Lejith

  • [文档] sktime 入门笔记本 (#3793) @fkiraly

  • [文档] 修正 pre-commit 安装命令的代码块格式 (#5377) @alhridoy

  • [文档] 修复 AlignerDtwNumba 损坏的文档字符串示例 (#5374) @fkiraly

  • [文档] 修复分类笔记本中的拼写错误 (#5390) @pirnerjonas

  • [文档] 改进了为新贡献者准备的 PR 模板 (#5381) @fkiraly

  • [文档] set_config 的动态文档字符串 (#5306) @fkiraly

  • [文档] 更新 temporal_train_test_split 的文档字符串 (#4170) @xansh

  • [文档] 记录 plot_series 中的 ax 参数和图形 (#5325) @ShreeshaM07

修复#

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

  • [错误修复] 修复 temporal_train_test_split 在未传递 fh 时针对分层和面板数据的处理问题 (#5330) @fkiraly

  • [错误修复] 再次允许通过 metrics 将 alphacoverage 传递给 evaluate (#5354) @fkiraly, @benheid

预测#

  • [错误修复] 修复 STLForecaster 的标签 ignores-exogeneous-X 在组合器中设置不正确的问题 (#5365) @yarnabrina

  • [错误修复] statsforecast 1.6.0 兼容性 - 在 statsforecast 适配器中,修复 RuntimeError: dictionary changed size during iteration (#5317) @arnaujc91

  • [错误修复] statsforecast 1.6.0 兼容性 - 修复 sktimestatsforecast 之间的参数差异 (#5393) @luca-miniati

  • [错误修复] 修复 ARCH._check_predict_proba (#5384) @Vasudeva-bit

时间序列对齐#

  • [错误修复] 对 NaiveAligner 进行 minor 修复 (#5344) @fkiraly

时间序列距离和核#

转换#

  • [错误修复] 在 Imputer 中,修复 method="forecaster" 时未传递 y 的问题 (#5287) @fkiraly

  • [错误修复] 确保 Catch22 参数设置 n_jobs = -1 使用所有核心 (#5361) @julnow

可视化#

  • [错误修复] 修复 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-indexed)列的名称始终是变量名。

以前,在单变量情况下,它总是 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 和基础框架#

基准测试、度量、分割器#

数据集和数据加载器#

  • [增强] 为时间序列分类数据加载器设置镜像 (#5260) @fkiraly

预测#

  • [增强] 加速 test_fh 中的测试 (#5098) @fkiraly

  • [增强] 使 ForecastingGridSearchCV 对估算器中的自由 kwarg 方法(例如,图形化管道)更加鲁棒 (#5210) @benHeid

  • [增强] 使 statsforecast 适配器与可选的 predict level 参数以及不同的初始化参数集兼容 (#5112) @arnaujc91

  • [增强] 修复适用于 pandas 2.1.0test_set_freq_hier (#5185) @fkiraly

管道#

  • [增强] 适用于任何学习任务(多态)的图形化管道 (#4652) @benHeid

  • [增强] 添加图形化管道是实验性的警告 (#5235) @benHeid

  • [增强] 确保 ForecastingPipeline 与“特征提取器”兼容 (#5252) @fkiraly

概率分布和模拟器#

时间序列分类#

时间序列距离和核#

  • [增强] tslearn 距离和核,包括适配器 (#5039) @fkiraly

  • [增强] test_distancetest_distance_params 的条件执行 (#5099) @fkiraly

  • [增强] 重构基于 numba 的距离测试并添加条件执行 (#5141) @fkiraly

转换#

测试框架#

  • [增强] 通过显式 fixture 生成而不是使用 forecaster fit/predict 来加速 test_probabilistic_metrics (#5115) @Ram0nB

  • [增强] 仅在小随机子集上测试预测数据下载 (#5146) @fkiraly

  • [增强] 扩大变更条件测试执行的范围 (#5100, #5135, #5147) @fkiraly

  • [增强] 对基于 cython 的估算器进行差异测试 (#5206) @fkiraly

维护#

  • [维护] 将 CI 运行器升级到最新的稳定镜像 (#5031) @yarnabrina

  • [维护] 由于最近的失败,限制 statsforecast<1.6.0 (#5149) @fkiraly

  • [维护] 仅在小随机子集上测试预测数据下载 (#5146) @fkiraly

  • [维护] 下限依赖兼容性补丁 - binom_test (#5152) @fkiraly

  • [维护] 修复 DateTimeFeatures 测试的依赖隔离 (#5154) @fkiraly

  • [维护] 将 test_reduce_global 中的 fixture 移动到 pytest fixture (#5157) @fkiraly

  • [维护] 将 test_dropna 中的 fixture 移动到 pytest fixture (#5153) @fkiraly

  • [维护] 每个组件的额外依赖项规范 (#5136) @yarnabrina

  • [维护] 为 python 3.11 测试添加 numba (#5179) @fkiraly

  • [维护] sphinx 文档中版权范围的自动更新 (#5212) @fkiraly

  • [维护] 将 Pipeline 异常从 test_all_estimators 移动到 test _config (#5251) @fkiraly

  • [维护] 更新 pre commit hook 版本并修复 flake8 指出的 E721 问题 (#5163) @yarnabrina

  • [维护] [Dependabot](deps-dev): 更新 sphinx-gallery 依赖项从 <0.14.0 到 <0.15.0 (#5124) @dependabot[bot]

  • [维护] [Dependabot](deps-dev): 更新 pandas 依赖项从 <2.1.0,>=1.1.0 到 >=1.1.0,<2.2.0 (#5183) @dependabot[bot]

  • [维护] [Dependabot](deps): 将 actions/checkout 从 3 升级到 4 (#5189) @dependabot[bot]

  • [维护] [Dependabot](deps-dev): 更新 holidays 依赖项从 <0.32,>=0.29 到 >=0.29,<0.33 (#5214) @dependabot[bot]

  • [维护] [Dependabot](deps-dev): 更新 statsforecast 依赖项从 <1.6,>=0.5.2 到 >=0.5.2,<1.7 (#5215) @dependabot[bot]

文档#

  • [文档] 关于财务主管角色的条款 (#4798) @marrov, @kiraly

  • [文档] 修复 make_pipeline, make_reduction, window_summarizer & load_forecasting 数据 docstring (#5065) @hazrulakmal

  • [文档] 修复 _DelegatedForecaster 模块中 docstring 的微小拼写错误 (#5168) @fkiraly

  • [文档] 更新关于 predict_proba 的预测扩展模板 (#5138) @fkiraly

  • [文档] 加速教程 notebook - 深度学习分类器 (#5169) @alexfilothodoros

  • [文档] 修复 ColumnEnsembleForecaster docstring 中的渲染问题,添加 ColumnEnsembleTransformer 示例 (#5201) @benHeid

  • [文档] 学习任务特定依赖项集的安装说明文档 (#5204) @fkiraly

  • [文档] 添加 benHeid 的 allcontributors 徽章 (#5209) @benHeid

  • [文档] 修复 forecaster API 参考中的拼写错误 (#5211) @fkiraly

  • [文档] 修复 installation.rst 中的拼写错误 (#5213) @Akash190104

  • [文档] 为 temporal_train_test_split docstring 添加示例 (#5216) @JonathanBechtel

  • [文档] 更新 README 徽章:将许可证、教程和社区部分向上移动 (#5227) @fkiraly

  • [文档] 简单的编辑以使 STLForecaster docstring 正确渲染 (#5220) @hazrulakmal

  • [文档] 修复 conftest.py docstring (#5228) @fkiraly

  • [文档] 澄清 trend.py 中的 docstring (#5231) @sniafas

修复#

基准测试、度量、分割器#

  • [错误修复] 在 splitters 中,如果未给定,则正确推断 datetime 数据类型的序列频率 (#5009) @hazrulakmal

  • [错误修复] 修复适用于分层数据的 BaseWindowSplitter get_n_split 方法 (#5012) @hazrulakmal

预测#

  • [错误修复] 修复在 _predict 中导致 ConformalIntervals 异常的检查 (#5134) @fkiraly

  • [错误修复] 确保预测调优器不对列(变量)进行向量化操作 (#5145) @fkiraly, @SmirnGregHM

  • [错误修复] 修复标签以指示 NaiveForecaster 对外生特征的支持 (#5162) @yarnabrina

  • [错误修复] 为复合预测器测试中的 y_dict 添加缺失的 return 语句 (#5253) @BensHamza

  • [错误修复] 修复复合预测器测试中 y_dict 中缺失的 y_train 键 (#5255) @fkiraly

  • [错误修复] 修复 ForecastKnownValuespd-multiindex 上的失败 (#5256) @mattiasatqubes

管道#

  • [错误修复] 修复 sktime.pipeline 中缺失的 Pipeline 导出 (#5232) @fkiraly

时间序列标注#

  • [错误修复] 防止 PyODAnnotator.get_test_params 中的异常 (#5151) @fkiraly

转换#

  • [错误修复] 为 ColumnSelect 添加缺失的标签 skip-inverse-transform (#5208) @benHeid

可视化#

  • [错误修复] 解决 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-indexed)列的名称将始终是变量名。以前,在单变量情况下,它总是 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 参数。需要更多时间升级依赖代码的用户可以将 legacy_interface=True 设置保留到 0.22.last。

扩展者应使用新的 "pred_int:legacy_interface:testcfg" 配置字段来升级其第三方扩展,这与 0.21.0 变更日志中的描述一致。

转换#

  • DateTimeFeatures 中,功能 hour_of_week 已添加到 "comprehensive" 功能集中。希望继续使用以前功能集的用户应改为使用 manual_selection 参数。

PR 列表#

  • [维护] 发布工作流程中的 failfast=False (#5120) @fkiraly

  • [维护] 0.22.0 发布操作 - 在 0.21.0 中弃用 deprecated,在 0.22.0 中移除 (#4822) @fkiraly

  • [维护] 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] 应用不考虑索引的预测指标 - docstrings 和测试 (#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 fixtures 重写 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] 应用不考虑索引的预测指标 - docstrings 和测试 (#4960) @fkiraly

  • [ENH] 预测调优器中 scoring 参数的别名字符串 (#5058) @fkiraly

  • [ENH] 允许 YfromX 处理缺失数据 (#5062) @eenticott-shell

参数估算器#

  • [ENH] 加快参数拟合器基类的样板代码 (#5057) @fkiraly

概率分布和模拟器#

  • [ENH] 为 _bottom_hier_datagen 分层数据生成器添加长度选项,加快 ReconcilerForecaster doctest (#4979) @fkiraly

时间序列对齐#

  • [ENH] 来自 sktime 原生基于 numba 对齐器的编辑距离对齐算法 (#5075) @fkiraly

  • [ENH] 用输入转换扩展 BaseAligner.fit (#5077) @fkiraly

  • [ENH] 用于基线比较的简单多对齐器 (#5076) @fkiraly

  • [ENH] 完全/部分对齐的标签,完全对齐输出的精确测试 (#5080) @fkiraly

时间序列分类#

  • [ENH] 时间序列分类笔记本的全面重写 (#5045) @fkiraly

时间序列聚类#

  • [ENH] TimeSeriesLloyds, TimeSeriesKMeansTimeSeriesKMedoids 的显式质心初始化 (#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] 单个估算器的依赖项和 diff 测试开关,用于修饰非套件测试 (#5084) @fkiraly

维护#

文档#

修复#

BaseObject 和基础框架#

  • [BUG] 在 craft 中,修复将 True, False 错误检测为类名的问题 (#5066) @fkiraly

基准测试、指标、拆分器#

  • [BUG] 在 geometric_mean_absolute_error 中使用正确的参数 (#4987) @yarnabrina

数据类型、检查、转换#

  • [BUG] 修复 vectorize_est 在行向量化时返回混乱的行,pd.DataFrame 返回,如果行名不是按字典顺序排序的 (#5110) @fkiraly, @hoesler

预测#

  • [BUG] 澄清预测调优估算器的 docstrings 和错误消息,以防 refit=False (#4945) @fkiraly

  • [BUG] 修复 ConformalIntervals 在包装的估算器支持分层 mtypes 时失败的问题 (#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] 修复 Differencer.inverse_transform 在训练数据上的问题,如果 na_handling=fill_zero (#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 版本起不再作为依赖项。用户或开发者无需采取任何行动,因为该包仅用于内部弃用操作。

  • 在 python 3.7 EOL 后,pycatch22 已被重新添加为软依赖项

弃用和移除#

预测 - 单变量概率预测的列命名变更#

从 0.23.0 起,预测器的 predict_quantilespredict_intervals 在单变量情况下的返回值将与多变量情况保持一致:最上层(索引为 0)列级的名称将始终是变量名。此前,在单变量情况下,无论 y 中存在的变量名是什么,它始终是 CoverageQuantiles,而在多变量情况下,它始终是 y 中存在的变量名。

此变更将在两个次要周期内进行: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) 的未来命名约定进行检查,适用于具有标准签名(不带 legacy_interface 参数)的 _predict_quantiles_predict_intervals 方法。从 0.23.0 版本起,该标签将不再生效。

  • 在变更期内:如果将该标签设置为 "new",测试将始终根据新接口进行检查;如果将该标签设置为 "old",测试将始终根据旧接口进行检查,无论处于哪个阶段。从 0.23.0 版本起,此设置将不再生效,测试将始终根据新接口进行检查。

  • 扩展开发者 - 推荐的变更操作:扩展开发者应力争在 0.21.last 版本之前将其第三方扩展升级到 "pred_int:legacy_interface:testcfg=new" 的行为。通过在将其传递给 check_estimator 之前设置 forecaster.set_config({"pred_int:legacy_interface:testcfg": "new"}),可以强制对后期阶段和弃用后的行为进行测试。set_config 调用可以在 0.22.0 之后移除,并且应在 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 列表#

  • [增强] 在单变量情况下,将 "Coverage""Quantiles" 的默认变量名替换为变量名 (#4880) @fkiraly, @benheid

  • [BUG] 0.21.0 发布版本错误修复 - 修复 sklearn 1.3.0test_make_scorer 中基于 partial 的动态错误指标的交互问题 (#4915) @fkiraly

  • [维护] 暂时标记 mlflow 失败 #4904 直至调试完成,为 py-spy 添加 gitignore (#4913) @fkiraly

  • [文档] 0.21.0 发布操作 - 更新弃用指南以反映 deprecated 使用的弃用 (#4914) @fkiraly

  • [维护] 0.21.0 发布操作 - 将 sklearn 上限更新至 <1.4.0 (#4778) @fkiraly

  • [维护] 0.21.0 发布操作 - 在 Python 3.7 EOL 后将 pycatch22 添加回软依赖 (#4790) @fkiraly

版本 0.20.1 - 2023-07-14#

重点更新#

  • Monash 预测仓库的数据加载器 (#4826) @hazrulakmal

  • 估计器创建器 = 所有对象/估计器蓝图规范的字符串序列化/反序列化 (#4738) @fkiraly

  • SkoptForecastingCV - 使用 scikit-optimize 对预测器进行超参数调优 (#4580) @hazrulakmal

  • 新的预测器 - statsmodels AutoReg 接口 (#4774) @CTFallon, @mgazian000, @JonathanBechtel

  • 新的预测器 - 按预测范围划分的 FhPlexForecaster,用于每个预测范围使用不同的估计器/参数 (#4811) @fkiraly

  • 新的转换器 - SplitterSummarizer,用于按折叠应用转换器 (#4759) @BensHamza

  • ColumnEnsembleTransformer - remainder 参数 (#4789) @fkiraly

  • 新的分类器和回归器 - 从 sktime-dl 迁移的 MCDCNN 估计器 (#4637) @achieveordie

核心接口变更#

BaseObject#

  • 已添加对象蓝图(规范)到字符串的序列化/反序列化功能。“蓝图”在此处指处于初始化状态的对象组合,例如原始的预测管道。所有对象都可以通过 str 强制转换进行序列化,例如 str(my_pipeline),并通过 sktime.registry.craft : str -> object 进行反序列化。反序列化器 craft 在固定的 Python 环境下是序列化器 str 的伪逆,因此可用于完全可重现的规范存储和共享,例如在可重现科学或性能基准测试中。

  • 进一步的工具 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#

基准测试和指标#

  • [增强] 重构 evaluate 例程,内部使用 splitter 并允许单独对 X 进行分割 (#4861) @fkiraly

数据加载器#

预测#

  • [增强] 重构 ForecastingHorizon,使其在私有方法中使用基于 Indexcutoff (#4463) @fkiraly

  • [增强] SkoptForecastingCV - 使用 scikit-optimize 进行超参数调优 (#4580) @hazrulakmal

  • [增强] 为 predict_intervalpredict_quantiles 添加更多契约测试 (#4763) @yarnabrina

  • [增强] statsmodels AutoReg 接口 (#4774) @CTFallon, @mgazian000, @JonathanBechtel

  • [增强] 移除预测模块中的私有默认值 (#4810) @fkiraly

  • [增强] 按预测范围划分的预测器,用于每个预测范围使用不同的估计器/参数 (#4811) @fkiraly

  • [增强] 复制另一个 splitter 的 loc 的 splitter (#4851) @fkiraly

  • [增强] test+train splitter 组合器 (#4862) @fkiraly

  • [增强] 将 ForecastX 缺失数据处理标签设置为 True,以正确处理未来未知变量 (#4876) @fkiraly

时间序列分类#

  • [增强] 确保 BaggingClassifier 可用作单变量到多变量的组合器 (#4788) @fkiraly

  • [增强] 从 sktime-dl 迁移 MCDCNN 分类器、回归器和网络 (#4637) @achieveordie

  • [增强] 在 CNNNetwork 中,添加控制 paddingfilter_size 逻辑的选项 (#4784) @alan191006

时间序列回归#

  • [增强] 从 sktime-dl 迁移 MCDCNN 分类器、回归器和网络 (#4637) @achieveordie

转换器#

  • [增强] 允许在 BaseTransformer.transform 中使用 X=None (#4112) @fkiraly

  • [增强] 为 DateTimeFeatures 转换器添加 hour_of_week 选项 (#4724) @VyomkeshVyas

  • [增强] ColumnEnsembleTransformer - remainder 参数 (#4789) @fkiraly

  • [增强] SplitterSummarizer 转换器,用于按折叠应用转换器 (#4759) @BensHamza

可视化#

  • [增强] 移除 plot_series / plot_interval 中关于列名的假设 (#4779) @fkiraly

维护#

  • [维护] 暂时跳过所有 DL 估计器 (#4760) @achieveordie

  • [维护] 移除 Windows CI 上的 verbose 标志 (#4761) @fkiraly

  • [维护] 处理 sklearn 1.3 中 if_delegate_has_method 的弃用问题 (#4764) @fkiraly

  • [维护] 将 tslearn 版本限制为 <0.6.0,由于依赖处理不当和大量导入 (#4819) @fkiraly

  • [维护] 确保针对 python 3.8-3.10 的 CI 在 pandas 2 上运行 (#4795) @fkiraly

  • [维护] 也在 pandas 2 测试依赖集中限制 tslearn (#4825) @fkiraly

  • [维护] 清理 CODEOWNERS (#4782) @fkiraly

  • [维护] 在 main 分支上跳过失败的 test_transform_and_smooth_fp 测试 (#4836) @fkiraly

  • [维护] 解除 sphinx 和插件的 Pin,并设置防御性上限 (#4823) @fkiraly

  • [维护] Dependabot 设置 (#4852) @yarnabrina

  • [维护] 将 readthedocs 环境更新至 python 3.11 和 ubuntu 22.04 (#4821) @fkiraly

  • [维护] [Dependabot](依赖): 将 actions/download-artifact 从 2 升级到 3 (#4854) @dependabot[bot]

  • [维护] [Dependabot](依赖): 将 styfle/cancel-workflow-action 从 0.9.1 升级到 0.11.0 (#4855) @dependabot[bot]

  • [维护] [Dependabot](依赖): 将 actions/upload-artifact 从 2 升级到 3 (#4856) @dependabot[bot]

  • [维护] 修复剩余的 sklearn 1.3.0 兼容性问题 (#4860) @fkiraly, @hazrulakmal

  • [维护] 移除 0.13.0 中遗忘的 deprecated 导入 (#4824) @fkiraly

  • [维护] 扩展对带有版本规范和别名的包的软依赖错误消息测试支持 (#4867) @hazrulakmal, @fkiraly

文档#

  • [文档] 更新入门文档,添加回归教程 (#4216) @GargiChakraverty-yb

  • [文档] 在 read-the-docs 中为非最新分支添加横幅 (#4681) @yarnabrina

  • [文档] 极大简化预测器和转换器扩展模板 (#4729) @fkiraly

  • [文档] 为 K-Means 和 K-Medoids 的 docstrings 添加示例 (#4736) @CTFallon

  • [文档] 改进 README 中的表述 (#4757) @mswat5

  • [文档] 测试指南:为 doctest 命令添加省略号标志 (#4768) @mdsaad2305

  • [文档] 为时间序列森林回归器和 Dummy 回归器的 docstrings 添加示例 (#4775) @mgazian000

  • [文档] 将缺失的指标添加到 API 参考文档 (#4813) @fkiraly

  • [文档] 更新 LICENSE 和 readthedocs 许可常量中的日期/年份 (#4816) @fkiraly, @yarnabrina

  • [文档] 改进软依赖指南 (#4831) @fkiraly

  • [文档] 对稍微混乱的预测 API 参考文档进行排序 (#4815) @fkiraly

  • [文档] 修复文档中 ColumnSelect 的拼写错误 (#4800) @fkiraly

  • [文档] 对预测器和转换器扩展模板进行小改进 (#4828) @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 的依赖项已停止支持。

  • pre-commit 和编码风格升级 (3.8 及以上)

  • 计划的 0.20.0 弃用操作

依赖项变更#

  • numpy 版本限制现在允许 1.25.X 版本

弃用和移除#

Python 3.7 生命周期结束#

sktime 0.20.0 及更高版本不再支持 Python 3.7。

Python 3.7 于 2023 年 6 月 27 日终止生命周期,并且 sktime 的核心依赖项(例如 scikit-learn)已在其最新版本中停止支持 Python 3.7。

时间序列分类#

ComposableTimeSeriesClassifierWeightedEnsembleClassifier 已完成迁移至 classification.ensemble,它们不再能从原位置导入。

拉取请求列表#

  • [维护] 0.20.0 弃用操作 (#4733) @fkiraly

  • [维护] 0.20.0 发布操作 - 移除对 Python 3.7 的支持 (#4717) @fkiraly

  • [维护] 0.20.0 发布操作 - 将 scikit-base 版本上限提高至 <0.6.0 (#4735) @fkiraly

  • [维护] 0.20.0 发布操作 - 支持 numpy 1.25 (#4720) @jorenham

  • [维护] 0.20.0 发布操作 - 移除 Python 模块中在 Python 3 中不必要的初始 utf 注释 (#4725) @yarnabrina

  • [维护] 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 结束。对于包含 horizon 中所有 n 个整数步长的 n 步提前预测,应传递 range(1, n+1)

改进#

预测#

  • [改进] statsforecast AutoETS 直接接口估计器 (#4648) @yarnabrina

  • [改进] statsforecast AutoCES 直接接口估计器 (#4649) @yarnabrina

  • [改进] 改进了 BaseForecaster 的异常消息,并引用了 self 类名 (#4699) @fkiraly

  • [改进] 支持在 ForecastingHorizon 以及 fitpredict 方法中将 horizon 作为 range 对象传递 (#4716) @yarnabrina

时间序列分类#

文档#

维护#

  • [维护] 解决 main 分支上的 pre-commit 问题 (#4673) @yarnabrina

  • [维护] 在测试中排除一些基于 DL 和 numba 的估计器以防止内存过载 (#4682) @fkiraly

  • [维护] 移除从 sklearn 的私有导入 - set_random_state (#4672) @fkiraly

  • [维护] 更新 pre-commit hook 版本及相应更改 (#4680) @yarnabrina

  • [维护] 在 show_versions 的默认包版本显示中添加 skbase (#4694) @fkiraly

  • [维护] 减少 CI 测试日志的详细程度 (#4715) @fkiraly

  • [维护] 从 CI 中移除 Python 3.7 测试 (#4722) @fkiraly

修复#

BaseObject#

基准测试#

数据集和数据加载器#

  • [错误] 修复 UEA 数据集的失效源链接 (#4705) @fkiraly

  • [错误] 从 TSC 数据注册表中移除 IOError 数据集 (#4711) @fkiraly

数据类型、检查、转换#

  • [错误] 修复当并非所有索引级别都存在时,从 pd-multiindexdf-list 的转换问题 (#4693) @fkiraly

  • [错误] 修复当列名未按字典顺序排列时,vectorize_est 在进行列向量化和返回 pd.DataFrame 时列顺序混乱的问题 (#4684) @fkiraly@hoesler

预测#

  • [错误] 修正多元 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 的核心依赖项(例如 scikit-learn)已在其最新版本中停止支持 Python 3.7。

sktime 将在 0.20.0 版本或 2023 年 6 月 27 日之后的第一个次要版本中停止支持 Python 3.7,以两者中较晚者为准。

依赖项#

  • tensorflow-probability 不再是依赖项或软依赖项,它也已从所有依赖项集合(包括 dl)中移除。

预测#

  • legacy_interface 参数已从预测器的 predict_proba 方法中移除。该方法现在始终返回一个 BaseDistribution 对象,这与先前的默认行为一致,即 legacy_interface=False

拉取请求列表#

  • [维护] 0.19.0 变更操作 - 放宽 pandas 版本上限至 <2.1.0 (#4429) @fkiraly

  • [维护] 0.19.0 发布操作 - 同时对 pandas 1pandas 2 进行测试 (#4622) @fkiraly

  • [维护] 0.19.0 弃用和变更 (#4646) @fkiraly

版本 0.19.0#

因维护目的跳过,不应使用。(已从 pypi 移除)

版本 0.18.1 - 2023-05-22#

亮点#

核心接口变更#

概率分布#

  • Monte Carlo 近似法的默认样本大小规范现在使用 scikit-base 配置系统

  • 添加了 quantile 方法,它以与 BaseForecaster.predict_quantiles 返回分位数预测相同的格式返回分位数表

  • 添加了 ppf 方法用于返回分位数

改进#

基准测试#

  • [改进] evaluate 拟合失败时提供更清晰的错误消息 (#4545) @fkiraly

  • [改进] 将预测基准测试框架扩展到支持多个指标,并增加测试覆盖率 (#4586) @hazrulakmal

预测#

  • [改进] statsforecast AutoTheta 直接接口估计器 (#4539) @yarnabrina

  • [改进] 移除长度为 1 的预测管道的警告 (#4546) @fkiraly

  • [改进] 用于预测的简单表格预测降维 (#4564) @fkiraly

  • [改进] 以通用方式重写了 _StatsForecastAdapter 以支持除 AutoARIMA 之外的其他模型 (#4629) @yarnabrina

概率分布#

  • [改进] 将概率分布统计近似样本大小移至配置接口 (#4561) @fkiraly

  • [改进] 为 AutoETS 添加更多测试参数集 (#4588) @fkiraly

  • [改进] 改进 BaseDistribution 的默认设置,并增加测试覆盖率 (#4583) @fkiraly

时间序列对齐#

  • [改进] 为时间序列对齐器添加完整的测试套件 (#4614) @fkiraly

  • [改进] 基于 numba 的对齐路径作为 sktime 对齐器 (#4620) @fkiraly

时间序列分类#

  • [改进] SimpleRNN DL 时间序列回归器,从 sktime-dl 迁移而来 (#4185) @ArushikaBansal

  • [改进] 将分类集成模型移至 classification.ensembles (#4532) @fkiraly

  • [改进] 改进了 DrCIF 中自定义估计器和参数的文档和测试覆盖率 (#4621) @Taise228

  • [改进] 添加 MACNN 分类器和网络 (#4636) @achieveordie

时间序列距离和核函数#

  • [改进] 独立的距离和多元聚合核函数封装器 (#4598) @fkiraly

  • [改进] 距离和核函数的变量子集 dunder 方法 (#4596) @fkiraly

转换#

  • [改进] 移除 TSFreshFeatureExtractor 中不必要的转换 (#4571) @fkiraly

测试框架#

  • [改进] 在 test_fit_does_not_overwrite_hyper_params 中将 joblib.hash 替换为 deep_equals,用于基于 pandas 的参数 (#4538) @fkiraly

  • [改进] 在 check_estimator 中添加了 msg 参数 (#4552) @fkiraly

维护#

  • [维护] 将静默依赖项添加到核心依赖项集合 (#4551) @fkiraly

  • [维护] 将 tensorflow-probability 版本限制为 <0.20.0 (#4567) @fkiraly

  • [维护] 根据 issue #4379 将 Union[int | float] 更改为 float (#4575) @mdsaad2305

  • [维护] 移除剩余的与软依赖项相关的模块导入警告 (#4554) @fkiraly

  • [维护] check_estimator 中的 pytest 隔离 (#4552) @fkiraly

  • [维护] 移除剩余的与软依赖项相关的模块导入警告 (#4554) @fkiraly

  • [维护] 临时限制 holidays 版本以避免在 Prophet 中出现错误,后已恢复 (#4594, #4600) @fkiraly@yarnabrina

  • [维护] 移除估计器中 tsfresh 的 Python 版本限制 (#4573) @fkiraly

  • [维护] 从 CI 中排除 FCNClassifier 以防止在 bugfix 修复前出现内存溢出 (#4616) @fkiraly

  • [维护] 处理 scipykulsinski 的弃用 (#4618) @fkiraly

  • [维护] 从 check_is_scitype 文档字符串中移除被遗忘的 legacy_interface 引用 (#4630) @fkiraly

文档#

  • [文档] 修正 DynamicFactor 文档字符串中的拼写错误 (#4523) @kbpk

  • [文档] 改进了 distances/kernels 模块中的文档字符串 (#4526) @fkiraly

  • [文档] 在文档页面上添加 sktime 实习链接 (#4559) @fkiraly

  • [文档] 改进 MAPE 指标的文档字符串 (#4563) @hazrulakmal

  • [文档] 更新 minirocket.ipynb 中的链接 (#4577) @panozzaj

  • [文档] 补充词汇表术语 (#4556) @sanjayk0508

  • [文档] 修正 make sphinx - language (conf.py) 中的警告以及 dists_kernels.rst 中的错误导入 (#4593) @mdsaad2305

  • [文档] 添加 sktime logo 的 SVG 版本 (#4604) @marrov

  • [文档] 将 logo 更新为矢量图形 png 版本 (#4605) @fkiraly

  • [文档] 将 sktime logo 更改为矢量图形 svg (#4606) @fkiraly

  • [文档] 移除 svgpng 格式的 sktime logo 中的白色填充 (#4607) @fkiraly

  • [文档] AutoETS 文档字符串 - 澄清依赖于 auto 参数的条件忽略 (#4597) @luca-miniati

  • [文档] 修正 dists_kernels.rst 中的模块路径 (#4625) @mdsaad2305

  • [文档] 贡献者更新 (#4609) @fkiraly

  • [文档] 更新了 PULL_REQUEST_TEMPLATE.md (#4599) @fkiraly

  • [文档] SimpleRNNClassifier 的文档字符串 (#4572) @wasup-yash

  • [文档] 贡献者更新 (#4640) @fkiraly

  • [文档] 更新团队/角色页面 (#4641) @fkiraly

  • [文档] 添加从常见表格csv格式加载数据的示例 (#4612) @TonyZhangkz

  • [文档] 序列比对器的扩展模板 (#4613) @fkiraly

  • [文档] 修复编码标准指南中的小问题 (#4619) @fkiraly

  • [文档] 移除遗忘的 legacy_interface 引用来自 check_is_scitype 的文档字符串 (#4630) @fkiraly

  • [文档] 向测试文档添加 doctest 指南 (#4634) @mdsaad2305

修复#

BaseObject, BaseEstimator#

  • [错误] 修复 get_fitted_params_HeterogenousMetaEstimator 中的问题 (#4633) @fkiraly

预测#

  • [错误] 纠正了针对 _predict_interval 的默认逻辑,以防 _predict_quantiles 未实现但 _predict_proba 已实现 (#4529) @fkiraly

  • [错误] RecursiveReductionForecaster 的 pandas 2 修复 (#4568) @fkiraly

  • [错误] 在 _StatsModelsAdapter 中,如果在 _predict_interval 中参数不受支持,则避免将 exog 传递到 statsmodelsget_prediction (#4589) @yarnabrina

  • [错误] 修复在 BaseGridCVn_best_forecasters_ 的错误排序,如果指标的 lower_is_betterFalse (#4590) @hazrulakmal

概率分布#

  • [错误] 修复在 BaseDistribution 中的错误消息,如果默认方法未实现 (#4628) @fkiraly

  • [错误] 修复在 BaseDistributionquantile 返回值中 alpha 的错误排序 (#4631) @fkiraly

时间序列距离和核#

  • [错误] 修复在 BasePairwiseTransformerPanel 中的输入检查错误消息 (#4499) @fkiraly

时间序列分类#

时间序列回归#

转换#

  • [错误] 修复在 BaseTransformer 中关于 y 输入类型检查的提示性错误消息 (#4525) @fkiraly

  • [错误] 修复 DateTimeFeatures'month_of_quarter' 特征返回的错误值 (#4542) @fkiraly

  • [错误] 修复在 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#

维护版本 - 计划中的 numba, scikit-base, pandas 依赖更新,计划中的弃用。

上次非维护内容更新,请参阅 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 中已从核心依赖更改为软依赖。为确保依赖于基于 numba 的估计器的 sktime 代码设置在未来继续正常运行,请确保在环境中显式安装 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。可以通过在 predict_proba 中设置参数 legacy_interface=False 来获取 0.17.0 之前基于 tensorflow-probability 的旧返回类型。这对于处理弃用很有用。

  • 从 0.19.0 起,legacy_interface 参数将从 predict_proba 中移除,以及返回基于 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 的情况下,估计器可以通过 check_estimator 来测试 pandas 2 的兼容性

    • 欢迎在 #4426 报告兼容性问题 (直接输入或链接自)

  • 在全面支持期 (0.19.0 及更高版本)

    • sktime 的要求将允许 pandas 2.0.X 并随着 pandas 发布扩展支持

    • sktime 的目标是兼容 pandas 2 (任何版本),以及 pandas 1, >=1.1.0

    • 用户根据其下游环境的要求选择他们偏好的 pandas 版本

    • 错误和问题跟踪器应正常使用

PR 列表#

  • [维护] 0.18.0 更改操作 - numba 作为软依赖 (#3843) @fkiraly

  • [维护] 0.18.0 弃用操作 (#4510) @fkiraly

  • [维护] 确保在 mlflow 预测接口中的 predict_proba 调用显式调用 legacy_interface (#4514) @fkiraly

  • [维护] skbase 重构 - 第 1 部分:BaseObject 和包依赖项 (#3151) @fkiraly

  • [维护] skbase 重构 - 第 2 部分:all_estimators 查找 (#3777) @fkiraly

  • [增强] 分布的 quantile 方法,如果 predict_proba 存在则为预测器的 predict_quantiles 提供默认实现 (#4513) @fkiraly

  • [增强] 添加 all_estimators 标签过滤器的测试 (#4512) @fkiraly

版本 0.17.2 - 2023-04-24#

亮点#

  • 来自 pydata global 2022 的转换器和管道教程现已在 sktime 中提供,请参阅 示例 (#4381) @dashapetr

  • SARIMAX 的概率预测功能 (#4439) @yarnabrina

  • sktime-dl 迁移的 InceptionTime 分类器 (#3003) @tobiasweede

  • SplitterBootstrapTransformer 用于基于任何拆分器的自举 (#4455) @fkiraly

  • IxToX 一个从时间索引或层次结构标签创建特征的转换器 (#4416) @fkiraly

  • 概率预测接口的多项错误修复 - BaggingForecaster, BATS, TBATS, DynamicFactor, VECM

核心接口变化#

预测#

  • 所有预测器 (Baseforecaster 的后代) 现在有了以下新标签

    • capability:insample,布尔值,指示预测器是否可以进行样本内预测。

    • capability:pred_int:insample,布尔值,指示预测器是否可以进行概率样本内预测,例如样本内预测区间。

  • 所有预测器现在通过 check_estimator 测试区间预测的接口一致性,包括样本内(基于上述标签)和样本外。

时间序列分类#

  • 所有时间序列分类器 (BaseClassifier 的后代) 现在有一个标签 capability:predict_proba。这指示分类器是否实现了非默认(非德尔塔质量)的概率分类功能。

增强#

数据类型、检查、转换#

  • [增强] 允许在 get_slice 中使用包含/不包含边界 (#4483) @fkiraly

预测#

  • [增强] 添加 _predict_intervalSARIMAX 以支持 predict_intervalpredict_quantiles (#4439) @yarnabrina

  • [增强] 将 ForecastingHorizon-BaseForecastercutoff 接口转移为依赖于公共点 (#4456) @fkiraly

  • [增强] 测试样本内预测 - 替换在 test_predict_time_index 中的 try/except 为标签和依赖于标签的契约 (#4476) @fkiraly

  • [增强] 移除分位数预测契约中的单调性要求 (#4480) @fkiraly

  • [增强] 移除 BaseForecaster_predict_interval_predict_quantiles 中多余的实现检查 (#4481) @yarnabrina

  • [增强] 季节性制表实用工具 (#4490) @fkiraly, @marrov

  • [增强] 测试所有预测器的 predict_quantilespredict_interval 样本内 (#4470) @fkiraly

  • [增强] 性能优异的 NaiveForecaster 重实现 - "last" 策略 (#4461) @fkiraly

  • [增强] 在 _StatsModelsAdapter 中添加 _predict_interval 并在其他估计器中继承以减少代码重复 (#4465) @yarnabrina

  • [增强] 在 ForecastingHorizon 中,重构 to_absolute().to_pandas() 调用到一个方法 (#4464) @fkiraly

时间序列分类#

  • [增强] predict_proba 分类器的功能标签 (#4012) @fkiraly

  • [增强] 迁移 InceptionTime 分类器和示例 (从 sktime-dl) (#3003) @tobiasweede

时间序列回归#

转换#

  • [增强] IxToX 一个从时间索引或层次结构标签创建特征的转换器 (#4416) @fkiraly

  • [增强] SplitterBootstrapTransformer 用于基于任何拆分器的自举 (#4455) @fkiraly

  • [增强] 一个按面板或实例应用的转换器组合器 (#4477) @fkiraly

测试框架#

  • [增强] 改进的 _make_series 实用工具和文档字符串 (#4487) @fkiraly

  • [增强] 移除在 _make_series 中对 return_numpy 参数的调用 (#4488) @fkiraly

维护#

  • [维护] 更改了 ElectricDevices.csvGunPoint.csv 的行尾从 CRLFLF (#4452) @yarnabrina

  • [维护] 确保测试矩阵中的所有元素完成运行 (#4472) @fkiraly

  • [维护] 添加 InceptionTimeClassifierLSTMFCNClassifier 作为直接模块导出 (#4484) @fkiraly

  • [维护] 处理来自依赖项的一些警告和弃用消息 (#4486) @fkiraly

文档#

  • [文档] 修复 MiniRocket 示例代码中的错误 - 错误的转换器 (#4497) @doncarlos999

  • [文档] 添加 InceptionTimeClassifierLSTMFCNClassifier 到 API 文档 (#4484) @fkiraly

  • [文档] 修复 cython 接口引用中的拼写错误,MySQM -> MrSQM (#4493) @fkiraly

  • [文档] 将内容从 pydata global 2022 (转换器,管道教程) 移动到 sktime 主仓库 (#4381) @dashapetr

  • [文档] 改进了 sktime 在 readthedocs 登录页面的描述 (#4444) @howdy07

修复#

预测#

  • [错误] 修复在 BaggingForecaster 的概率预测中 pandas 的写入错误 (#4478) @fkiraly

  • [错误] 修复在 0.17.1 之后在 _PmdArimaAdapter_StatsForecastAdapter 中的 predict_quantiles (#4469) @fkiraly

  • [错误] ForecastingHorizon 构造函数 - 覆盖从常规 DatetimeIndex 基于的预测范围中错误推断出的 freq 属性 (#4466) @fkiraly, @yarnabrina

  • [错误] 修复损坏的 DynamicFactor._predict_interval (#4479) @fkiraly

  • [错误] 修复 pmdarima 接口损坏,当 X 包含的索引多于预测范围时 (#3667) @fkiraly, @SzymonStolarski

  • [错误] 修复 BATSTBATS_predict_interval 接口 (#4492, #4505) @fkiraly`

  • [错误] 修复 VECM._predict_interval 接口用于日期类索引 (#4506) @fkiraly

测试框架#

  • [错误] 修复可为空输入测试中的索引错误 (#4474) @fkiraly

贡献者#

@dashapetr, @doncarlos999, @fkiraly, @howdy07, @marrov, @SzymonStolarski, @tobiasweede, @yarnabrina

版本 0.17.1 - 2023-04-10#

维护补丁 (pandas 2, attrs)。有关最新的内容更新,请参阅 0.17.0。

  • pandas 2 兼容性补丁

  • pandas 2 的实验性支持,包含测试和用户升级说明

  • sktime 将继续支持 pandas 1 版本

请在 #4426 中提供用户反馈和 pandas 2 兼容性问题。

依赖项变更#

  • 版本限制 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 的情况下,估计器可以通过 check_estimator 来测试 pandas 2 的兼容性

    • 欢迎在 #4426 报告兼容性问题 (直接输入或链接自)

  • 在全面支持期 (0.19.0 及更高版本)

    • sktime 的要求将允许 pandas 2.0.X 并随着 pandas 发布扩展支持

    • sktime 的目标是兼容 pandas 2 (任何版本),以及 pandas 1, >=1.1.0

    • 用户根据其下游环境的要求选择他们偏好的 pandas 版本

    • 错误和问题跟踪器应正常使用

拉取请求列表#

  • [MNT] 处理 DataFrame.aggSeries.agg 上弃用的 "mad" 选项 (#4435) @fkiraly

  • [MNT] 处理 DataFrame.agg 在非数字列上自动丢弃的弃用 (#4436) @fkiraly

  • [MNT] 解决 reducer 中与 freq 相关的弃用和 pandas 2 失败 (#4438) @fkiraly

  • [MNT] 由于偶发性失败,将 Prophettest_predict_quantiles 中排除 (#4432) @fkiraly

  • [MNT] 由于偶发性失败,将 VECMtest_predict_quantiles 中排除 (#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 开始从核心依赖项变更为软依赖项。为了确保将来依赖于基于 numba 的估计器的 sktime 代码设置能够正常工作,请确保在环境中显式安装 numba,或安装将继续包含 numbaall_extras 软依赖项集。除此之外,依赖于 numba 的估计器将与以前一样工作。

  • sktime 的基础模块将从 sktime 0.18.0 开始迁移到一个新的核心依赖项 skbase。这不会直接影响从 sktime 的功能或导入,也不会影响任何使用。

预测#

  • 预测器的 predict_proba 在 0.17.0 之前的基于 tensorflow 的返回将替换为基于 BaseDistribution 对象的返回。这将按照以下方式分两个小周期逐步淘汰。

  • 在 0.18.0 之前,只有在调用 predict_proba 在 0.17.0 之前会引发错误的情况下(即在 python 3.11 上和 python 环境中不存在 tensorflow-probability 时),预测器的 predict_proba 默认返回 BaseDistribution

  • 在 0.18.0 之前,可以通过在 predict_proba 中设置新参数 legacy_interface=False 来强制返回 BaseDistribution。这对于处理弃用很有用。

  • 从 0.18.0 开始,legacy_interface 的默认值将设置为 False

  • 从 0.19.0 起,legacy_interface 参数将从 predict_proba 中移除,以及返回基于 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] 可为空的数据类型 - 确保在 pandas 转换中将可为空的列强制转换为 float 数据类型 (#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] 概率预测重构第 2 部分 - 分布预测指标 log-loss, CRPS (#4276) @fkiraly

  • [ENH] 概率预测重构第 3 部分 - 预测器 (#4290) @fkiraly

  • [ENH] 概率预测重构第 4 部分 - 评估和调优 (#4367) @fkiraly

  • [ENH] 为预测管道构造器提供信息丰富的错误消息,针对 steps 参数 (#4371) @fkiraly

参数估计器#

  • [ENH] 将 seasonal 包接口为季节性参数估计器 (#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 模块中的 linting 问题 B016 Cannot raise a literal (#4284) @SamiAlavi

  • [MNT] 在 python 3.11 上添加与 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] 排除概率预测测试失败的预测器(之前被有 bug 的测试掩盖)(#4364) @fkiraly

  • [MNT] 将 transformations.compose 拆分为子模块 (#4368) @fkiraly

  • [MNT] 用排除失败的版本 2.9.0 替换紧急 dash 限制 (#4415) @fkiraly

  • [MNT] 删除模块中的软依赖项导入警告,并在文档中说明需要添加这些依赖项 (#4398) @fkiraly

  • [MNT] Docker 化测试 (#4285) @fkiraly, @lmmentel

  • [MNT] 修复 transformations 模块中的 linting 问题 (#4291) @SamiAlavi

  • [MNT] 修复 base, networks, registry 模块中的 linting 问题 (#4310) @SamiAlavi

  • [MNT] 解决 forecasting.base 中的循环导入 (#4329) @fkiraly

  • [MNT] 对 test_croston.py 进行 linting (#4334) @ShivamPathak99

  • [MNT] 排除概率预测测试失败的预测器(之前被有 bug 的测试掩盖)(#4364) @fkiraly

  • [MNT] 自动修复 linting 问题 (#4317) @SamiAlavi

  • [MNT] 修复 clustering 模块中的 linting 问题 (#4318) @SamiAlavi

  • [MNT] 修复 forecasting 模块中的 linting 问题 (#4319) @SamiAlavi

  • [MNT] 修复 annotation 模块中的 linting 问题 (#4309) @SamiAlavi

  • [MNT] 修复 series_as_features, tests, dist_kernels, benchmarking 模块中的 linting 问题 (#4321) @SamiAlavi

  • [MNT] 修复 classification 模块中的 linting 问题 (#4311) @SamiAlavi

  • [MNT] 修复 performance_metrics 模块中的 linting 问题 (#4320) @SamiAlavi

  • [MNT] 修复 utils 模块中的 linting 问题 (#4322) @SamiAlavi

  • [MNT] 将作者姓名替换为 GitHub ID (#4340) @SamiAlavi

  • [MNT] 处理依赖项的弃用警告 (#4423) @fkiraly

  • [MNT] 0.17.0 弃用和变更操作 (#4424) @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] 确保对于单序列,如果可推断,预测器 cutofffreq 被推断 (#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 上仍然是核心依赖项。

  • 从 0.18.0 版本开始,numba 将从核心依赖项变为软依赖项。如果在 Python 环境中存在 numba,依赖 numba 的估计器将像以前一样正常运行。

核心接口变更#

BaseEstimator#

  • 基准测试#

基于 kotsu 的基准测试模块引入了新的预测器基准测试设计和语法。

  • 预测#

预测器现在将始终保留传递的 pd.Series 中的 name 属性。此前,命名 pd.Series 并未完全支持。

弃用和移除#

  • numba 将从 sktime 0.18.0 开始从核心依赖项变更为软依赖项。为了确保将来依赖于基于 numba 的估计器的 sktime 代码设置能够正常工作,请确保在环境中显式安装 numba,或安装将继续包含 numbaall_extras 软依赖项集。除此之外,依赖于 numba 的估计器将与以前一样工作。

依赖项#

基准测试#

数据类型、检查、转换#

预测#

  • [增强] 预测器修复,以在 predict 中保留 name 属性 (#4161) @fkiraly

  • [增强] 改进/修复预测器调谐器的 scoring 参数 (#4178) @fkiraly

  • [增强] 使用 pd.DatetimeIndex 测试 Prophet (#4183) @fkiraly

  • [增强] 预测器 predict_residuals 的更快测试 (#4156) @fkiraly

  • [增强] 测试预测器保留 pd.Seriesname 属性 (#4157) @fkiraly

  • [增强] 改进/修复预测器调谐器的 scoring 参数 (#4178) @fkiraly

转换器#

  • [增强] 向 Imputer 添加原生多索引/分层数据支持 (#4194) @hoesler

  • [增强] 向 ColSelect 转换器添加面板支持 (#4193) @hoesler

修复#

数据集和数据加载器#

  • [错误] 更正 'StarlightCurves' 数据集标识符字符串为 ‘StarLightCurves’ (#4222) @NeuralNut

  • [错误] 修复 tsfile 测试中的竞态条件 (#4192) @hoesler

预测#

  • [错误] 预测器修复,以在 predict 中保留 name 属性 (#4161) @fkiraly

  • [错误] 确保 pd.Seriesname 属性在转换到/从 pd.DataFramenp.ndarray 时保留,作为 Series scitype (#4150) @fkiraly

  • [错误] AutoETS, UnobservedComponents: 修复基于整数但非零起始索引的 predict_interval (#4180) @fkiraly

参数估计#

  • [错误] 修复 SeasonalityACFSeasonalityACFqstat 中的 nlag 逻辑错误 (#4171) @fkiraly

时间序列聚类#

  • [错误] 修复 TimeSeriesDBSCAN 并移除严格的 BaseClusterer 抽象 (#4227) @fkiraly

维护#

  • [维护] 修复 .all-contributorsrc 中的合并冲突和格式问题 (#4205) @fkiraly

  • [维护] 隔离 numba - 注意:这并未使 numba 成为软依赖项 (#3631) @fkiraly

  • [维护] 隔离剩余的 numba 引用 (#4226) @fkiraly

  • [维护] 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 现在是一个软依赖项。如果 python 环境中存在 statsmodels,则依赖于 statsmodels 的估计器可以像以前一样使用。

核心接口变更#

BaseEstimator#

  • BaseEstimator 的所有后代(任何带有 fit 方法的估计器)的方法 get_fitted_params 添加了一个新的布尔参数 deep,默认为 True。与 get_params 中同名参数类似,这允许控制对于复合估计器,是返回带有估计器嵌套的拟合参数还是不带嵌套的拟合参数。

预测#

  • 所有预测器:预测器的公共 cutoff 属性已从索引元素更改为 pd.Index 子类型。要更新先前可用的代码,请将对 cutoff 的引用替换为 cutoff[0]

弃用和移除#

依赖项#

  • statsmodelssktime 0.16.0 中从核心依赖项变为软依赖项。为了确保未来依赖于基于 statsmodels 估计器的 sktime 代码正常运行,请务必在环境中显式安装 statsmodels,或安装 all_extras 软依赖项集,该集将继续包含 statsmodels

数据类型、检查、转换#

  • 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 (嵌套 dataframe) 检查速度 (#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] precommit CI 失败的紧急修复 - 移除 isort (#4164) @fkiraly

  • [MNT] 在 HierarchyEnsembleForecaster 文档字符串中隔离 statsmodels (#4166) @fkiraly

  • [维护] 0.16.0 弃用操作 - 将 BaseForecaster.cutoff 更改为 pd.Index (#3678) @fkiraly

  • [维护] 在 HierarchyEnsembleForecaster 文档字符串中隔离 statsmodels - 意外遗漏的提交 (#4168) @fkiraly

  • [维护] 0.16.0 弃用和变更操作 (#4138) @fkiraly

  • [维护] 在 pre-commit 配置中将 isort 升级到 5.12.0 (#4167) @snnbotchway

文档#

  • [文档] 修复 01_forecasting.ipynb 教程中的目录 (#4120) @fkiraly

  • [文档] 改进了 AutoETS 的文档字符串 (#4116) @fkiraly

  • [文档] 将 Paul Yim、Kevin Lam 和 Margaret Gorlin 添加到贡献者列表 (#4122) @Pyyim

  • [文档] 修复词汇表中用户指南的断开链接 (#4125) @romanlutz

修复#

BaseObject#

  • [错误] 修复 BaseObject.__eq__deep_equals 中的错误,如果属性或嵌套结构包含 float (#4109) @fkiraly

预测#

  • [错误] 修复预测器调谐器的 get_fitted_params,缺少 best_forecaster 等 (#4102) @fkiraly

  • [错误] 修复预测器向量化情况下的 get_fitted_params (#4105) @fkiraly

  • [错误] 修复 TrendForecasterPolynomialTrendForecasterDatetimeIndex 上的错误 int 强制转换 (#4133) @fkiraly

  • [错误] 移除 _RecursiveReducer 中不必要的 freq 错误 (#4124) @danbartl

时间序列分类#

  • [错误] 诊断并修复测试套件中由于 MemoryError 导致的零星故障 (#4036) @achieveordie

  • [错误] 修复 - 回调导致深度学习估计器失败 (#4095) @aaronrmm

转换器#

  • [错误] 修复转换器向量化情况下的 get_fitted_params (#4105) @fkiraly

  • [错误] 修复 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

  • 时间序列聚类的流水线和 dunders (#3967) @fkiraly

  • 新估计器:时间序列的 DBSCAN 聚类;时间序列核的核支持向量分类器 (#3950, #4003) @fkiraly, @josuedavalos

  • 在带有 ARM 处理器的 macOS 下安装 sktime 的注意事项和故障排除指南 (#4010) @dainelli98

核心接口变更#

BaseObject#

  • python_dependencies 标签现在允许使用完整的 PEP 440 规范字符串来指定包依赖项

数据类型、检查、转换#

  • 安装 dask 时可使用的新 mtypes:dask_seriesdask_paneldask_hierarchical,适用于时间序列、面板和分层数据。这些现在可以在估计器中使用。与 dask 的端到端集成尚不可用,但已在路线图上。

距离、核#

  • 成对转换器现在具有 transform_diag 方法,该方法返回距离/核矩阵的对角线

  • 成对面板转换器可以使用算术运算相互组合,这将产生相应的转换器算术组合,例如,距离之和

  • 成对面板转换器可以使用 * dunder 与简单转换器组合,这将产生一个流水线,首先应用简单转换器,然后应用成对转换器

时间序列聚类#

  • 时间序列聚类器现在可以与 make_pipeline* dunder 一起使用,以构建带有时间序列转换器的线性流水线

弃用和移除#

  • check_estimatorrun_tests 中,return_exceptions 参数已被弃用,并将在 0.17.0 中被 raise_exceptions (其逻辑非) 替换。在 0.17.0 之前,这两个参数都将起作用,非默认值将覆盖默认值。

改进#

数据类型、检查、转换#

  • [增强] dask mtypes - 第 1 部分, Series (#3554) @fkiraly

  • [增强] dask mtypes - 第 2 部分, PanelHierarchical (#4011) @fkiraly

  • [增强] 使用 pd.PeriodIndex 加速基于 pandas 的 mtypes 的检查 (#3991) @fkiraly

  • [增强] 改进基于 pandas 的面板和分层 mtype 检查的性能 (#3935) @danbartl

  • [增强] 加速分层检查并与面板方法统一 (#4061) @danbartl

距离、核#

  • [增强] 泛化 AggrDistFlatDist 以允许任意可调用对象,包括 sklearn 核函数 (#3956) @fkiraly

  • [增强] 成对转换器的 transform_diag 方法,用于计算距离/核矩阵的对角线 (#3957) @fkiraly

  • [增强] 将核转换为距离、距离转换为核的包装器 (#3958) @fkiraly

  • [增强] 时间序列距离和核的 dunders (#3949) @fkiraly

预测#

  • [增强] 向 DirectTabularRegressionForecasterDirectTimeSeriesRegressionForecaster 添加全局预测(池化)选项 (#3688) @danbartl

  • [增强] 预测基准函数 evaluate 接受评分器列表 (#3883) @aiwalter

  • [增强] 为分层预测添加契约测试 (#3969) @fkiraly

  • [增强] 扩展 Prophet 以允许使用 pd.PeriodIndex (#3995) @fkiraly

  • [增强] 改进 make_reductionscitype 的处理 (#4022) @fkiraly

  • [增强] hcrystalball 预测器适配器 (#4040) @MichalChromcak

流水线#

  • [增强] sklearnsktime 流水线适配器 (#3970) @fkiraly

时间序列分类#

  • [增强] 时间序列核的核支持向量分类器 (#3950) @fkiraly

时间序列聚类#

转换器#

  • [增强] 转换器场景中的“典型长度”常数 (#3892) @fkiraly

  • [增强] 更改 DateTimeFeatures trafo 以处理多索引数据并添加删除列的选项 (#3996) @KishManani

  • [增强] 时间分箱聚合转换器 (#3997) @fkiraly

  • [增强] 使 TimeSince trafo 能够原生转换多索引数据框 (#4006) @KishManani

  • [增强] 通过更改周期差计算使 TimeSince trafo 更快 (#4018) @KishManani

  • [增强] 清理 Detrender,扩展到需要在 fit 中提供预测范围的预测器 (#4053) @fkiraly

测试框架#

  • [增强] 更新 _check_soft_dependencies 以允许使用 PEP 440 规范字符串指定版本边界 (#3925) @fkiraly

  • [增强] 允许在 _check_soft_dependencies 中使用包标识符字符串的元组/列表 (#3955) @fkiraly

  • [增强] _check_estimator_deps 也允许 BaseObject 的列表或元组 (#4002) @fkiraly

  • [增强] 扩展 sklearn_scitype 以从组合对象中正确推断 scitype (#4021) @fkiraly

  • [增强] 改进 test_estimator_tags 测试中的错误消息 (#4014) @fkiraly

  • [增强] 在 check_estimatorrun_tests 中,使用 raise_exceptions 替换 return_exceptions 参数,并进行弃用 (#4030) @fkiraly

  • [增强] 添加测试参数集,将每个估计器的测试参数集数量增加到 2 或更多 (#4043) @fkiraly

可视化#

维护#

  • [维护] 执行 0.15.0 意外遗漏的弃用操作:在 WEASELBOSS 中,移除 type_dict 并更新默认的 alphabet_size=2 (#4025) @xxl4tomxu98

  • [维护] 将 badrmarani 贡献者按时间顺序移动 (#4029) @fkiraly

  • [维护] 跳过 #4033 相关故障,直到修复 (#4034) @fkiraly

  • [维护] 由于 main 分支上未修复的故障,跳过 LSTMFCNClassifier 测试 (#4037) @fkiraly

  • [维护] scipy 的显式最低版本边界 (#4019) @fkiraly

  • [维护] 修复 _check_soft_dependencies 在没有类引用的 PEP 440 规范符下中断的问题 (#4044) @fkiraly

  • [维护] 最小依赖项集的向下兼容性修复 (#4041) @fkiraly

  • [维护] 解决 pd.Series 构造函数 dtype 弃用 / FutureWarning (#4031) @fkiraly

  • [维护] 隔离 statsmodels,最近的实例 (#4035) @fkiraly

  • [MNT] 处理 pandas astype 弃用 / FutureWarningTrendForecaster 中 (#4032) @fkiraly

  • [MNT] 在 WindowSummarizer 内部显式使用 min_periods 参数来解决弃用消息 (#4052, #4074) @arnavrneo

文档#

修复#

距离,核函数#

  • [BUG] 修复 AggrDistFlatDist 中的标签逻辑 (#3971) @fkiraly

预测#

  • [BUG] 修复 StatsForecastAutoARIMA_.predict 不正确的样本内起始索引 (#3942) @tianjiqx

  • [BUG] 修复当外生变量 X 传递的索引多于 fhstatsmodels 估计器的问题 (#3972) @adoherty21

  • [BUG] 修复 ReconcilerForecaster 未与 Aggregator 在管道中一起使用时的问题 (#3980) @ciaran-g

  • [BUG] 修复 ForecastX 预测中的逻辑错误 (#3987) @aiwalter, @fkiraly

  • [BUG] 修复 Prophet 无法处理非整数预测范围的问题 (#3995) @fkiraly

  • [BUG] 修复 BaggingForecaster 中列索引丢失的问题 (#4001) @fkiraly

  • [BUG] 修复 TrendForecasterregressor 无法强制转换为布尔值时的问题 (#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] 修复 TimeSincetime_indexstart 之间不一致的检查问题 (#4015) @KishManani

  • [BUG] 修复 Detrender 在多元和分层数据中的行为问题 (#4053) @fkiraly

测试框架#

  • [BUG] 修复 _check_soft_dependencies 在没有类引用的 PEP 440 规范符下出错的问题 (#4044) @fkiraly

可视化#

  • [BUG] plot_cluster_algorithm: 修复当 X 作为 np.ndarray 传递时出现的错误 predict_series is undefined (#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 的软依赖项。如果依赖项安装在 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 格式(详见 docstring)。list 格式自 0.14.0 版本起已弃用,并在 0.15.0 版本中被 dict 格式取代。格式由临时附加参数 msg_legacy_interface 决定,该参数的默认值现已更改为 Falsedict 格式)。msg_legacy_interface 参数以及返回旧版 list 格式的选项将在 0.16.0 版本中移除。

预测#

  • ExpandingWindowSplitterstart_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。前者中的所有估计器已移至后者。

  • TSFreshFeatureExtractorTSFreshRelevantFeatureExtractordefault_fc_parameters 的默认值已从 "efficient" 更改为 "comprehensive"

测试框架#

  • 通用接口契约测试 test_methods_do_not_change_state 已重命名为 test_non_state_changing_method_contract

增强功能#

MLOps 与部署#

BaseObject#

  • [ENH] BaseObject 的相等性 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] 修复 ExpandingWindowSplitterstart_with_window 弃用问题 (#3953) @fkiraly

  • [BUG] 修复 EnsembleForecaster 错误的广播和属性冲突问题 (#3964) @fkiraly

时间序列分类#

  • [BUG] 修复 ClassifierPipelineRegressorPipeline 中未报告的 set_params bug (#3857) @fkiraly

  • [BUG] 修复 KNN 估计器的 kneighbors 方法使其适用于所有 mtypes (#3927) @fkiraly

时间序列回归#

  • [BUG] 修复 ClassifierPipelineRegressorPipeline 中未报告的 set_params bug (#3857) @fkiraly

  • [BUG] 修复 KNN 估计器的 kneighbors 方法使其适用于所有 mtypes (#3927) @fkiraly

转换#

  • [BUG] ClearSky 在 range indexes 和 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#

亮点#

  • 关于转换器和特征工程的专用 notebook 教程 - 敬请关注 pydata global 2022 上的更多内容! (#1705) @fkiraly

  • 添加新数据集加载器的文档和分步指南 (#3805) @templierw

  • 新的变换器: Catch22Wrapperpycatch22 的直接接口 (#3431) @MatthewMiddlehurst

  • 新的变换器: TimeSince,用于特征工程,表示自固定日期/索引以来的时间 (#3810) @KishManani

  • 置换包装器 Permute,用于调整预测管道中估计器的顺序 (#3689) @aiwalter @fkiraly

  • 所有软依赖项现在在测试中被隔离,所有测试现在使用最小依赖项运行 (#3760) @fkiraly

核心接口变更#

预测#

  • 变量子集化外生数据的双下划线方法:my_forecaster[variables] 将创建一个 ForecastingPipeline,将外生数据子集化为 variables

增强功能#

BaseObject#

  • [增强] _HeterogenousMetaEstimator 的默认 get_params / set_params & [错误修复] 修复 FeatureUnionget_params 中的无限循环,由 hoesler 贡献 (#3708) @fkiraly

预测#

  • [增强] 基于反馈的直接缩减器原型重做 (#3382) @fkiraly

  • [增强] 预测默认更新警告指向流式预测包装器 (#3410) @fkiraly

  • [增强] 预测的 getitem / 方括号双下划线方法 (#3740) @fkiraly

  • [增强] 添加全局预测案例的测试 (#3728) @danbartl

时间序列分类#

时间序列回归#

  • [增强] 添加一些 get_test_params 值到深度学习分类器和回归器中 (#3761) @TonyBagnall

变换#

  • [增强] 变换输出检查失败时提供更好的错误消息 (#3724) @fkiraly

  • [增强] FeatureUnion 的第二个测试案例,无名称构建 (#3792) @fkiraly

  • [增强] 置换包装器 Permute,用于调整管道序列的顺序 (#3689) @aiwalter @fkiraly

  • [增强] TSFreshRelevantFeatureExtractorfit_transform 方法 (#3785) @MatthewMiddlehurst

  • [增强] TimeSince 变换器,用于特征工程,表示自固定日期/索引以来的时间 (#3810) @KishManani

治理#

修复#

数据加载器#

  • [错误修复] 移除测试并向 load_solar 添加警告 (#3771) @ciaran-g

预测#

时间序列分类#

  • [错误修复] keras 导入快速修复 (#3744) @ltsaprounis

  • [错误修复] 在 TemporalDictionaryEnsemble 中,设置 Parallelprefer="threads",修复 #3788 (#3808) @TonyBagnall

  • [错误修复] 在 DummyClassifier 中,修复不正确设置的 capability:multivariate 标签 (#3858) @fkiraly

变换#

  • [错误修复] 修复 FourierFeaturespd.DatetimeIndex 下的行为 (#3606) @eenticott-shell

  • [错误修复] 修复 FeatureUnionget_params 中的无限循环 (#3708) @hoesler @fkiraly

  • [错误修复] SupervisedIntervals 错误修复和清理 (#3727) @MatthewMiddlehurst

  • [错误修复] 减小 MultiRocket 测试示例的大小,以避免测试中偶尔出现的 MemoryError (#3813) @TonyBagnall

  • [错误修复] 修复变换器 Primitives 输出在行向量化情况下的返回索引问题 (#3839) @fkiraly

  • [错误修复] 在 Reconciler 中,修复外部索引中只有一个唯一 ID 的小型层次结构的求和矩阵错误 (#3859) @ciaran-g

测试框架#

  • [错误修复] 更新 test_deep_estimator_full 以包含新版本的 tensorflow / keras (#3820) @achieveordie

文档#

维护#

  • [维护] 将 setup.py 转换为 pyproject.toml。取决于 setuptools>61.0.0 (#3723) @jorenham @wolph

  • [维护] 解耦预测管道模块与注册表 (#3799) @fkiraly

  • [维护] 暂时跳过新的失败测试 test_deep_estimator_full[keras-adamax] (#3817) @fkiraly

  • [维护] 在测试中隔离软依赖项 (#3760) @fkiraly

  • [维护] 修复 pyproject.toml 中的断开字符串 (#3797) @TonyBagnall

  • [维护] 从测试中排除 TapNet (#3812) @TonyBagnall

  • [维护] 在非套件测试中测试软依赖项隔离 (#3750) @fkiraly

  • [维护] 解决 ContinuousIntervalTreeRandomShapeletTransform 的弃用警告 (#3796) @MatthewMiddlehurst

  • [维护] 隔离 statsmodels,第 4 部分:在非套件测试中隔离 statsmodels (#3821) @fkiraly

贡献者#

@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#

亮点#

核心接口变更#

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 获取新接口信息。

变换#

  • TSFreshFeatureExtractorTSFreshRelevantFeatureExtractordefault_fc_parameters 的默认值将在 0.15.0 中从 "efficient" 更改为 "comprehensive"

测试框架#

  • 测试 test_methods_do_not_change_state 的名称将在 0.15.0 中更改为 test_non_state_changing_method_contract。为了在使用旧名称作为 check_estimator 参数一部分的情况下实现安全过渡,请在测试/fixture 排除或包含中使用新旧名称 (在列表中)。

增强功能#

BaseObject#

  • [增强] get_args 对于不存在的键的默认处理 (#3595) @fkiraly

  • [增强] 改进基类测试 docstring 和克隆测试 (#3555) @fkiraly

  • [增强] 嵌套 sklearn 组件的 get_fitted_params 方法 (#3645) @fkiraly

  • [增强] 估计器的序列化和反序列化 (#3336) @fkiraly

  • [增强] 深度学习估计器的序列化和反序列化 (#3425) @achieveordie

数据加载器#

  • [增强] load_from_tsfile 支持 .ts 文件中的 @targetlabel 标识符 (#3436) @achieveordie

  • [增强] 重构/整合 _contrib - datasets (#3518) @fkiraly

数据类型、检查、转换#

  • [增强] 用于多索引 pandas.DataFramedask 转换适配器 (#3513) @fkiraly

  • [增强] 将 mtype 转换扩展工具重构到同一位置 (#3514) @fkiraly

预测#

  • [增强] 模块化/可配置的 Theta 预测器 (#1300) @GuzalBulatova

  • [增强] 全局/局部递归降维原型 (#3333) @fkiraly

  • [增强] 残差平方估计器 (#3378) @kcc-lion

  • [增强] 扩展 make_reduction 中的递归策略,允许对面板数据进行全局池化 (#3451) @danbartl

  • [增强] 使用 {joblib, dask} 实现 evaluate 的并行化 (#3511) @topher-lo

  • [增强] 在 _StatsModelsAdapter._update 中使用 statsmodels append (#3527) @chillerobscuro

  • [增强] 扩展 evaluate 以支持分层和面板数据 (#3542) @fkiraly

  • [增强] ColumnEnsembleForecaster 支持 numpy 整数类型 (#3557) @fkiraly

  • [工程] 按级别预测包装器 (#3585) @fkiraly

  • [增强] EnsembleForecaster 的多元测试用例 (#3637) @fkiraly

  • [增强] 扩展 ColumnEnsembleForecaster 以允许应用多元预测器 (#3504) @fkiraly

  • [增强] 添加带有字符串列的预测器测试用例 (#3506) @fkiraly

  • [增强] 扩展预测网格搜索/随机搜索以支持分层和面板数据 (#3548) @fkiraly

  • [增强] 使 EnsembleForecaster 支持多元数据 (#3623) @AnH0ang

  • [增强] 修复 ExpandingWindowSplitterinitial_window=0 的问题并弃用 "start_with_window" (#3690) @chillerobscuro

参数估计#

时间序列标注#

时间序列分类#

  • [增强] 用于分类的 TapNet 深度学习模型 (#3386) @achieveordie

  • [增强] 重构/集成 _contrib - diagram_code (#3519) @fkiraly

  • [增强] TapNet 估计器的快速测试参数以及文档字符串/接口清理 (#3544) @achieveordie

  • [增强] 为提高用户灵活性,为 CNNRegressor 添加更相关的参数 (#3561) @achieveordie

  • [增强] 允许 KNeighborsTimeSeriesClassifier 处理不等长度时间序列之间的距离 (#3654) @fkiraly

时间序列回归#

  • [增强] 来自 sktime-dl 的用于回归的 TapNet 深度学习模型 (#3481) @achieveordie

  • [增强] 允许 KNeighborsTimeSeriesRegressor 处理不等长度时间序列之间的距离(#3654) @fkiraly

转换器#

  • [增强] 测试 TruncationTransformerpd-multiindex 中保留索引和列名 (#3535) @fkiraly

  • [增强] 在 Reconciler 中用非就地排序替换就地排序 (#3553) @fkiraly

  • [增强] SupervisedIntervals 转换器和清理后的 numba 函数 (#3622) @MatthewMiddlehurst

  • [增强] TSFreshFeatureExtractor 清理、测试和文档字符串 (#3636) @kcc-lion

  • [增强] Clearsky 转换器支持并行拟合选项 (#3652) @ciaran-g

测试框架#

  • [增强] 按估计器对 get_fitted_params 接口契约进行测试 (#3590) @fkiraly

治理#

文档#

维护#

  • [维护] 0.14.0 弃用操作 (#3677) @fkiraly

  • [维护] 将 pre-commit action 从 2 升级到 3 (#3576) @lmmentel

  • [维护] 将 setup-python action 从 2 升级到 4 (#3577) @lmmentel

  • [维护] 从 _HeterogeneousMetaEstimator 中移除 ABCMeta 继承 (#3569) @fkiraly

  • [维护] 放宽 scipy 版本限制至 <2.0.0 (#3587) @fkiraly

  • [维护] 用 sphinx-design 替换已弃用的 sphinx-panels (#3575) @MatthewMiddlehurst

  • [维护] 将 checkout action 从 2 升级到 3 (#3578) @lmmentel

  • [维护] 暂时从测试中移除随机失败的 tapnet (#3624) @fkiraly

  • [维护] 用 reducer 替换测试中使用的 ARIMA 以移除测试中的软依赖 (#3552) @fkiraly

  • [维护] 在作者字段中用 GitHub ID 替换作者姓名,并进行 linting (#3628) @fkiraly

  • [增强] 隔离 statsmodels 导入 (#3445) @fkiraly

  • [维护] 隔离 statsmodels 导入,第二部分 (#3515) @fkiraly

  • [维护] 隔离 statsmodels,第三部分:在测试参数中替换依赖的估计器 (#3632) @fkiraly

  • [维护] 在作者字段中用 GitHub ID 替换作者姓名,并进行 linting (#3628) @fkiraly

重构#

  • [增强] 将剩余的 get_fitted_params 覆盖重构为 _get_fitted_params (#3591) @fkiraly

  • [修复] 修复不符合规范估计器的 get_fitted_params 问题 (#3599) @fkiraly

修复#

BaseObject#

  • [修复] 修复不可拟合组件的 get_fitted_params 默认值问题 (#3598) @fkiraly

数据加载器#

  • [修复] 修复从 timeseriesclassification.com 加载数据时当 extract_path 不为 None 时的错误 (#3021) @TonyBagnall

  • [修复] 修复以 ts 格式将数据集写入文件时出现的错误 (#3532) @TonyBagnall

数据类型、检查、转换#

  • [修复] 修复分层重采样中 pd.concat 导致 check_is_scitype 出错的问题 (#3546) @TonyBagnall

  • [修复] 修复 check_estimator exclude 参数对非基础 scitype 测试无效的问题 (#3566) @fkiraly

  • [修复] 修复输入检查器中错误的断言 (#3556) @fkiraly

  • [修复] 在 is_int 检查中排除 np.timedelta64 (#3627) @khrapovs

  • [修复] 修复 get_cutoffnumpy 格式的支持问题 (#3442) @fkiraly

预测#

  • [修复] 修复 ConformalIntervals 更新不更新 residuals_matrix 的问题 (#3460) @bethrice44

  • [修复] 修复 predict_residuals 的副作用 (#3475) @aiwalter

  • [修复] 修复 NaiveForecaster.predict_var 中当 window_length 非空时的残差公式错误 (#3495) @topher-lo

  • [修复] 修复 ColumnEnsembleForecasterstr 索引的支持问题 (#3504) @canbooo @fkiraly

  • [修复] 修复 NaN 值的 pipeline 标签问题 (#3549) @aiwalter

  • [修复] 修复 EnsembleForecaster 中条件 requires-fh-in-fit 标签问题 (#3642) @fkiraly

参数估计#

  • [修复] 修复 PluginParamsForecaster 文档字符串并添加 dict 使用示例 (#3643) @fkiraly

时间序列标注#

时间序列聚类#

时间序列分类#

  • [修复] 修复 KNeighborsTimeSeriesClassifier 标签处理依赖于距离组件的问题 (#3654) @fkiraly

  • [修复] 为 TapNet 估计器添加缺失的 get_test_params (#3541) @achieveordie

  • [修复] numba / np.median 交互在 n_jobs>1 处理大型数据集时引发错误 (#3602) @TonyBagnall

  • [修复] 修复在 #2397 中发现的 numbanp.zeros 交互错误 (#3618) @TonyBagnall

  • [修复] 各种小错误修复 (#3706) @MatthewMiddlehurst

时间序列距离和核#

时间序列回归#

  • [修复] 修复 KNeighborsTimeSeriesRegressor 标签处理依赖于距离组件的问题 (#3654) @fkiraly

转换器#

  • [修复] RandomShapeletTransform:将最大 shapelets 数量向下取整至类别数量 (#3564) @TonyBagnall

  • [修复] 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)

分支和链接应被重定向,治理保持不变。

如有任何问题,请通过 issue 跟踪器讨论论坛 与我们联系。

版本 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 版本中移除。

增强功能#

数据类型、检查、转换#

  • [增强] 支持 xarray DataArray 和 mtypes (#3255) @benHeid

  • [增强] 避免在 scitype 工具中计算元数据 (#3357) @fkiraly

  • [增强] check_is_scitype 错误消息返回值更改为 dict (#3466) @fkiraly

  • [增强] mtypes 的软依赖处理 (#3408) @fkiraly

  • [增强] 优化 from_3d_numpy_to_nested 转换器函数 (#3339) @paulbauriegel

  • [增强] 简化 convert_to_scitype 逻辑,修复 scitype 转换器模块中的导出和文档字符串遗漏 (#3358) @fkiraly

数据加载器#

  • [增强] 测试 load_basic_motions 的正确返回类型 (#3458) @fkiraly

预测#

  • [增强] pmdarima 2.0.0 兼容性修复 - 在返回值中使用绝对索引 (#3302) @fkiraly

  • [增强] DirectReductionForecaster 的全局/局部设置 (#3327) @fkiraly

  • [增强] 在参数估计器和 AutoARIMA 中一致处理 sp (#3367) @fkiraly

  • [增强] 为预测器和委托估计器启用默认 get_fitted_params (#3381) @fkiraly

  • [增强] 在预测器多路复用器中防止向量化 (#3391) @fkiraly

  • [增强] 在更新包装器和 ForecastX 中防止向量化 (#3393) @fkiraly

  • [增强] 在预测器中添加缺失的数据输入检查 (#3405) @fkiraly

  • [增强] 为 ConformalIntervals 中的 residuals_matrix 计算添加并行的 fitpredict_residuals 方法 (#3414) @bethrice44

  • [增强] naive 预测器的预测方差和分位数 (#3435) @topher-lo

时间序列标注#

时间序列分类#

时间序列距离和核#

变换#

  • [增强] 在 Lag 中保留列名的选项 (#3343) @fkiraly

  • [增强] BaseTransformer 数据内存 - 由标签启用 (#3307) @fkiraly

  • [增强] 傅里叶特征变换器 (#3374) @ltsaprounis

  • [增强] 防止变换器多路复用器中的向量化 (#3391) @fkiraly

  • [增强] 为 LogTransformer 添加了 scaleoffset 参数 (#3354) @bugslayer-332

  • [增强] pandas 1.5.0 兼容性修复:如果在 Lag 中没有传递或指定 freq,则使用 infer_freq (#3456) @fkiraly

  • [增强] 重构 PAASAXSFA 的继承关系 (#3308) @fkiraly

  • [增强] DOBIN 基变换 (#3373) @KatieBuc

测试框架#

  • [增强] 使用与 fit 数据不同的 transform 数据测试变换器 (#3341) @fkiraly

  • [增强] 减少测试框架中的遗留逻辑并重构为场景 (#3342) @fkiraly

  • [增强] 为选定的估计器添加了第二组参数 (#3428) @fkiraly

修复#

数据类型、检查、转换#

  • [错误修复] 确保 nested_univ 元数据推断在存在标量列的情况下通过 (#3463) @fkiraly

预测#

  • [错误修复] 修复默认保形区间的 initial_window 参数 (#3383) @bethrice44

时间序列标注#

时间序列分类#

  • [错误修复] 修复 MLPNetwork 中缺失的 super.__init__ 调用 (#3350) @fkiraly

变换#

维护#

  • [维护] 跳过 CNNClassifier 的 doctest (#3305) @fkiraly

  • [维护] HTTPError 后重试 url 请求 (#3242) @khrapovs

  • [维护] 跳过 ClearSky 的 doctest 以避免 load_solar 崩溃 (#3376) @fkiraly

  • [维护] 跳过测试 HMM 时偶然失败 (#3395) @fkiraly

  • [维护] 隔离 MLPClassifier doctest 中的软依赖 (#3409) @fkiraly

  • [维护] 小范围重构更改 (#3418) @lmmentel

  • [维护] 将已弃用的 pandas is_monotonic 替换为 is_monotonic_increasing (#3455) @fkiraly

  • [维护] 更新 test_interpolate 以兼容 pandas 1.5.0 (#3467) @fkiraly

  • [维护] pandas 1.5.0 兼容性 (#3457) @fkiraly

文档#

  • [文档] 更新了扩展模板 - 解释了标签、软依赖 (#3334) @fkiraly

  • [文档] dists_kernels 模块的 API 参考 (#3312) @fkiraly

  • [文档] 修复 notebook/示例的符号链接 (#3379) @khrapovs

  • [文档] 关于如何使虚拟环境工作的建议 (#3331) @miraep8

  • [文档] 将 SlidingWindowSplitterstart_with_window 的错误 docstring 默认值更改为实际默认值 (#3340) @bugslayer-332

  • [文档] 更正 examples/AA_datatypes_and_datasets.ipynb 中的小拼写错误 (#3349) @achieveordie

  • [文档] 更新了扩展模板 - 解释了变换器标签 (#3377) @fkiraly

  • [文档] 更正和澄清 BaseSplitter 的 docstrings (#3440) @fkiraly

  • [文档] 修复 TransformerPipeline 的 docstring (#3401) @aiwalter

  • [文档] “在哪里提问”下的 Slack 链接已过期 (#3449) @topher-lo

  • [文档] 如何跳过新软依赖项测试的说明 (#3416) @miraep8

  • [文档] 将遗留的估计器概述替换为链接 (#3407) @fkiraly

  • [文档] 更新核心开发者列表 (#3415) @aiwalter

  • [文档] “在哪里提问”下的 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

  • 新的双下划线方法 (dunder):trafo ** forecaster = 应用于外生数据;-trafo = OptionalPassthrough~trafo = 反转 (#3243, #3273, #3274) @fkiraly

  • 成对变换(时间序列距离、核)现已与 check_estimator 工具完全集成 (#3254) @fkiraly

依赖项更改#

  • pmdarima 的版本限制在 <2.0.0,直到兼容性问题解决

核心接口更改#

预测#

  • 用于将变换器管道应用于外生数据的双下划线方法:my_trafo ** my_forecaster 将创建一个 ForecastingPipeline 注意:** 的优先级高于 *(应用于内生数据)

  • ignores-exogeneous-X 标签的默认值设置为更安全的值 False。这不影响 sktime 预测器,但可能会影响未明确设置该标签的 sktime 兼容预测器,因为现在 X 会传递给所有内部函数,如 _fitpredict 等。只有在 (a) 标签被错误地省略,并且 (b) 内部函数存在问题(即只有在错误 (a) 掩盖了错误 (b) 的情况下才会引发异常)时,这才会导致不兼容。

时间序列距离和核#

  • 用于将普通变换器与成对变换器进行管道连接的双下划线方法:my_trafo ** distance 将创建一个 PwTrafoPanelPipeline,效果相当于“首先对两个输入应用 my_trafo.fit_transform,然后再应用 distance

变换#

  • 用于应用 OptionalPassthrough 的双下划线方法:-my_trafo 等同于 OptionalPassthrough(my_trafo)

  • 用于反转变换器的双下划线方法:~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#

  • [增强] 增强 BaseObject.set_tags 的鲁棒性,以应对遗忘调用 __init__ 的情况 (#3226) @fkiraly

数据类型、检查、转换#

  • [增强] 在将 nested_univ 转换为 pd-multiindex 时处理非嵌套列 (#3250) @fkiraly

预测#

  • [增强] statsmodels ARDL 接口 (#3209) @kcc-lion

  • [增强] ** 双下划线方法,用于在预测器中将变换器应用于外生数据 (#3243) @fkiraly

  • [增强] 测试在预测器中带有 name 属性的 pd.Series (#3297, #3323) @fkiraly

  • [增强] 将默认 ignores-exogeneous-X 设置为 False (#3260) @fkiraly

  • [增强] 使用 Detrender 的预测管道测试用例 (#3270) @fkiraly

  • [增强] 使用分层数据测试分层预测器 (#3321) @fkiraly

时间序列标注#

  • [增强] 用于标注的数据生成器 - 正态多元均值漂移 (#3114) @KatieBuc

时间序列距离和核#

变换#

  • [增强] 用于多元时间序列分类的通道选择 (Dhariyal 等人 2021) (#3248) @haskarb

  • [增强] 通道选择 (Dhariyal 等人 2021) - 与任意距离的兼容性 (#3256) @fkiraly

  • [增强] 在 Lag 中,使单滞后和多滞后情况下的列命名保持一致 (#3261) @KishManani

  • [增强] 弃用 transformations.series.compose,推荐使用 transformations.compose (#3271) @fkiraly

  • [增强] 变换器包装器和双下划线方法的反转 (#3274) @fkiraly

  • [增强] OptionalPassthrough 的正确性测试 (#3276) @aiwalter

  • [增强] 通过 neg 双下划线方法包装 OptionalPassthrough (#3273) @fkiraly

  • [增强] 将 OptionalPassthrough 重构为委托者 (#3272) @fkiraly

测试框架#

  • [增强] 测试对象和估计器中的 super.__init__ 调用 (#3309) @fkiraly

治理#

  • [治理] sktime 是一个“库”,而非“精选集” (#3155) @fkiraly

修复#

数据集和数据加载器#

  • [错误修复] 修复 write_ndarray_to_tsfileclassLabel = False 时的问题 (#3303) @paulbauriegel

数据类型、检查、转换#

  • [错误修复] 修复 _load_provided_dataset() 中某些转换失败的问题 (#3231) @achieveordie

  • [错误修复] 修复 np.all 内部遗忘列表推导式括号的重复实例 (#3245) @achieveordie, @fkiraly

  • [错误修复] 修复 _enforce_infer_freq 私有工具在处理短时间序列时的问题 (#3287) @fkiraly

预测#

  • [错误修复] 将 ForecastingGridSearchCV 中的修剪延迟到变换之后 (#3132) @miraep8

  • [错误修复] 修复 DirectReductionForecaster 中的标签 (#3257) @KishManani

  • [错误修复] 确保预测器不添加 pd.Series.name 属性 (#3290) @fkiraly

  • [错误修复] 移除 AutoETS.fitauto=Trueadditive_only=True 时多余的 UserWarning #3311 (#3317) @chillerobscuro

  • [错误修复] 修复 ColumnEnsembleForecaster 处理分层输入时的问题 (#3324) @fkiraly

  • [错误修复] 修复默认预测器 _update 清空转换器存储的错误 (#3325) @fkiraly

  • [错误修复](临时修复)从递归降维预测器中移除分层数据类型 (#3326) @fkiraly

参数估计#

  • [错误修复] 修复 ParamFitterPipeline 的 concat 双下划线方法 (#3262) @fkiraly

时间序列标注#

时间序列分类#

变换#

维护#

  • [维护] 弃用行变换器 (#2370) @fkiraly

  • [维护] 为 CNNClassifier 添加软依赖标签 (#3252) @fkiraly

  • [维护] 限制 pmdarima < 2.0.0 (#3301) @fkiraly

  • [维护] 修复因合并意外删除 DtwDist 导出的问题 (#3304) @fkiraly

  • [维护] 将 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#

  • [增强] 从 BaseTask 中移除自定义 __repr__,继承自 BaseObject (#3049) @fkiraly

  • [增强] get_fitted_params 和嵌套拟合参数接口的默认实现 (#3077) @fkiraly

  • [增强] 从 BaseObject 中移除 _required_parameters 接口点 (#3152) @fkiraly

数据集和数据加载器#

数据类型、检查、转换#

  • [增强] 在 mtype 检查中添加对唯一列索引的检查 (#2971) @fkiraly

  • [增强] 从 pd-multiindexgluonts ListDataset 的适配器 (#2976) @TNTran92

  • [增强] 在 nested_univ mtype 中添加对非重复索引的检查 (#3029) @fkiraly

  • [错误修复] 移除 datatypes._utilities.get_cutoff 中的冗余计算 (#3070) @shchur

预测#

  • [增强] 重做全局预测的 make_reduction (#2486) @danbartl

  • [增强] 预测调谐器灵活的 update 行为 (#3055) @fkiraly

  • [增强] AutoARIMA 灵活的 update 行为 (#3068) @fkiraly

  • [增强] Reducer 原型重做 - 实验性 (#2833) @fkiraly

  • [增强] 更好的 ForecastingHorizon 构造错误消息 (#3236) @fkiraly

  • [增强] 指标重做 第四部分 - 分层指标 (#2601) @fkiraly

  • [增强] Reducer 原型重做 - 实验性 (#2833) @fkiraly

  • [增强] VECMpredict_interval 功能 (#2925) @AurumnPegasus

  • [增强] evaluate 中的“不重新拟合或更新”选项 (#2954) @fkiraly

  • [增强] 流式预测的定期更新以及“不更新”包装器 (#2955) @fkiraly

  • [增强] 为调谐预测器实现 get_fitted_params (#2975) @ZiyaoWei

  • [增强] 允许 NaiveForecaster 中的 sp=None (#3043) @fkiraly

  • [维护] 从 BaseSplitter 中移除自定义 __repr__ (#3048) @fkiraly

  • [增强] BATSTBATS 的专用 update (#3086) @jelc53

  • [增强] DynamicFactorpredict_intervalpredict_quantiles (#3105) @lbventura

  • [增强] 在 evaluate 和预测调谐器中添加 error_score (#3135) @aiwalter

  • [增强] 使用 get_window 函数重构 CutoffSplitter (#3145) @khrapovs

  • [增强] 使用 get_window 函数重构 SingleWindowSplitter (#3146) @khrapovs

  • [增强] 允许列表作为 CutoffSplitter 中的 cutoff 参数 (#3147) @khrapovs

  • [增强] 添加 VAR._predict_intervals (#3149) @lbventura

参数估计#

  • [增强] 参数估计器和“插入参数”组合器 (#3041) @fkiraly

时间序列标注#

时间序列分类#

时间序列回归#

转换#

  • [增强] 重构 ColumnConcatenator,使用 pd-multiindex 内部 mtype 重写 (#2379) @fkiraly

  • [增强] 转换器的 __getitem__ (即 [ ] dunder),列子集化 (#2907) @fkiraly

  • [增强] YtoX 转换器用于将内生数据转换为外生数据 (#2922) @fkiraly

  • [错误修复] 修复 RandomIntervalFeatureExtractor 以确保列名唯一 (#3001) @fkiraly

  • [错误修复] 修复 Differencer.inverse_transform 无法访问数据索引 freq 的问题 (#3007) @fkiraly

  • [增强] 重构 _deseasonalize 模块中的转换器 (#3040) @fkiraly

  • [增强] 来自 sktime-neuroFilter 转换器 (#3067) @fkiraly

  • [增强] 增加 FunctionTransformerTabularToSeriesAdaptor 的无状态范围 (#3087) @fkiraly

  • [增强] 用于太阳辐照度时间序列的 ClearSky 转换器 (#3130) @ciaran-g

  • [增强] 将简单的 ShapeletTransform_contrib 移至 transformations 模块 (#3136) @fkiraly

测试框架#

  • [增强] 测试转换器输出列是否唯一 (#2969) @fkiraly

  • [增强] 测试没有软依赖的估计器 fit 方法 (#3039) @fkiraly

  • [增强] 测试所有 BaseObject 的后代是否与 sklearn 兼容 (#3122) @fkiraly

  • [增强] functools 包装器用于保留被 make_mock_estimator 包装的估计器的文档字符串 (#3228) @ltsaprounis

  • [增强] 重构 FittedParamExtractor 的测试参数至 get_test_params (#2995) @mariamjabara

  • [增强] 重构 ColumnTransformer 的测试参数 (#3008) @kcc-lion

  • [增强] 将 _config 中所有剩余的测试参数完全重构至 get_test_params (#3123) @fkiraly

  • [增强] 测试矩阵的分区设计,将测试时间减少三分之一 (#3137) @fkiraly

文档#

修复#

数据类型、检查、转换#

  • [错误修复] 修复 from_multi_index_to_3d_numpy 中的杂散参数 (#3239) @fkiraly

预测#

  • [错误修复] 修复预测器默认 predict_quantiles 对多元数据的处理问题 (#3106) @fkiraly

  • [错误修复] 修复 ExpandingWindowSplitter 构造器与 sklearn 的一致性问题 (#3121) @fkiraly

  • [错误修复] 修复“预测区间”添加器的覆盖/默认设置问题 (#3129) @bethrice44

  • [错误修复] 修复 check_equal_time_index 将 numpy 数组作为输入的问题 (#3160, #3167) @benHeid

  • [错误修复] 修复损坏的 AutoEnsembleForecaster 逆方差方法 (#3208) @AnH0ang

  • [错误修复] 修复指标基类和自定义性能指标中的错误 (#3225) @fkiraly

时间序列分类#

  • [错误修复] 修复 HIVE-COTE2 偶发性测试失败 (#3094) @MatthewMiddlehurst

  • [错误修复] 修复 `BaseClassifier._predict_proba` 默认值和 `SklearnClassifierPipeline` 在未实现 `predict_proba` 情况下的问题 (#3104) @fkiraly

  • [错误修复] 允许 sklearn 分类器(树/森林)处理单类情况 (#3204) @fkiraly

  • [错误修复] 跳过对收缩分类器中估计器数量的检查 (#3207) @fkiraly

转换#

  • [错误修复] 修复转换器管道中的逆转换逻辑 (#3085) @fkiraly

  • [错误修复] 修复 `DateTimeFeatures` 输出类型格式不一致问题 (#3223) @danbartl

  • [错误修复] 修复 `Datetimefeatures` 的 `day_of_year` 选项不工作问题 (#3223) @danbartl

测试框架#

  • [错误修复] 解决 _check_soft_dependenciesobject 的遮蔽问题 (#3116) @fkiraly

  • [错误修复] 防止 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_ 属性中。

弃用和移除#

预测#

  • 已弃用:在 ForecastingHorizon 方法中使用带有 freqpd.Timestamp 已弃用,并将从 0.14.0 版本开始引发异常。仍然可以使用 pd.Timestamp。这是因为 pandas 中弃用了 pd.Timestampfreq 属性。

  • 从 0.14.0 版本开始,预测器的公共 cutoff 属性将从索引元素更改为 pd.Index 子类型。

  • 已移除:类 HCrystalBallForecaster,请参阅 #2677

性能指标#

  • 已移除:所有性能指标构造函数中的 funcname 参数。

  • 已更改:greater_is_better 属性已替换为 greater_is_better 标签。

时间序列分类#

  • 已移除:从 BaseClassifier 的后代中移除 "capability:early_prediction" 标签。早期分类器现在是它们自己的估计器类型。要搜索早期分类器,请使用 early-classifier scitype 字符串代替标签。

变换#

  • 已移除: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] 放宽与索引检查相关的标签,并修复不正确的管道标签推断 (#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] 添加 docstrings 代码,显示如何使用 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

  • | dunder 用于多路复用和自动机器学习,是 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] 修复 Lag 变换器在传递 numpy.int 作为滞后整数时的问题 (#2832) @fkiraly

  • [ENH] 修复 window_lengthNoneget_window 工具函数的问题 (#2866) @fkiraly

变换#

  • [BUG] 变换器中的向量化在传递 y 时会用 X 覆盖 y (#2844) @fkiraly

  • [BUG] 修复向量化 Panel 情况下模糊返回类型的输出类型检查问题 (#2843) @fkiraly

文档#

  • [DOC] 添加缺失的 Sajaysurya 引用 (#2800) @fkiraly

  • [DOC] 在 changelog 中添加 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#

亮点#

依赖项变更#

  • 新的软依赖项:pykalmanfilterpy (用于卡尔曼滤波变换器)

核心接口变更#

BaseObject#

  • 所有估计器现在在 fit 开始时都会重置并执行 __init__ (#2562) @fkiraly。因此,可以在 __init__ 的末尾编写 fit 之前的初始化和检查。

  • 所有估计器现在都具有一个 clone 方法,其功能等同于 sklearnclone (#2565) @fkiraly

预测#

  • BaseForecaster.update_predict 中,ExpandingWindowSplitter 逐个添加数据现已成为默认的 cv (#2679) @fkiraly。以前,未指定 cv 会导致错误。

性能指标#

  • 性能指标具有新的基类设计和继承结构。请参阅 BaseForecastingErrorMetric docstring 文档。接口的更改向下兼容,并为进一步重构奠定了基础。

时间序列回归#

  • TSR 基类已更新为与 BaseClassifier 并行的接口 (#2647) @fkiraly。有关规范详细信息,请参阅基类 docstrings。

弃用和移除#

数据类型、检查、转换#

  • 已移除: 从 from_multi_index_to_3d_numpy 中移除了参数 instance_indextime_index。请改用 convertconvert_to

预测#

  • 已移除: 标签 fit-in-predict,现已归入 fit_is_empty

  • 已弃用: HCrystalBallForecaster,将在 0.13.0 版本中移除。请参阅 #2677

性能指标#

  • 已更改: 在所有相对性能指标中,将超参数 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

  • 已移除: FeatureUnion 的参数 preserve_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] Proximity forest,移除旧版转换 (#2518) @fkiraly

  • [ENH] 更新 TSR 基类,添加 kNN 时间序列回归 (#2647) @fkiraly

  • [ENH] DummyClassifier,朴素分类器基准 (#2707) @ZiyaoWei

  • [ENH] 使用 sktime 变换器和 sklearn 分类器构建时间序列分类流水线 (#2718) @fkiraly

变换#

测试框架#

  • [ENH] 在软依赖检查中允许不同的导入和包名 (#2545) @fkiraly

  • [ENH] 在 check_estimator 中排除测试/fixture 的选项 (#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 中将评估器方法迭代公开为测试 fixture (#2781) @fkiraly

治理#

  • [DOC] 将 khrapovs 添加到核心开发者列表 (#2743) @khrapovs

  • [DOC] 核心开发者和 gsoc 导师贡献徽章 (#2684) @fkiraly

修复#

聚类#

  • [BUG] 修复了构造函数不符合 sklearn 规范的问题: TimeSeriesKMeans (#2773) @fkiraly

数据类型、检查、转换#

  • [BUG] 修复了当 Series 有名称时 pd.Seriespd.DataFrame 的 mtype 转换问题 (#2607) @fkiraly

  • [BUG] 纠正了 numpy 格式的 SeriesPanel 转换问题 (#2638) @fkiraly

距离、核#

  • [BUG] 修复了距离工厂处理 1d 数组时的 bug (#2691) @chrisholder

  • [BUG] 修复了构造函数不符合 sklearn 规范的问题: ShapeDTW (#2773) @fkiraly

预测#

  • [BUG] 修复了不正确的 update_predict 参数默认值以及 cv 参数的文档字符串问题 (#2589) @aiwalter

  • [BUG] 修复了 Prophet 对数增长问题 #1079 (#2609) @k1m190r

  • [BUG] UnobservedComponentsignores-exogeneous-X 标签纠正 (#2666) @fkiraly

  • [BUG] 修复了 StackingForecaster 对外生数据的处理问题 (#2667) @fkiraly

  • [BUG] 修复了当 X 索引集严格大于 y 索引集时 pmdarima 接口索引处理问题 (#2673) @fkiraly

  • [BUG] 修复了 pd.tseries.offsets.BaseOffset 的持续时间到 int 的强制类型转换问题 (#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 模块中 author 变量的拼写错误 (#2642) @fkiraly

  • [BUG] 修复了 TransformerPipeline 在向量化边缘情况和 sklearn 变换器方面的 bug (#2644) @fkiraly

  • [BUG] 修复了 SummaryTransformer 的多元输出 bug 并添加了 series-to-primitives 变换输出测试 (#2720) @fkiraly

  • [BUG] 修复了构造函数不符合 sklearn 规范的问题: PCATransformer (#2734) @fkiraly

维护#

  • [MNT] 在 setup.cfg 中添加了 pytest 标志 (#2535) @aiwalter

  • [MNT] 为 HCrystalBallForecaster 添加了弃用警告 (#2675) @aiwalter

  • [MNT] 在 pd.read_csv 中,用方法 .squeeze(“columns”) 替换弃用参数 squeeze (#2693) @khrapovs

  • [MNT] 用 pandas.concat 替换 pandas.DataFrame.append 以解决未来弃用问题 (#2723) @khrapovs

  • [MNT] 向 PR 模板添加 [MNT] 标签 (#2727) @khrapovs

  • [MNT] 从 transformer_simple 扩展模板中移除冗余的 todo (#2740) @NoaWegerhoff

  • [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, @NoaWegerhoff, @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

聚类#

数据类型、检查、转换#

  • [增强] `mtype` 在无法识别 mtype 时提供更具信息量的错误消息 (#2606) @fkiraly

距离,核函数#

预测#

  • [增强] 扩展了滑动和扩展窗口分割器以允许 timedelta 预测范围 (#2551) @khrapovs

  • [增强] 移除了 Prophet 的 `interval_width` 参数 (#2630) @phershbe

时间序列分类#

转换#

修复#

BaseObject#

  • [BUG] `BaseObject.reset` 方法返回 `self` (#2613) @fkiraly

  • [BUG] 修复了标签弃用消息中的拼写错误 (#2616) @fkiraly

聚类#

预测#

  • [BUG] 修复了 dunder 生成的预测管道的 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 方法:使用 `trafo * forecaster * my_postproc` 表示 `TransformedTargetForecaster` 管道 (#2404) @fkiraly

  • 用于多路复用/自动机器学习的 dunder 方法:使用 `forecaster1 | forecaster2 | forecaster 3` 表示 `MultiplexForecaster`,用于在预测器之间进行调优 (#2540) @miraep8

  • Dunder 方法可与现有的转换器 dunder 方法兼容:`*` (管道) 和 `+` (特征联合),例如,`trafo1 * trafo2 * forecaster` 或 `(trafo1 + trafo2) * forecaster`。

  • `UnobservedComponents` 预测器的预测区间 (#2454) @juanitorduz

  • `all_estimators` 的新参数 `return_tags` 允许列出估计器及其选定的标签 (#2410) @miraep8

依赖项变更#

  • `scipy` 的上限放宽至 `scipy<1.9.0`,`sktime` 现在兼容 `scipy 1.8.X` 版本。

核心接口变更#

所有估计器#

所有估计器现在都有一个 `reset` 方法,该方法将对象重置为干净的初始化后状态,保留超参数。等效于 `clone`,但会覆盖 `self`。

预测#

预测器有两个新的 dunder 方法。调用这些 dunder 方法可以轻松创建管道对象。

  • 与转换器一起使用 `*` 会创建预测管道,例如 `my_trafo1 * my_forecaster * my_postproc`。预测器之前的转换器在 `TransformedTargetForecaster` 中用于预处理。预测器之后的转换器在 `TransformedTargetForecaster` 中用于后处理。

  • 与另一个预测器一起使用 `|` 会创建多路复用器,例如 `forecaster1 | forecaster2 | forecaster 3`。结果是 `MultiplexForecaster` 类的一个实例,可以与网格搜索结合用于自动机器学习风格的调优。

Dunder 方法与现有的转换器 dunder 方法兼容:`*` (管道) 和 `+` (特征联合)。

预测器 `update_predict` 现在接受一个额外的布尔参数 `reset_forecaster`。如果 `reset_forecaster = True` (默认且当前的行为),预测器状态不会改变。如果 `reset_forecaster = False`,则 `update`, `predict` 序列会更新状态。

在 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#

数据类型、检查、转换#

  • [增强] 新的 `_make_panel` 工具函数,与 `_make_panel_X` 分开,具有任意返回 mtype (#2505) @fkiraly

预测#

  • [增强] `UnobservedComponents` 预测器的预测区间 (#2454) @juanitorduz

  • [增强] 移除了 DirRec 还原器在外部 `X` 上的错误消息 (#2463) @fkiraly

  • [增强] 在分割器中将 `np.arange` 替换为 `np.arghwere` 以启用基于时间的索引和选择 (#2394) @khrapovs

  • [增强] 使用 Timedelta 预测范围测试 `SingleWindowSplitter` (#2392) @khrapovs

  • [增强] `Aggregator`:移除了索引命名要求 (#2479) @ciaran-g

  • [增强] `MultiplexForecaster` 与多元、概率和层级预测的兼容性 (#2458) @fkiraly

  • [增强] `Differencer` NA 处理 - “fill zero” 参数 (#2487) @fkiraly

  • [增强] 为 `statsmodels` 适配器和估计器添加了 `random_state` (#2440) @ris-bali

  • [增强] 为 `MultiplexForecaster` 添加了测试 (#2520) @miraep8

  • [增强] 为 `MultiplexForecaster` 添加了 `|` dunder 方法 (#2540) @miraep8

注册表#

  • [增强] 为 `all_estimators` 添加了新参数 `return_tags` (#2410) @miraep8

测试框架#

  • [增强] 不等长分类器场景 (#2516) @fkiraly

  • [增强] 针对多种分类器输入 mtype 的测试 (#2508, #2523) @fkiraly

  • [增强] 更多用于测试的预测器场景:使用 `X` (#2462) @fkiraly

  • [增强] 记录器更新 - 移除了 `__init__`,私有 `log` 属性 (#2533) @fkiraly

转换#

修复#

聚类#

  • [BUG] 修复了 kmedoids 中 medoids 是从所有数据中选取而不是按聚类选取的问题 (#2548) @chrisholder

数据类型、检查、转换#

  • [BUG] 修复了从/到 `numpyflat` mtype 的直接转换被间接转换覆盖的问题 (#2517) @fkiraly

距离,核函数#

  • [BUG] 距离度量修复了边界矩阵被错误舍入的错误 (#2549) @chrisholder

预测#

  • [BUG] 重构并修复了 `_predict_moving_cutoff`,应该调用外部的 `update_predict_single` 方法 (#2466) @fkiraly

  • [BUG] 修复了 `ThetaForecaster.predict_quantiles` 在 `pd.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_quantiles`, `pred_interval` 的不合规输出问题 (#2512) @eenticott-shell

时间序列分类#

  • [BUG] 修复了 `ColumnEnsembleClassifier` 处理不等长数据的问题 (#2513) @fkiraly

转换#

  • [BUG] 移除了 `_boxcox` 中的 `alpha` 参数,移除了私有方法依赖,确保兼容 scipy 1.8.0 (#2468) @fkiraly

  • [BUG] 修复了 `MiniRocketMultivariate` 中 random state 被覆盖的问题 (#2563) @fkiraly

测试框架#

  • [BUG] 修复了测试场景中默认方法/参数序列被意外覆盖的问题 (#2457) @fkiraly

重构#

  • [增强] 将对 `fit-in-transform` 的引用改为 `fit_is_empty` (#2494) @fkiraly

  • [增强] 清理了 `_panel._convert` 模块 (#2519) @fkiraly

  • [增强] 遗留测试重构 - 移动了 `test_data_processing`,改进了 `test_classifier_output` 中的 mtype 处理 (#2506) @fkiraly

  • [增强] 不带日志记录的 `MockForecaster`,清理了 `MockUnivariateForecaster` (#2539) @fkiraly

  • [增强] 指标重做 第一部分 - 输出格式测试 (#2496) @fkiraly

  • [增强] 简化了 `load_from_tsfile`,支持更多 mtype (#2521) @fkiraly

  • [增强] 在 `_predict_moving_cutoff` 重构后移除了无用的参数和函数 (#2470) @fkiraly

维护#

  • [维护] 升级了 codecov 上传器并清理了覆盖率报告 (#2389) @tarpas

  • [维护] 修复了 `esig` 导入的软依赖处理问题 (#2414) @fkiraly

  • [维护] 将 contrib 模块设为私有 (#2422) @MatthewMiddlehurst

  • [维护] 禁用了激进的 `dtw_python` 导入消息 (#2439) @KatieBuc

  • [维护] 放松了 `scipy` 的严格上限至 1.9.0 (#2474) @fkiraly

  • [维护] 移除了意外提交的概率集成 notebook (#2476) @eenticott-shell

  • [维护] 加快了 Facebook `Prophet` 测试 (#2497) @fkiraly

  • [维护] Proximity forest 更快的测试参数设置 (#2525) @fkiraly

  • [维护] 修复了测试,以防止所有有保证的 `check_estimator` 失败 (#2411) @danbartl

  • [维护] 添加了 `pytest-timeout` 10分钟的时间限制 (#2532, #2541) @fkiraly

  • [维护] 开启了针对 `transform`, `predict` 无状态变更的测试 (#2536) @fkiraly

  • [维护] 在 Windows 上将 scipy 镜像切换到 anaconda,以解决所有 CI/CD 中的 `gfortran` `FileNotFoundError` 问题 (#2561) @fkiraly

  • [维护] 添加了一个用于生成 `rst` 格式变更日志的脚本 (#2449) @lmmentel

文档#

  • [文档] 将聚类模块添加到 API 文档 (#2429) @aiwalter

  • [文档] 更新了数据类型 notebook (#2492) @fkiraly

  • [文档] 测试框架文档中的断开链接 (#2450) @Tomiiwa

  • [文档] 在 GSoC 截止日期后从首页移除了 GSoC 公告 (#2543) @GuzalBulatova

  • [文档] 修复了 sktime 安装说明中的拼写错误,如果按字面遵循,会导致“invalid requirement error” (#2503) @Samuel-Oyeneye

贡献者#

@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] 修复了预测管道 dunder 问题 (#2431) @fkiraly

  • [BUG] 修复了 `ColumnEnsembleForecaster` 中错误的直接传递问题 (#2436) @fkiraly

  • [BUG] 修复了 `make_reduction` 在层级数据上返回的索引不正确的问题 (#2438) @danbartl

版本 0.11.1 - 2022-04-10#

亮点#

核心接口变更#

数据类型、检查、转换#

  • 放宽了 pd-multiindex mtype,允许任意级别名称

预测#

  • 概率预测接口现在也可用于自动矢量化情况

  • 概率预测接口现在兼容分层预测接口

改进#

数据类型、检查、转换#

  • [改进] tsf 加载器允许指定返回的 mtype (#2103) @ltsaprounis

  • [改进] 放宽 multiindex 的名称规则 - 修复了 from_multi_index_to_nested 中的遗漏 (#2384) @ltsaprounis

预测#

  • [改进] 要求区间/分位数预测中多个 alpha/覆盖范围的唯一性 (#2326) @fkiraly

  • [改进] 向 VAR 构造函数添加 fit 参数 #1850 (#2304) @TNTran92

  • [改进] 返回 pd.DataFrame 的概率预测方法的矢量化 (#2355) @fkiraly

  • [改进] 为 ForecastingPipelineTransformedTargetForecaster 添加与概率和分层预测的兼容性 (#2318) @fkiraly

  • [改进] 允许在 ForecastingHorizon 中使用 pd.Timedelta 值 (#2333) @khrapovs

  • [改进] ColumnEnsembleForecaster 的概率方法(predict_proba 除外) (#2356) @fkiraly

  • [改进] NaiveVariance:verbose 参数和扩展的 docstring (#2395) @fkiraly

  • [改进] 使用概率指标进行网格搜索 (#2234) @eenticott-shell

  • [改进] 流式预测(使用 update_predict)的包装器,用于触发定期 refit (#2305) @fkiraly

  • [改进] TransformedTargetForecaster 中的后处理,(变换后的 y)预测流水线的 dunder 方法 (#2404) @fkiraly

  • [改进] 抑制 all_estimators 估计器检索中的弃用消息,解决 dtw 导入消息 (#2418) @katiebuc

  • [改进] 改进了预测器在接收到不兼容输入时的错误消息 (#2314) @fkiraly

  • [改进] NaiveVariance:verbose 参数和扩展的 docstring (#2395) @fkiraly

  • [改进] 禁止不兼容的 splitter 参数 (#2328) @khrapovs

  • [改进] 添加了 statsmodels SARIMAX 的接口 (#2400) @TNTran92

  • [改进] 将 reducers 扩展到分层数据,添加变换 (#2396) @danbartl

时间序列分类#

  • [改进] 更快的分类器示例参数 (#2378) @MatthewMiddlehurst

  • [改进] BaseObject.is_composite 工具,放宽 BaseClassifier 输入检查中的错误为组合估计器的警告 (#2366) @fkiraly

  • [改进] transformer 和 classifier 流水线的能力推理 (#2367) @fkiraly

变换#

  • [改进] 实现分层预测的协调器 - 转换器 (#2287) @ciaran-g

  • [改进] 层次结构聚合转换器 (#2292) @ciaran-g

  • [改进] WindowSummarizer 的内存功能,使 transform 窗口能够访问 fit 时间段 (#2325) @fkiraly

维护#

重构#

  • [改进] 移除代码库中所有不符合规范的 fit_params kwargs (#2343) @fkiraly

  • [改进] 分类期望输出测试更新 (#2295) @MatthewMiddlehurst

  • [改进] Transformer 模块全面重构 - 第三部分,panel 模块(第二批) (#2253) @fkiraly

  • [改进] Transformer 模块全面重构 - 第四部分,panel 模块(第三批) (#2369) @fkiraly

  • [改进] 测试参数重构:TSInterpolator (#2342) @NoaWegerhoff

  • [改进] 将“sktime forecaster tests”移至 TestAllForecasters 类中 (#2311) @fkiraly

  • [改进] 升级 BasePairwiseTransformer 以使用 datatypes 输入转换和检查 (#2363) @fkiraly

  • [改进] 扩展 _HeterogeneousMetaEstimator 估计器以允许混合的元组/估计器列表 (#2406) @fkiraly

  • [维护] 测试参数重构:预测 reducer 和 ColumnEnsembleClassifier (#2223) @fkiraly

  • [改进] 重构 test_all_transformers 为测试类架构 (#2252) @fkiraly

修复#

预测#

  • [错误] 修复晚传入 fh 情况下的 _update 默认行为 (#2362) @fkiraly

  • [改进] 将缓存的 ForecastingHorizon 方法提取为函数并避免 B019 错误 (#2364) @khrapovs

  • [改进] AutoETS 预测区间简化 (#2320) @fkiraly

  • [错误] 修复了大多数 mtypes 的 get_time_index (#2380) @fkiraly

变换#

  • [错误] TSInterpolatornested_univ 检查修复 (#2259) @fkiraly

  • [错误][改进] WindowSummarizer 偏移修复,更容易的滞后指定 (#2316) @danbartl

  • [错误] FeatureUnion 输出列名修复 (#2324) @fkiraly

  • [改进][错误] 修复并实现了 transformer 组合中缺失的 inverse_transform (#2322) @fkiraly

文档#

  • [文档] 修复 0.11.0 发布说明要点格式 (#2310) @fkiraly

  • [文档] 扩展模板中的拼写错误修复:constructor -> constructor (#2348) @fkiraly

  • [文档] 修复了 'docs/source/developer_guide/testing_framework.rst' 的问题 (#2335) @0saurabh0

  • [文档] 更新了 conda 安装说明 (#2365) @RISHIKESHAVAN

  • [文档] 更新了扩展模板:添加文档链接和对 check_estimator 的引用 (#2303) @fkiraly

  • [文档] 改进了 forecasters 中的 docstrings (#2314) @fkiraly

  • [文档] 为加载数据函数添加了 docstring 示例 (#2393) @aiwalter

  • [文档] 在 README 中添加了平台徽章 (#2398) @aiwalter

  • [文档] 添加 GSoC 2022 登陆页面和公告 (#2373) @lmmentel

  • [文档] 在 interval_based_classification 示例笔记本中,对多元示例使用多元数据集 (#1822) @ksachdeva

贡献者#

@0saurabh0, @aiwalter, @ciaran-g, @danbartl, @eenticott-shell, @fkiraly, @katiebuc, @khrapovs, @ksachdeva, @lmmentel, @ltsaprounis, @MatthewMiddlehurst, @NoaWegerhoff, @RISHIKESHAVAN, @TNTran92

版本 0.11.0 - 2022-03-26#

要点#

依赖变更#

  • sktime 新增了一组用于深度学习的可选依赖,包括 tensorflowtensorflow-probability

  • 新的软依赖:tslearntslearn 聚类器所需)

  • 新的软依赖:statsforecastStatsforecastAutoARIMA 所需)

核心接口变更#

数据类型、检查、转换#

  • 新的 Hierarchical 科学类型,用于分层时间序列数据,mtype 格式为 pd_multiindex_hier(行多索引系列)

  • 新的 Table 科学类型,用于非时间序列或序列的“普通”表格(类似 2D 数据框)数据

  • Table 科学类型的多种 mtype 格式:numpy1D, numpy2D, pd_DataFrame_Table, pd_Series_Table, list_of_dict

  • 新的 Proba 科学类型,用于分布和类似分布的对象(用于概率预测)

预测#

  • forecasters 现在也接受 Panel 类型(面板和全局 forecaster)和 Hierarchical 类型(分层 forecaster)的输入

  • 当 forecaster 获得 PanelHierarchical 输入,但仅定义了 Series 逻辑时,forecaster 将自动遍历(系列)实例

  • 当 forecaster 获得 Hierarchical 输入,但仅定义了 PanelSeries 逻辑时,forecaster 将自动遍历(面板)实例

  • 用于概率预测的新概率预测接口

    • 新方法 predict_var(fh, X, cov=False) 用于方差预测,返回预测方差的时间序列

    • 新方法 predict_proba(fh, X, marginal=True) 用于分布预测,返回 tensorflow Distribution

时间序列分类#

  • 用于 pipelining classifier 和 transformer 的 dunder 方法:my_trafo1 * my_trafo2 * my_clf 将创建一个 ClassifierPipeline(兼容 sklearn

变换#

  • transformer 现在也接受 Panel 类型(面板和全局 transformer)和 Hierarchical 类型(分层 transformer)的输入

  • 当 transformer 获得 PanelHierarchical 输入,但仅定义了 Series 逻辑时,transformer 将自动遍历(系列)实例

  • 当 transformer 获得 Hierarchical 输入,但仅定义了 PanelSeries 逻辑时,transformer 将自动遍历(面板)实例

  • Table 科学类型被用作返回“基本类型”的 transformer 的输出

  • 用于 pipelining transformer 的 dunder 方法:my_trafo1 * my_trafo2 * my_trafo3 将创建一个(单个)TransformerPipeline(兼容 sklearn

  • 用于 transformer 的 FeatureUnion 的 dunder 方法:my_trafo1 + my_trafo2 + my_trafo3 将创建一个(单个)FeatureUnion(兼容 sklearn

  • transformer dunder 流水线兼容 sklearn transformer,自动包装在 TabularToSeriesAdaptor

弃用和移除#

数据类型、检查、转换#

  • 移除:check_is,重命名为 check_is_mtype (#1692) @mloning

预测#

  • 移除:forecaster predict, fit_predict, update_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

变换#

  • 移除:series transformers 不再接受 Z 参数 - 请改用第一个参数 X (#1365, #1730)

  • 弃用:fit-in-transform 标签已弃用并重命名为 fit_is_empty。旧标签 fit-in-transform 可使用至 0.12.0 版本移除。

  • 弃用:FeatureUnionseries_as_features 的旧位置,已移至 transformations.compose。旧位置仍可在 0.12.0 版本之前导入。

  • 弃用:FeatureUnionpreserve_dataframe 参数,将在 0.12.0 版本中移除。

  • 弃用:WindowSummarizertransformations.series.windows_summarizer 的旧位置,已移至 transformations.series.summarize。旧位置仍可在 0.12.0 版本之前导入。

改进#

数据类型、检查、转换#

  • [改进] Series, Panel 和 Hierarchical mtypes 的 cutoff 获取器 (#2115) @fkiraly

  • [改进] Gettimeindex 用于访问分层数据的索引 (#2110) @danbartl

  • [改进] datatypes 支持基于区间和分位数的概率预测 (#2130) @fkiraly

  • [改进] sklearn 类型工具 (#2208) @fkiraly

  • [改进] 放宽 pd-multiindex mtype 以允许字符串实例索引 (#2262) @fkiraly

数据集和数据加载器#

聚类#

  • [改进] tslearn 添加为软依赖,用于添加新的聚类器。(#2048) @chrisholder

  • [改进] 在单问题聚类/分类问题中添加用户选项以确定返回类型 (#2139) @TonyBagnall

距离、核函数#

  • [改进] Lcss 距离的一些小改动 (#2119) @TonyBagnall

  • [改进] 添加一个 factory,为 distances 模块导出的所有距离添加 3D 功能 (#2051) @fkiraly

预测#

时间序列分类#

转换器#

  • [功能增强] 单变量时间序列自举法 (#2065) @ltsaprounis

  • [功能增强] 将 FunctionTransformer._fit 更改为通用签名 (#2205) @fkiraly

  • [功能增强] 升级 BaseTransformer 以使用向量化工具,支持分层 mtype 兼容性 (#2219) @fkiraly

  • [功能增强] WindowSummarizer 处理分层数据 (#2154) @danbartl

  • [功能增强] 转换器管道和魔术方法 (#2090) @fkiraly

  • [功能增强] 表格转换器适配器“fit in transform”参数 (#2209) @fkiraly

  • [功能增强] 魔术管道支持 sklearn 估计器 (#2210) @fkiraly

测试框架#

  • [功能增强] 测试框架: 重构为测试类 (#2142) @fkiraly

  • [功能增强] 一站式估计器有效性检查器 (#1993) @fkiraly

治理#

已修复#

  • [错误修复] 修复 ThetaForecaster.predict_quantiles 引起的状态改变 (#2108) @fkiraly

  • [错误修复] 将 _make_hierarchical 重命名为 _make_hierarchical (拼写错误/错误) issue #2195 (#2196) @Vasudeva-bit

  • [错误修复] 修复 PaddingTransformer._transform 错误的输出类型 (#2217) @fkiraly

  • [错误修复] 修复 nested_dataframe_has_nans (#2216) @fkiraly

  • [错误修复] 测试预测器的向量化,以及各种错误修复 (#2188) @fkiraly

  • [错误修复] 修复预测还原器的 ignores-exogeneous-X 标签 (#2230) @fkiraly

  • [错误修复] 修复 STLBootstrapTransformer 错误消息和文档字符串 (#2260) @fkiraly

  • [错误修复] 修复 BaseForecaster 中区间->分位数转换,并修复 ARIMA.predict_interval (#2281) @fkiraly

  • [文档] 修复指向行为准则 (CoC) 的损坏链接 (#2104) @mikofski

  • [错误修复] 修复 Windows 系统中 VectorizedDF.__getitem__ 索引频率的错误 (#2279) @ltsaprounis

  • [错误修复] 修复 _predict_var 文档字符串中 Returns 部分重复的错误 (#2306) @fkiraly

  • [错误修复] 修复 check_pdmultiindex_panel 的错误 (#2092) @danbartl

  • [错误修复] 修复 kmeans、medoids 在生成空聚类时崩溃的错误 (#2060) @chrisholder

  • [错误修复] 相同的截止点拼写错误修复 (#2193) @cdahlin

  • [错误修复] 解决由于软依赖导入失败导致的文档构建问题 (#2170) @fkiraly

  • 弃用处理: sklearn 1.2 弃用警告 (#2190) @hmtbgc

  • 弃用处理: 使用 StandardScaler 替换 normalize (#2167) @KishenSharma6

文档#

维护#

  • [维护] 更新发布草稿器 (#2096) @lmmentel

  • 加速 EE 测试和 ColumnEnsemble 示例 (#2124) @TonyBagnall

  • [维护] 在 test_plotting 中添加 xfails 直到 #2066 解决 (#2144) @fkiraly

  • [维护] 在 test_plotting 的全部内容中添加跳过直到 #2066 解决 (#2147) @fkiraly

  • [功能增强] 改进 deep_equals 返回消息,如果 dict 不一致 (:pr:`2107`) @fkiraly

  • [错误修复] 解决由于软依赖导入失败导致的文档构建问题 (#2170) @fkiraly

  • [功能增强] 扩展 deep_equals 以支持 ForecastingHorizon (#2225) @fkiraly

  • [功能增强] deep_equals 工具函数的单元测试 (#2226) @fkiraly

  • [维护] 更快的文档字符串示例 - ForecastingGridSearchCV, MultiplexForecaster (#2229) @fkiraly

  • [错误修复] 移除 StratifiedGroupKFold 的测试 (#2244) @TonyBagnall

  • [功能增强] 分类器类型提示 (#2246) @MatthewMiddlehurst

  • 更新 pre-commit 链接,并对编码风格文档进行语法更新 (#2285) @Tomiiwa

  • 更新 .all-contributorsrc (#2286) @Tomiiwa

  • [功能增强] 用于测试的模拟估计器和模拟估计器生成器 (#2197) @ltsaprounis

  • [维护] 移除 0.11.0 版本的弃用功能 (#2271) @fkiraly

  • [错误修复] 修复 pyproject 和 jinja2 CI 失败 (#2299) @fkiraly

  • [文档] 更新 PULL_REQUEST_TEMPLATE.md,使 PR 标题应以 [ENH]、[DOC] 或 [BUG] 开头 (#2293) @aiwalter

  • [维护] 在 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 接口更改导致的错误。

  • 一旦 sktime 兼容 scipy 1.8.0,该上限将被放宽

  • 新预测器: STLForecaster (#1963) @aiwalter

  • 新转换器: 滞后窗口汇总转换 (#1924) @danbartl

  • .tsf 数据格式的加载器 (#1934) @rakshitha123

依赖项变化#

  • 引入 scipy<1.8.0 的限制,以防止由于 scipy 接口更改导致的错误

  • 一旦 sktime 兼容 scipy 1.8.0,该上限将被放宽

已添加#

文档#

数据集和数据加载器#

数据类型、检查、转换#

  • [功能增强] convert 存储重置/冻结行为 & 错误 1976 的修复 (#1977) @fkiraly

  • [功能增强] 新 Table mtypes: 基于 pd.Series,字典列表 (在词袋转换器中使用) (#2076) @fkiraly`

预测#

  • [功能增强] 添加 STLForecaster (#1963) @aiwalter

  • [功能增强] 将预测器测试参数从 _config 移入类中 - 所有预测器不包括 reduction (#1902) @fkiraly

转换器#

维护#

  • [维护] 放弃 C 扩展和 Cython 后更新 wheels CI/CD 工作流程 (#1972) @lmmentel

  • [维护] 重命名分类 notebook (#1980) @TonyBagnall

  • [维护] 热修复: scipy 上限为 1.8.0 (#1995) @fkiraly

  • [维护] 替换已弃用的 np.strnp.float (#1997) @fkiraly

  • [维护] 从 CI-CD 移除 pytest-xdist,取消跳过 test_multiprocessing_idempotent (#2004) @fkiraly

  • [维护] 更改数据类型检查中的函数名为 lower_snake_case (#2014) @chicken-biryani

  • [维护] linuxmac 测试的详细输出 (#2045) @Saransh-cpp

  • [维护] GitHub Actions: 再次推送时取消 PR 旧的但仍在运行的工作流程 (#2063) @RishiKumarRay

已修复#

  • [错误修复] 移除文档中的 MrSEQL notebook (#1974) @TonyBagnall

  • [错误修复] 修复聚类扩展模板上的导入 (#1978) @schettino72

  • [错误修复] HC2 组件错误修复 (#2020) @MatthewMiddlehurst

  • [错误修复] 修复 PeriodIndex 算术中的错误 (#1981) @khrapovs

  • [错误修复] 修复如果序列有名称时,nested_univpd-multiindex mtype 的转换错误 (#2000) @fkiraly

  • [错误修复] MiniRocket 符合 sklearn init 规范,修复 __init__random_state 修改的错误 (#2027) @fkiraly

  • [错误修复] naive forecaster 窗口错误 (#2047) @eenticott-shell

  • [错误修复] 修复 ColumnsEnsembleForecaster._predict 中的隐藏错误 (#2083) @aiwalter

贡献者#

@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) 方法用于分位数预测

  • 两者都在 coverage, alpha 参数上进行了向量化,并适用于多变量预测

  • 旧的 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

  • 参见转换器基础 API 和转换器扩展模板

弃用和移除#

数据类型、检查、转换#

  • 弃用,计划在 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] Table scitype 并重构 convert 模块 (#1745) @fkiraly

  • [ENH] estimator scitype 实用工具 (#1838) @fkiraly

  • [ENH] 实验性:分层时间序列 scitype hierarchical_scitype (#1786) @fkiraly

  • [ENH] 将 mtype_to_scitype 升级为 list-like 参数 (#1807) @fkiraly

  • [ENH] check_is_mtype 返回 scitype (#1789) @fkiraly

  • [ENH] sktime 时间序列格式的向量化/迭代实用工具 (#1806) @fkiraly

数据集和数据加载器#

聚类#

距离、核函数#

  • [ENH] numba 距离模块的可组合距离接口原型 (#1858) @fkiraly

预测#

时间序列分类#

变换#

  • [ENH] 重构变换器模块 - 第一部分,series 模块 (#1795) @fkiraly

  • [ENH] 变换器基类 DRY(不重复自己),以及 inverse_transform (#1790) @fkiraly

  • [ENH] 变换器基类允许输入始终为单变量时输出多变量 (#1706) @fkiraly

测试模块#

治理#

维护#

  • [MNT] 将额外依赖项从 fbprophet 切换到 prophet (#1958) @lmmentel

  • [MNT] 更新了代码依赖版本,即 numpystatsmodels,以减少依赖冲突 (#1921) @lmmentel

  • [MNT] 将所有 CI/CD 工作流迁移到 github actions,并弃用 azure pipelines 和 appveyor (#1620, #1920) @lmemntel

  • [MNT] 重构遗留测试配置 (#1792) @lmmentel

  • [FIX] 添加缺失的 init 文件 (#1695) @mloning

  • [MNT] 将 shellcheck 添加到 pre-commit (#1703) @mloning

  • [MNT] 移除 assign-contributor 工作流 (#1702) @mloning

  • [MNT] CI 在缺失 init 文件时失败 (#1699) @mloning

  • [ENH] 替换已弃用的 np.int, np.float (#1734) @fkiraly

  • [MNT] 纠正运行 notebook 示例时 bash 错误传播问题 (#1816) @lmmentel

已修复#

  • [DOC] 修复了 transformer 扩展模板中的一个错别字 (#1901) @rakshitha123

  • [DOC] 修复了“Setting up a development environment”章节中的错别字 (#1872) @shubhamkarande13

  • [BUG] 修复了 ARIMA 和 TrendForecaster 不正确的“uses X”标签 (#1895) @ngupta23

  • [BUG] 修复了连接训练集和测试集时的错误 (#1892) @tonybagnall

  • [BUG] Knn bugfix 允许与 GridsearchCV 和 column ensemble 一起使用 (#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 修复了带有 anchorings 的 freqs 的 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] 修复了 prophet 中关于外部变量 X 内部更改的错误 (#1711) @kejsitake

  • [BUG] 修复了 sktime/utils/tests/test_datetime.py:21 中 pd.Series 的 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 可访问已拟合的 order 和 seasonal order (#1641) @AngelPone

  • Numba 距离模块 - 高效的时间序列距离 (#1574) @chrisholder

  • 变换器基接口重构 - 默认对面板数据进行向量化 @fkiraly

  • 新的实验性模块:时间序列对齐,dtw-python 接口 (#1264) @fkiraly

核心接口更改#

数据类型、检查、转换#

  • check_is 重命名为 check_is_mtypecheck_is 将在 0.10.0 中弃用 (#1692) @mloning

时间序列分类#

  • 时间序列分类器现在接受 2D np.ndarray,通过转换为 3D 而非抛出异常 (#1604) @TonyBagnall

变换#

基接口重构 (#1365, #1663, #1706)

  • fit, transform, fit_transform 现在同时接受 SeriesPanel 作为参数

  • 如果将 Panel 传递给序列转换器,它将应用于所有实例

  • 所有变换器现在都使用 X 作为第一个参数,y 作为第二个参数。这是由新的基接口强制执行的。

  • 这与之前不同类型的变换器不一致:series-to-series 变换器使用 Z 作为第一个参数,X 作为第二个参数。

  • Z(以前的第一个参数)在系列变换器中作为 X 的别名直到 0.10.0,之后将被弃用

  • X(以前的第二个参数)在那些更改为 y 的变换器中未使用

  • 参阅新的变换器扩展模板

  • 这些更改将通过 0.9.X 版本逐步推广到所有变换器

0.10.0 的新弃用#

数据类型、检查、转换#

  • check_is 重命名为 check_is_mtypecheck_is 将在 0.10.0 中弃用 (#1692) @mloning

时间序列分类#

变换#

  • 序列变换器将不再接受 Z 参数 - 第一个参数 ZX 替换 (#1365)

新增#

文档#

数据类型、检查、转换#

  • [改进] 添加了 check_is_scitype 用于scitype检查,清理了 dists_kernels 输入检查/转换 (#1704) @fkiraly

预测#

  • [改进] Auto-ETS 根据数据的非负性检查并选择模型 (#1615) @chernika158

  • [文档] 用于 ForecastingGridSearchCV docstring的元调优示例 (#1656) @aiwalter

时间序列对齐#

  • [改进] 新模块:时间序列对齐;对齐距离 (#1264) @fkiraly

时间序列分类#

时间序列距离#

治理#

维护#

已修复#

估计器注册表#

  • [错误] 修复了注册表查找,添加了注册表查找的测试套件 (#1648) @fkiraly

预测#

  • [错误] Facebook prophet 对外生数据 X 的副作用 (#1711) @kejsitake

  • [错误] 修复了 _split 的错误,意外删除了对 pandas.Index 的支持 (#1582) @fkiraly

  • [错误] 修复了 convert_split 对 Numpy 1D 输入的处理 (#1650) @fkiraly

  • [错误] 在重新拟合预测器时 update_y_X 的问题由 (#1595) @ltsaprounis

性能指标,评估#

时间序列对齐#

时间序列分类#

转换#

  • [错误] 修复了 Imputer。添加了 Imputer 测试 (#1666) @aiwalter

  • [错误] 修复了 ColumnwiseTransformer 示例 (#1681) @mloning

  • [错误] 修复了 FeatureUnion 测试失败的问题 (#1665) @lmmentel

  • [错误] 重构了 _diff_transform 函数以兼容 pandas 1.3.4 (#1644) @lmmentel

维护#

贡献者#

@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.DataFrame, pd.Series, np.ndarray 作为 Xy,并返回与传入 y 相同类型的预测结果

  • sktime 现已支持多元预测器,所有核心接口方法在这种情况下都会返回合理的返回类型

  • 预测器是否能处理多元时间序列可以通过 get_tag("scitype:y") 进行检查,它会返回 "单变量", "多元""两者"

  • 引入了更多标签,详见 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#

新增#

变更#

修复#

  • 修复 naive 模型中使用 seasonal periodicity 和 mean 策略的问题 (来自 PR #917) (#1124) @mloning

  • 修复 ForecastingPipeline 导入问题 (#1118) @mloning

  • Bug 修复 - forecasters 应该使用内部接口 _all_tags 进行自检,而不是 _has_tag (#1068) @fkiraly

  • bug 修复:Prophet 适配器在设置参数后无法克隆 (#911) @Yard1

  • 修复 Minirocket 分类器中的种子问题 (#1094) @Lovkush-A

  • 修复软依赖链接 (#1035) @fkiraly

  • 修复 docstrings 中的微小错别字 (#889) @GuzalBulatova

  • 修复 manylinux CI (#914) @mloning

  • 添加 limits.h 以确保在某些操作系统上进行 pip 安装 (#915) @tombh

  • 修复 Imputer 和 HampelFilter 对输入的副作用 (#1089) @aiwalter

  • BaseCluster 类问题解决 (#1075) @chrisholder

  • 清理 metric docstrings 并修复 _RelativeLossMixin 中的 bug (#999) @RNKuhns

  • 预测扩展模板前言中的微小澄清 (#1069) @fkiraly

  • 基于样本内预测修复 imputer 方法中的 fh (#861) @julramos

  • Arsenal 修复、扩展功能和 HC1 单元测试 (#902) @MatthewMiddlehurst

  • 微小 bug 修复 - 在 forecasters 中进行输入检查之前将 _is_fitted 设置为 False (#941) @fkiraly

  • 在并行训练时间序列森林集成时正确处理 random_state (#819) @kachayev

  • 升级 nbqa (#998) @MarcoGorelli

  • datetime:从解析的 pandas 频率构造 Timedelta (#873) @ckastner

所有贡献者: @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#

新增#

变更#

修复#

  • 修复 Readthedocs 和 Binder 启动按钮中的链接 (#416) @mloning

  • 修复性能指标中的小错误 (#422) @krumeto

  • 解决笔记本示例中的警告 (#418) @alwinw

  • 解决 #325 软依赖的 ModuleNotFoundError (#410) @alwinw

所有贡献者: @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 wheels

变更#

  • 修订所有估计器以符合通用接口并确保与 scikit-learn 兼容

移除#

  • 移除了一些系列作为特征设置中的冗余类,转而使用 scikit-learn 的实现:PipelineGridSearchCV

  • 移除 HomogeneousColumnEnsembleClassifier,转而使用更灵活的 ColumnEnsembleClassifier

修复#

  • 来自 scikit-learn 的弃用警告和未来警告

  • 来自 statsmodels 的用户警告