更改日志#
格式基于 Keep a Changelog,我们遵循 Semantic Versioning。
所有 版本 的源代码都可在 GitHub 上获取。
有关我们的长期计划,请参阅我们的路线图。
版本 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_params或forecasters_。
时间序列异常、变点、分割#
已移除:已弃用的
annotation模块已移除。用户应将从sktime.annotation导入改为从sktime.detection导入。已移除:检测器方法中已弃用的
Y参数已移除。用户应改用y参数。
改进#
BaseObject 和基础框架#
数据类型、检查、转换#
预测#
变换#
维护#
修复#
贡献者#
版本 0.36.1 - 2025-04-04#
亮点#
TimeMoE预测器 (#7869) @PranavBhatP在
ChronosForecaster中支持chronos-bolt(#7718) @PranavBhatP来自
statsforecast的ADIDA间歇性预测器 (#7754) @vedantag17
依赖项更改#
tensorflow(深度学习软依赖)的边界已更新为<2.20dask(数据容器和并行化后端软依赖)的边界已更新为<2025.2.1,>2024.8.2ray现在是一个软依赖(并行化后端)
核心接口更改#
- 所有原生并行化位置现在都接受
"ray"作为并行化后端,例如 预测参数调优,或通过
set_config进行分层并行化
- 所有原生并行化位置现在都接受
ForecastingBenchmark已重做接受
sktime内存数据格式和数据集加载器为基准测试输出提供不同的处理程序,包括
json、csv和parquet。支持全局预测器
改进#
BaseObject 和基础框架#
基准测试、度量、拆分器#
[改进] 添加
cINNForecaster的CurveFitForecaster的错误处理 (#7602) @Utkarsh-Aggarwal[改进] 扩展基准测试以接受 sktime 内存数据格式 (#5055) @hazrulakmal
[改进] 确保预测度量返回
np.float64类型 (#8099) @amitsubhashchejara
数据集和数据加载器#
[改进] 数据集的加载器函数返回具有数值
dtype的y(#7588) @vedantag17
预测#
[改进] 来自
statsforecast的ADIDA间歇性预测器 (#7754) @vedantag17[改进] 在
GroupByCategoryForecaster和文档字符串中添加聚类器用法 (#7782) @fkiraly[改进] 在
ChronosForecaster中实现对chronos-bolt的支持 (#7718) @PranavBhatP[改进] 提高
DirectReductionForecaster和RecursiveReductionForecaster的方法测试覆盖率 (#7770) @PranavBhatP[改进] 添加
TinyTimeMixerForecaster的fit_strategy(#7648) @Sohaib-Ahmed21[改进] 使 HF Transformers Forecaster 能够以对象形式传递模型 (#7689) @Spinachboul
[改进] ES-RNN 预测器 (#7772) @Ankit-1204
[改进]
TimeMoE预测器(内置) (#7869) @PranavBhatP
参数估计#
注册表和搜索#
测试框架#
[改进] 测试用例以确保如果未更新
EXCLUDED_TESTS_BY_TEST则抛出AssertionError(#7622) @satvshr[改进] 修复
HFTransformersForecaster的test_excluded_tests_by_test(#7882) @fkiraly[改进] 改进
test_excluded_tests_by_test中的条件和错误消息 (#7904) @fkiraly[改进] 如果
raise_exceptions=True,则check_estimator会详细输出通过和失败的测试 (#8047) @fkiraly[改进] 在
TestAllEstimators中处理BaseForecaster.predict_proba的skpro依赖项 (#8023) @fkiraly[改进] 放宽 Panel-To-Panel 变换以允许更改实例数量 (#7991) @felipeangelimvieira
[改进] 捕获
test_fit_idempotentpredict_proba软依赖错误 (#8076) @fkiraly
时间序列异常、变点、分割#
[改进] 基于 QuoVadisTAD 的时间序列 AUPRC 异常检测度量 (#7729) @Ankit-1024
变换#
[改进]
MiniRocket的参数集 (#7814) @Bergschaf[改进] 通过变换器
SeasonalDummies添加季节虚拟变量特征(用于季节性分类变量的独热编码) (#7915) @ericjb[改进] 使用
RBFLayer在RBFTransformer中进行变换,并将RBFLayer和RBFNetwork移动到networks(#7730) @phoeenniixx
文档#
[文档] 修复新贡献者说明中开发者指南的链接 (#7842) @fkiraly, @yarnabrina
[文档] 更新 enbpi 文档字符串 (#7835) @Spinachboul
[文档] 创建检测性能度量的模板 (#7740) @Ankit-1204
[文档]
FCNClassifier- 添加 Wang 等人参考文献 (#7884) @itsbharatj[文档] 向
HierarchicalDask类添加了文档字符串 (#7684) @TomatoChocolate12[文档] 澄清
utils.parallel.parallelize中函数fun的假设 (#7823) @fkiraly[文档] 添加了
AlignerNaive和AlignerLuckyDtw的示例 (#7795) @haroon0x[文档] 在
Reconciler文档中添加了明确的引用到ReconcilerForecaster(#8045) @fkiraly
维护#
[维护] 从
EXCLUDED_TESTS_BY_TEST列表中移除MiniRocket以修复 CI 失败 (#7860) @satvshr[维护] 向模板添加 LLM 提示 (#7851) @felipeangelimvieira
[维护] 避免跳过几个预测器的单元测试 (#7826) @yarnabrina
[维护] 暂时跳过
pytorch-forecasting测试,直到解决 #7997 (#7998) @fkiraly[维护] 更新 pre-commit 钩子并在所有文件上运行所有钩子 (#7996) @yarnabrina
[维护] 对于
TSFreshFeatureExtractor,移除scipy的上限,设置tsfresh的下限 (#7847) @benHeid[维护] 更新
pyproject.toml以在 python 3.12 之前安装 tensorflow (#7865) @Reckadon[维护] 从
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[维护] 从 test_check_estimator 中移除调试行 (#8104) @felipeangelimvieira
[维护] [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] 修复
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] 确保
statsforecast适配器跟踪已训练的预测器 (#7983) @yarnabrina[Bug] 修复
HierarchyEnsembleForecaster测试失败的问题 (#7992) @wilsbj[Bug] 修复
_HeterogenousEnsembleForecaster参数检查问题 (#7984) @fkiraly[Bug] 修复
_HeterogenousMetaForecaster对forecasters_的处理问题 (#8020) @fkiraly[Bug] 在
HierarchicalProphet中使用_DelegatedForecaster,并为prophetverse版本添加上限 (#7980) @felipeangelimvieira[Bug] 修复
fh.to_absolute中的时间戳格式变化问题 (#7914, #8110) @XinyuWuu
参数估计#
测试框架#
[Bug] 修复由于
pytest继承 bug 导致的TestAllForecasters测试集合失败问题 (#7789) @yarnabrina[Bug] 修复
check_estimator对TestAllGlobalForecasters的集成问题 (#7800) @fkiraly, @sohaib-ahmed21[Bug] 在测试中,处理
BaseForecaster.predict_proba对skpro的软依赖 (#7981) @fkiraly[Bug] 测试工具
retrieve_scenarios应该为预测器、聚类器和分类器选择场景 (#7971) @wilsbj[Bug] 捕获
test_fit_idempotentpredict_proba软依赖错误 - 二次修复 (#8080) @fkiraly[Bug] 确保
test_doctest_examples正确检查 doctests (#8065) @fkiraly
时间序列异常、变点、分割#
时间序列分类#
时间序列聚类#
时间序列回归#
转换#
[Bug]
sklearn 1.6.X与TabularToSeriesAdaptor的兼容性 - 在adapt.py中通过requires_fit处理stateless标签 (#7845) @benHeid[Bug] 修复
SummaryTransformer中_SuppressWarningPattern和LossySetitemError的无限递归问题 (#7903) @celestinoxp[Bug] 修复
Series-to-Primitives转换器对分层数据的输出索引问题 (#8037) @fkiraly[Bug] 在
ClustererAsTransformer中处理分层 mtype (#8013) @felipeangelimvieira[Bug] 使
_TransformChangeNInstances能够处理分层测试场景 (#8092) @felipeangelimvieira
内置库: vmdpy#
[Bug] 修复 VMD 奇数长度数据返回偶数长度分解的问题 (#8094) @danferns, @LorchZachery
贡献者#
@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.0scikit-learn(核心依赖项)的边界已更新至<1.7.0
内容#
[维护] [Dependabot](deps): 将
numpy要求从<2.2,>=1.21更新到>=1.21,<2.(#7675, #7747) @dependabot[bot][Bug] 修复
BaseDatatype.__call__分派到私有方法而非公共方法的问题 (#7748) @fkiraly
版本 0.35.1 - 2025-02-02#
亮点#
预测指标的
__call__可以通过传递by_index参数来返回按索引计算的指标evaluate_by_index(#7608) @benHeidMAPA 预测器 (#7620) @phoeenniixx
skforecast.recursive.ForecasterRecursive接口 (#7554) @yarnabrina原生归约器(第二代)现在支持任意填充策略 (#7535, #7646) @lenaklosik
新的检测指标:RAND Index,窗口化 F1 分数 (#7533, #7628) @gavinkatz001
数据集的标签和对象 API (#7398) @felipeangelimvieira
依赖项变更#
skpro(概率分布软依赖)的范围已更新为>=2,<2.10.0numba(计算软依赖)的范围已更新为<0.62optuna(超参数优化软依赖)的范围已更新为<4.3pykan(预测软依赖)的范围已更新为>=0.2.1,<0.2.9dask(数据容器和并行化后端软依赖)的范围已更新为<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] 将
InstanceSplitter重构为一个实用工具apply_split,用于将sklearn拆分应用于时间序列集合 (#7330) @ksharma6[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__方法调度到evaluate与evaluate_by_index(#7608) @benHeid
数据集和数据加载器#
[ENH] Dataset 对象接口 (#7398) @felipeangelimvieira
数据类型、检查、转换#
预测#
[ENH] 弃用
HierarchyEnsembleForecaster的fitted_list属性和 (#7423) @sanskarmodi8[ENH] 重构预测指标测试准备 - object_type 标签
metric_forecasting(#7516) @fkiraly[ENH] 添加
SplineTrendForecaster(#7487, #7502) @Dehelaan, @jgyasu[ENH]
skforecast.recursive.ForecasterRecursive的接口 (#7554) @yarnabrina[ENH]
RecursiveReductionForecaster的预测器填充器 (#7535) @lenaklosik[ENH]
TinyTimeMixer验证拆分效率修复 (#7647) @RHYTHM2405[ENH] MAPA 预测器 (#7620) @phoeenniixx
[ENH] 在
TimesFMForecaster中默认设置context_len和horizon_len(#7597) @tanvincible
参数估计和假设检验#
注册表和搜索#
时间序列异常、变化点、分割#
[ENH] 通过聚类实现的基于窗口的时间序列分割 (#7612) @Ankit-1204
[ENH] 针对新检测接口修复
GreedyGaussianSegmentation(#7472) @Spinachboul
时间序列分类#
[ENH] 为
RotationForest添加sklearn兼容性 (#7638) @PranavBhatP
时间序列聚类#
转换#
[ENH] 为
YtoX转换器添加多个测试参数集 (#7469) @tanvincible[ENH] 使用
RBFTransformer神经网络创建rbf_forecaster.py(#7334) @phoeenniixx
测试框架#
文档#
[DOC] 将贡献者 Gavin Katz 添加到 .all-contributorsrc 文件中 (#7513) @gavinkatz001
[DOC] 在 InceptionTimeClassifier 的 docstring 中添加注释以修复 #7453 (#7508) @skinan
[DOC] 修复
transformation.rst中的一些拼写错误 (#7520) @phoeenniixx[DOC] 为
AlignerDTW和AlignerDTWfromDist提供 docstring 使用示例 (#7381) @Adarsh2345[DOC]
SeriesXarraymtype 的 API 参考文档 (#7494) @SABARNO-PRAMANICK[DOC] 在各种时间序列分类器中为 hfawaz 和 dl-4-tsc 添加适当的致谢 (#7518) @fkiraly
[DOC]
TablePdDataFrame和TablePdSeriesmtypes 的 API 规范 docstrings (#7540) @VjayRam[DOC] mtype PanelGluontsList 的 API 参考 (#7539) @b9junkers
[DOC]
TableNp1Dmtype 的 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] 修复了与最近合并的 PR #7666 相关的
TablePolarsEager渲染问题 (#7699) @fnhirwa[DOC] 改进了 grouped/clustering 预测器合成器的 docstring (#7709) @fkiraly
[DOC] 在教程中添加处理多元数据的新模式 (#7362) @PranavBhatP
[DOC] 修复文档示例代码中需要双括号切片 dataframe 的拼写错误。DeepAR (#7641) @gbilleyPeco
[DOC] 添加了
TablePolarsEager的描述 (#7666) @RHYTHM2405[DOC] 修复 sktime 网站上指向 elections 仓库的无效链接 (#7631) @tanvincible
[DOC] 修复文档示例代码中需要双括号切片 dataframe 的拼写错误。 (#7639) @gbilleyPeco
维护#
[MNT] 将
statsforecast升级到最新版本 (#7573) @yarnabrina[MNT] 修复:为
temporian添加aarch64安装限制 (#7692) @abhishek-iitmadras[MNT] [Dependabot](依赖):将
pykan要求从<0.2.7,>=0.2.1更新到>=0.2.1,<0.2.9(#7396) @dependabot[bot][MNT] [Dependabot](依赖):将
dask要求从<2024.8.1更新到<2025.1.1(#7481, #7545, #7658) @dependabot[bot][MNT] [Dependabot](依赖):将
skpro要求从<2.9.0,>=2更新到>=2,<2.10.0(#7704) @dependabot[bot][MNT] [Dependabot](依赖):将
numba要求从<0.61更新到<0.62(#7677) @dependabot[bot][MNT] [Dependabot](依赖):将
optuna要求从<4.2更新到<4.3(#7676) @dependabot[bot]
修复#
BaseObject 和基础框架#
预测#
[BUG] 修复
_HeterogenousEnsembleForecaster后代中get_fitted_params对包装的估计器的访问 (#7522) @fkiraly[BUG] 修复在
RecursiveReductionForecaster中使用Imputer的问题 (#7706) @Salzemann
神经网络#
[BUG]
AttentionLSTM- 移除活动正则化器 (#7582) @marcosfelt
注册表和搜索#
时间序列异常、变化点、分割#
[BUG] 确保所有
_fit等方法都使用小写的y(#7673) @KrishBakshi
时间序列分类#
[BUG] 在 shapelet 转换修复 #7499 后,修复
ShapeletTransformClassifier的预期输出测试 (#7734) @fkiraly[BUG] 修复
MACNNClassifier,MACNNRegressor中的错误 (#7651) @KrishBakshi
转换#
贡献者#
@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.0skpro(概率分布软依赖)的范围已更新为>=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。
维护#
[MNT] [Dependabot](deps): 更新 scikit-base 依赖项从
<0.12.0,>=0.6.1到>=0.6.1,<0.13.0(#7392) @dependabot[bot][MNT] [Dependabot](deps): 更新 skpro 依赖项从
<2.8.0,>=2到>=2,<2.9.0(#7406) @dependabot[bot][MNT] 移除 transformers 的顶层导入 (#7491) @yarnabrina
[MNT] 为 skforecast autoreg 适配器添加上限 (#7488) @yarnabrina
[DOC] 修复
skchange更新后 detection notebook 中失败的单元格 (#7483) @fkiraly
贡献者#
Version 0.34.1 - 2024-11-29#
亮点#
探测器 API 全面重做,模块现已成熟。@tveten, @alex-jg3, @fkiraly, @alyssadsouza, @ShivamJ07, @RobotPsychologist
在预测指标中,允许将可调用对象作为
sample_weight传递,用于动态权重生成 (#7288) @MarkusSagen与新的
neuralforecast估计器的新接口 (#7434) @yarnabrina预测器的 Box-Cox 偏差调整 (#7268) @sanskarmodi8, @talat-khattatov
SCINet 预测器 (#7400) @Sohaib-Ahmed21
时空 DBSCAN 聚类器 (#7353) @vagechirkov, @vectornd
依赖项变更#
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_points和predict_segments现在也返回pd.DataFrame,格式与predict相同,不同之处在于predict_points将检测到的事件强制转换为点,将段的起点和终点视为单独的点。predict_segments将检测到的事件强制转换为段,可能是单索引段。BaseDetector.transform现在始终返回一个pd.DataFrame,其中至少包含一列"transform",其中包含转换后的时间序列。
增强功能#
BaseObject 和基础框架#
基准测试、指标、分割器#
预测#
[ENH] 添加
RecursiveReductionForecaster到模块导出、测试和文档中 (#4806) @fkiraly[ENH] 向 neuralforecast rnn 和 lstm 添加新参数 (#7422) @yarnabrina
[ENH] 预测器的 Box-Cox 偏差调整 (#7268) @sanskarmodi8, @talat-khattatov
[ENH] 在预测指标中,允许将可调用对象作为
sample_weight传递,用于动态权重生成 (#7288) @MarkusSagen[ENH] SCINet 预测器 (#7400) @Sohaib-Ahmed21
[ENH] 减少
statsmodels适配器的内存占用 - 保存必要的_y信息以消除对_y的需求 (#7417) @hudsonhoch[ENH] 接口新的
neuralforecast估计器 (#7434) @yarnabrina
时间序列异常、变化点、分段#
[ENH] 添加
_transform_score模板并从探测器中移除已失效的fmt相关代码 (#7425) @ShivamJ07[ENH] sktime 和 skchange 检测 API 同质化 - 基础类
predict返回类型 (#7433) @alyssadsouza[ENH] 将私有
make_annotation_problem重命名为make_detection_problem(#7436) @fkiraly[ENH]
sktime和skchange检测 API 同质化 - 第一部分 - 基础类和y参数 (#7342) @fkiraly[ENH] sktime 和 skchange 检测 API 同质化 - 第二部分 - 基础类
transform返回类型 (#7432) @alyssadsouza[ENH] 将 scitype 名称
"series-annotator"更改为"detector"(#7361) @jgyfutub[ENH]
sktime和skchange检测 API 同质化 - 基础类predict_scores返回类型 (#7460) @alyssadsouza[ENH]
sktime和skchange检测 API 同质化 - 基础类predict_points返回类型 (#7459) @alyssadsouza[ENH] 添加
skchange变化点探测器作为占位符记录 (#7458) @ShivamJ07, @fkiraly[ENH] 更新
DetectorPipeline和DetectorAsTransformer内部调用和文档字符串 (#7475) @fkiraly[ENH] sktime 和 skchange 检测 API 同质化 -
predict,predict_points,predict_segments(#7476) @fkiraly
时间序列分类#
时间序列聚类#
[ENH] 时空 DBSCAN 聚类器 (#7353) @vagechirkov, @vectornd
时间序列回归#
转换#
测试框架#
文档#
[DOC] 在 docstring 中,将
Example部分重命名为Examples部分 (#7341) @fkiraly[DOC] 添加
DropNA的 docstring 示例 (#7327) @SSROCKS30[DOC] 修复 README 中 sktime 徽标位置 (#7322) @Akhsuna07
[DOC] 在 libs/README.md 中添加 uni2ts (#7348) @pranavvp16
[DOC] 回归解释中的小错字 (#7366) @manolotis
[DOC] 将 Binary Segmentation Estimator 添加到 API 参考 (#7379) @Dehelaan
[DOC] 改进
installation说明以提高清晰度 (#7339) @julian-fong[DOC] 向估计器概述添加时间序列探测器 рубрика (#7389) @gavinkatz001
[DOC] 在滑动窗口分割器的 docstring 中提供适当的数学描述 (#7376) @keitaVigano
维护#
[MNT]
detection模块 - 将 CI 从annotation模块移动 (#7456) @fkiraly[MNT] 更新 pre-commit 钩子的版本 (#7461) @yarnabrina
[MNT] [Dependabot](deps): 更新
dask依赖项从<2024.8.1到<2024.11.3(#7387) @dependabot[bot][MNT] [Dependabot](deps): 更新
pytest-randomly依赖项从<3.16,>=3.15到>=3.15,<3.17(#7338) @dependabot[bot]
修复#
预测#
[BUG] 修正
Croston中的ignores-exogeneous-X标签值 (#7404) @yarnabrina
时间序列异常、变化点、分段#
时间序列分类#
[BUG] 修复
CNTCClassifier和CNTCRegressor中的输入形状 (#7269) @sanskarmodi8
时间序列聚类#
[BUG] 修复
CNTCClassifier中的输入形状 (#7269) @sanskarmodi8
时间序列回归#
[BUG] 修复
CNTCRegressor中的输入形状 (#7269) @sanskarmodi8
测试框架#
贡献者#
@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.2scikit-base的边界已更新至>=0.6.1,<0.12.0holidays(转换软依赖项)的边界已更新至>=0.29,<0.59
弃用和移除#
annotation模块将重命名为detection,从 0.34.0 开始。为了确保导入的向下兼容性,直到不早于 0.37.0 或 1.0.0 的未来版本,该模块将同时在两个名称下可用。annotation软依赖项集将重命名为detection。为了确保导入的向下兼容性,annotation软依赖项集将可用直到不早于 0.37.0 或 1.0.0 的未来版本。
维护#
[维护] 准备将
annotation模块重命名为detection- 映射导入 (#7294) @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]
文档#
版本 0.33.2 - 2024-10-17#
亮点#
新增预测器:Chronos (零样本) 基础模型预测器接口 (#7001) @Z-Fran, @geetu040, @benHeid, @rigvedmanoj
新增转换器:时间径向基函数特征 (#7261) @phoeenniixx
新增
ExpandingSlidingWindowSplitter,在截止点从扩展窗口切换到滑动窗口 (#7193) @MarkusSagenpytorch-forecasting和neuralforecast模型现在为全局预测提供概率预测 (#6628, #6666) @XinyuWuuTimesFMForecaster现在允许选择源包,并且零样本使用已进行内存优化 (#7204, #7212) @Prtm2110, @fkiraly
依赖变更#
skpro(预测软依赖) 界限已更新到>=2,<2.8.0u8darts(预测软依赖) 界限已更新到>=0.29.0,<0.32.0dask(数据容器和并行化后端软依赖) 界限已更新到<2024.10.1
核心接口变更#
用于概率预测的性能指标,对于区间和分位数回报,现在可以选择使用 alpha (分位数预测) 或 coverage (区间预测) 参数构建,例如 EmpiricalCoverage(coverage=0.7) 用于“名义区间覆盖率为 70% 时的经验覆盖率”。
这些用于基准测试或调优接口,在这些接口中提供了度量指标,但没有显式调用 predict_interval 或 predict_quantiles。
在这种情况下,调优器或基准测试工具将使用度量指标的参数,在该分位数 alpha 或区间 coverage 上进行调优。
例如,ForecastingGridSearchCV(fcst, cv, scoring=PinballLoss(alpha=[0.3, 0.7])),用于在分位数 0.3 和 0.7 上根据 pinball loss 对预测器 fcst 进行评分调优。
改进#
BaseObject 和基础框架#
基准测试、指标、分割器#
[改进]
ExpandingSlidingWindowSplitter,在截止点从扩展窗口切换到滑动窗口 (#7193) @MarkusSagen[改进] 为所有
pred_interval类型的指标添加了coverage参数 (#7278) @talat-khattatov
数据类型、检查、转换#
[改进] 修复对象类型为
polars.LazyFrame时 polarsPerformanceWarning的问题 (#7221) @shivanshsinghal-22
预测#
[改进] 向
PolynomialTrendForecaster添加了predict_interval方法 (#6424) @ericjb[改进] 使用全局预测 API 为
pytorch-forecasting模型进行分位数预测 (#6628) @XinyuWuu[改进] 测试全局预测器:减少
_make_hierarchical中的观测数量以生成更短运行时间的测试数据 (#6948) @julian-fong[改进] Chronos (零样本) 基础模型预测器接口 (#7001) @Z-Fran, @geetu040, @benHeid, @rigvedmanoj
[改进] 在
ThetaLinesTransformer中添加了get_test_params方法 (#7199) @Anuragwagh[改进]
TimesFMForecaster依赖现在取决于use_source_package参数 (#7212) @Prtm2110
注册和搜索#
时间序列分类#
转换#
[改进]
HOG1DTransformer 为get_test_params添加新的测试参数集 (#7183) @Humorloos[改进] 为
Filter的get_test_params添加了第二个参数示例 (#7178) @KarlKolibri[改进] 时间径向基函数特征转换器 (#7261) @phoeenniixx
测试框架#
[改进] 组合模型中的
get_test_params测试用例取决于软依赖,使用_check_estimator_deps进行检查 (#7225) @shivanshsinghal-22
文档#
[文档] 添加了
load-tecator的引用 (#7171) @vedantag17[文档] 为
HOG1DTransformer添加示例 (#7180) @Humorloos[文档] 为
HurstExponentTransformer添加 docstring 示例 (#7185) @Dehelaan[文档] 将 MOIRAIforecaster 添加到 API 文档,创建新的预训练基础模型章节 (#7223) @Dehelaan
[文档] 修复了使用 sktime 和 ClaSP 的时间序列分割笔记本示例 (#7283) @RobotPsychologist
[文档] 修复了 README.md 中的细微语法错误 (#7262) @Smoothengineer
[文档] 在 ReverseAugmenter docstring 示例中添加了缺失的 import 语句 (#7265) @sanskarmodi8
维护#
[维护] [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 > 1时ExpandingCutoffSplitter的问题 (#7290) @ninedigits
数据集和数据加载器#
数据类型、检查、转换#
[错误修复] 修复
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 巴黎展示会的小型功能发布。
亮点#
MOIRAI 基础模型接口 (#6746) @pranavvp16, @benHeid
GroupbyCategoryForecaster,用于按类别或片段应用面板预测 (#7066) @felipeangelimvieira在
ReconcilerForecaster中,用户现在可以选择返回不包含__total的 dataframe (#7127) @SaiRevanth25通过聚类进行时间序列分割 (#6782) @ankit-1204
依赖变更#
optuna(超参数优化软依赖) 界限已更新到<4.1mne(转换软依赖) 界限已更新到>=1.5,<1.9
改进#
BaseObject 和基础框架#
数据类型、检查、转换#
[改进] 对
polars的分层 sci类型支持 (#6697) @pranavvp16[改进] 将
datatypes示例 fixtures 重构为BaseObject类 (#7133) @fkiraly
预测#
[改进] 添加 MOIRAI 基础模型接口 (#6746) @pranavvp16, @benHeid
[改进]
GroupbyCategoryForecaster,用于按类别或片段应用面板预测 (#7066) @felipeangelimvieira[改进] 为
ReconcilerForecaster添加一个参数,以返回不包含双下划线级别 (dunder levels) 的 dataframe (#7127) @SaiRevanth25
注册和搜索#
时间序列异常、变化点、分割#
[改进] 通过聚类进行时间序列分割 (#6782) @ankit-1204
转换#
文档#
[文档] 向 TimeSeriesKernelKMeans 添加了 docstring 示例 (#7124) @Saptarshi-Bandopadhyay
维护#
[维护] 更新 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[维护] 从基于
pytorch-forecasting的估计器中移除 python 版本界限 (#7102) @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.0holidays(变换软依赖项) 的边界已更新至>=0.29,<0.57pykan(深度学习软依赖项) 的边界已更新至>=0.2,<0.2.7mne(转换软依赖) 界限已更新到>=1.5,<1.9dask(数据容器和并行化后端软依赖项) 的边界已更新至<2024.8.3pytorch-forecasting(预测软依赖项) 的边界已更新至>=1.0.0,<1.2.0
弃用和移除#
在
DirectReductionForecaster中,参数windows_identical的默认值已更改为False。
维护#
[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]
文档#
[DOC] 将 @SaiRevanth25` 的贡献添加到 all-contributors 文件 (#7085) @SaiRevanth25
[DOC] 修复安装文档中的拼写错误和格式问题 (#7060) @Saptarshi-Bandopadhyay
增强功能#
贡献者#
@benHeid, @ericjb, @fkiraly, @SaiRevanth25, @Saptarshi-Bandopadhyay
版本 0.32.4 - 2024-09-06#
小型功能和修复版本,针对以下内容:
Colab 兼容性,
polars依赖项不兼容性的热修复与
skchange第二方集成的兼容性对异常、变点、分段框架的改进
与即将到来的
sktime选举相关的文档更新
核心接口变更#
引入了 scitype 适配框架,允许通过类型强制将一种类型的估计器用于另一种类型的槽。该强制框架目前涵盖了
sklearn、skpro和sktime估计器,并且是可扩展的。提供了一个用户和开发人员的速记方式来进行此类强制转换,即registry.coerce_scitype函数,它分派到各个强制转换机制。可以强制将产生聚类分配的时间序列聚类器转换为变换,从而可以在变换的任何管道槽中使用它们。
异常和变点检测器现在可以与变换组成管道,形成一个检测器。双下划线连接
transformer * detector将默认为此行为。可以将异常和变点检测器强制转换为变换,从而可以在变换的任何管道槽中使用它们。
增强功能#
BaseObject 和基础框架#
时间序列异常、变点、分段#
时间序列聚类#
变换#
[ENH] Hurst 指数特征提取变换器 (#7065) @phoeenniixx
文档#
修复#
贡献者#
@Alex-JG3, @fkiraly, @fnhirwa, @geetu040, @ninedigits, @phoeenniixx, @Saptarshi-Bandopadhyay, @wirrywoo
版本 0.32.3 - 2024-08-27#
热修复版本,修复了预测管道 HTML 表示的错误。
有关最新的非维护内容更新,请参阅 0.32.2。
内容#
[BUG] 修复
TransformedTargetForecaster和ForecastingPipeline的 HTML 显示问题
版本 0.32.2 - 2024-08-26#
亮点#
来自
prophetverse的HierarchicalProphet预测器 (#7028) @felipeangelimvieira正则化 VAR 降维预测器
VARReduce(#6725) @meraldoantonio框架对分类数据的支持已扩展到变换器和管道 (#6924) @Abhay-Lejith
依赖项变更#
holiday(变换软依赖项) 的边界已更新至>=0.29,<0.56dask(数据容器和并行化后端) 的边界已更新至<2024.8.2
核心接口变更#
已为聚类器添加了新标签,以描述其分配聚类中心的能力。已添加以下布尔标签:
capability:predict,表示聚类器是否可以通过predict分配聚类标签capability:predict_proba,用于概率聚类分配capability:out_of_sample,用于样本外聚类分配。如果为 False,则聚类器只能将聚类分配给拟合期间见过的数据点。
增强功能#
BaseObject 和基础框架#
数据集和数据加载器#
[ENH] 在
load_m5中将日期列转换为日频率周期 (#6990) @SaiRevanth25
数据类型、检查、转换#
[ENH] 支持 Polars
Seriesscitype (#6485) @pranavvp16[ENH] 支持 Polars
Panelscitype (#6552) @pranavvp16
预测#
[ENH] 新增正则化 VAR 降维预测器
VARReduce(#6725) @meraldoantonio[ENH] 将
HierarchicalProphet估计器添加到prophetverse模块 (#7028) @felipeangelimvieira
时间序列聚类#
变换#
[ENH] 将 X 中的分类支持扩展到变换器和管道 (#6924) @Abhay-Lejith
文档#
[DOC] 修复
TransformedTargetForecasterdocstring 的问题 (#7002) @fkiraly[DOC] 修复
ExpandingCutoffSplitter的 docstring (#7033) @ninedigits
维护#
[MNT] 将 changelog 与热修复分支
anirban-sktime-0.31.2同步 (#6963) @yarnabrina[MNT] 使用
numpy 2跳过装饰test_auto_arima,直到最终修复/诊断 (#6973) @fkiraly[MNT] 将基类
TimeSeriesLloyds重命名为BaseTimeSeriesLloyds(#6992) @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.0skforecast(预测软依赖项) 的边界已更新至<0.14.0。
核心接口变更#
all
sktimeestimators and objects are now required to have at least two test parameter sets inget_test_paramsto be compliant withcheck_estimatorcontract tests. This requirement was previously stated in the extension template but not enforced. It is now also included in the automated tests viacheck_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_probawill requireskproto be present in the python environment, for distribution objects to represent distributional forecasts. Untilsktime 0.35.0,predict_probawill continue working withoutskpro, defaulting to return objects insktime.probaifskprois not present. Fromsktime 0.35.0, an error will be raised upon call of forecasterpredict_probaifskprois not present in the environment. Users of forecasters’predict_probashould ensure thatskprois installed in the environment.The probability distributions module
sktime.probadeprecated and will be fully replaced byskproinsktime 0.38.0. Untilsktime 0.38.0, imports fromsktime.probawill continue working, defaulting tosktime.probaifskprois not present, otherwise redirecting imports toskproobjects. Fromsktime 0.35.0, an error will be raised ifskprois not present in the environment, otherwise imports are redirected toskpro. Direct or indirect users ofsktime.probashould ensureskprois installed in the environment. Direct users of thesktime.probamodule should, in addition, replace any imports fromsktime.probawith imports fromskpro.distributions.
Contents#
[MNT] 0.32.0 deprecations and change actions (#6916) @fkiraly
[MNT] [Dependabot](deps): Update
skprorequirement from<2.5.0,>=2to>=2,<2.6.0(#6897) @dependabot[bot][MNT] remove
numpy 2incompatibility flag fromnumbabased estimators (#6915) @fkiraly[MNT] deprecation of
probamodule in favour ofskprosoft dependency (#6940) @fkiraly[MNT] update versions of
pre-commithooks (#6947) @yarnabrina[MNT] 0.32.0 release action - revert temporary skip
get_test_paramsnumber check for 0.21.1 and 0.22.0 release (#5114) @fkiraly[MNT] Bump
skforecastto0.13version allowing support for python3.12(#6946) @yarnabrina[BUG] Fix
Xt_msgtype intranformations.base(#6944) @hliebert
Contributors#
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#
html representation of objects now has a button linking to documentation page (#6876) @mateuszkasprowicz
interface to TinyTimeMixer foundation model (#6712) @geetu040
interface to
dartsreduction models (#6712) @fnhirwa, @yarnabrinaLTSFTransformerbased oncure-labresearch code base (#6202) @geetu040forecasters can now support categorical
X, as per tag (#6704, #6732) @Abhay-LejithDirectReductionForecasternow has awindows_identicaloption (#6650) @hliebertForecastingOptunaSearchCVcan now be passed custom samplers and “higher is better” scores (#6823, #6846) @bastisar, @gareth-brown-86, @mk406
Dependency changes#
holiday(transformations soft dependency) bounds have been updated to>=0.29,<0.54dask(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_aliastag 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: boolto indicate that the estimator can handle categorical features in the input dataX. Such estimator can be used with categorical and string-valued features ifXis passed in one of thepandasbased mtypes.the html representation of all objects now includes a link to the documentation of the object, and is now in line with the
sklearnhtml representation.
Enhancements#
BaseObject and base framework#
[ENH] improved environment package version check (#6776) @fkiraly
[ENH] Remove package import alias related internal logic and tags (#6821) @fkiraly
[ENH] Adding tag for categorical support in
X(#6704) @Abhay-Lejith[ENH] Adding categorical support: Raising error in yes/no case (#6732) @Abhay-Lejith
[ENH] Link to docs in object’s html repr (#6876) @mateuszkasprowicz
Data sets and data loaders#
[ENH] Data Loader for M5 dataset (#6731) @SaiRevanth25
Data types, checks, conversions#
[ENH]
check_pdmultiindex_panelto return names of invalidobjectcolumns if there are any (#6797) @SaiRevanth25[ENH] Allow object dtype in series (#5886) @yarnabrina
[ENH] converter framework tests in
datatypesto cover all types, including those requiring soft dependencies (#6838) @fkiraly[ENH] add missing
feature_kindmetadata fields togluontsbased data container checkers (#6861) @fkiraly[ENH] added
feature_kindmetadata in datatype checks (#6490) @Abhay-Lejith[ENH] Adding support for
gluontsPandasDatasetobject (#6668) @shlok191[ENH] Added support for
gluontsPandasDatasetas aSeriesscitype (#6837) @shlok191
Forecasting#
[ENH]
dartsReduction Models adapter (#6712) @fnhirwa, @yarnabrina[ENH] Extension Template For Global Forecasting API (#6699) @XinyuWuu
[ENH] enable multivariate data passed to
autotsinterface (#6805) @fkiraly[ENH] Add Sampler to
ForecastingOptunaSearchCV(#6823) @bastisar[ENH] Add scoring direction to
ForecastingOptunaSearchCV(#6846) @gareth-brown-86, @mk406[ENH] de-novo implementation of
LTSFTransformerbased oncure-labresearch code base (#6202) @geetu040[ENH] Add
windows_identicaltoDirectReductionForecaster(#6650) @hliebert[ENH] updates type inference in
make_reductionto use central scitype inference and allow proba tabular regressors (#6893) @fkiraly[ENH] DeepAR and NHiTS and refinements for
pytorch-forecastinginterface (#6551) @XinyuWuu[ENH] Interface to TinyTimeMixer foundation model (#6712) @geetu040
[ENH] remove now superfluous try-excepts in forecasting API test suite (#6906) @fkiraly
Registry and search#
Time series anomalies, changepoints, segmentation#
Time series classification#
Transformations#
[ENH] add second test params dict to
Aggregator(#6759) @fr1ll[ENH]
pandasinner type and global pooling forTabularToSeriesAdaptor(#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_vectorizedaccess more defensive inBaseTransformer(#6863) @fkiraly
Test framework#
Vendor and onboard libraries#
[ENH] Vendor fracdiff library (#6777) @DinoBektesevic
[ENH] improvements to vendored
fracdifflibrary (#6912) @fkiraly
Documentation#
[DOC] Notebook and Template For Global Forecasting API (#6699) @XinyuWuu
[DOC] Add authorship credits to
MatrixProfileTransformerfor Stumpy authors (#6762) @alexander-lakocy[DOC] add examples to
StatsForecastGARCHandStatsForecastARCHdocstrings (#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]
TruncationTransformerdocstring 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_mtypeto match skprocheck_is_mtypefunction (#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_scoringdocstring (#6877) @fkiraly[DOC] add proper author credits to 1:1 interface classes - aligners, distances, forecasters, parameter estimators (#6850) @fkiraly
[DOC] Add documentation for benchmarking module (#6792) @benHeid
[DOC] Add example notebook for the graphical pipeline (#5175) @benHeid
[DOC] git workflow guide - chained branches, fixing header fonts (#6913) @fkiraly
Maintenance#
[MNT] Update
Callableimport fromtypingtocollections.abc(#6798) @yarnabrina[MNT] Fix spellings using
codespellandtypos(#6799) @yarnabrina[MNT] improved environment package version check (#6776) @fkiraly
[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] release workflow: Upgrade deprecated pypa action parameter (#6878) @szepeviktor
[MNT] Fix
pykanimport and dependency checks (#6881) @fkiraly[MNT] temporarily pin
matplotlibbelow3.9.1(#6890) @yarnabrina[MNT] make
pyproject.tomlparsing 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] sync docstring and code formatting of dependency checker module with
skbase(#6873) @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] Updating the GHA dependencies to install OSX dependencies and setting the compiler flags (#6926) @fnhirwa
[MNT] revert an erroneous instance of
pandasdeprecation fix (#6925) @fkiraly[MNT] Update the path to script to fix #6926 (#6933) @fnhirwa
[MNT] [Dependabot](deps): Update
pytestrequirement from<8.3,>=7.4to>=7.4,<8.4(#6819) @dependabot[bot][MNT] [Dependabot](deps): Update
daskrequirement from<2024.6.3to<2024.7.2(#6818) @dependabot[bot][MNT] [Dependabot](deps): Update
sphinx-galleryrequirement from<0.17.0to<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] 在
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.21skpro(软依赖项)的边界已更新为>=2,<2.5.0
废弃和移除#
时间序列异常、变点、分割#
时间序列标注器中的
fmt参数现已废弃。用户应改为使用predict和transform方法,即使用predict替代fmt="sparse",使用transform替代fmt="dense"。
时间序列分类#
深度学习分类器中的
convert_y_to_keras方法已被移除。一直使用此方法的用户应直接使用sklearn中的OneHotEncoder,因为convert_y_to_keras只是一个带有默认设置的OneHotEncoder简单包装器。
内容#
[MNT] 将
numpy边界提高到numpy < 2.1,numpy 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] 将代码风格升级到
python 3.8以上版本 (#6330) @yarnabrina[MNT] 在放弃对
python 3.8的支持后更新 pre commit hooks (#6331) @yarnabrina[ENH] 重构环境检查工具并进行错误修复 (#6719) @fkiraly, @yarnabrina
贡献者#
版本 0.30.2 - 2024-07-04#
亮点#
新的 估计器概览表和估计器搜索页面 (#6147) @duydl
HFTransformersForecaster(hugging face transformers 连接器) 现在提供了一个用户友好的接口,用于应用 PEFT 方法 (#6457) @geetu040使用
optuna对预测器进行超参数调优的ForecastingOptunaSearchCV(#6630) @mk406, @gareth-brown-86prophetverse包的预测器现已被sktime索引 (#6614) @felipeangelimvieiraskforecast适配器,用于降维策略 (#6531) @Abhay-Lejith, @yarnabrinaparametrize_with_checks工具,用于在第二方/第三方库中设置细粒度的 API 合规性测试 (#6588) @fkiraly
依赖项变更#
holidays(转换软依赖项)的边界已更新为>=0.29,<0.53dask(数据容器和并行化后端)的边界已更新为<2024.5.3optuna现已成为一个软依赖项,通过ForecastingOptunaSearchCV估计器,位于all_extras软依赖项集合中,边界为<3.7pytorch-forecasting现已成为一个软依赖项,位于dl(深度学习)软依赖项集合中skforecast现已成为一个软依赖项,位于all_extras软依赖项集合和forecasting软依赖项集合中,边界为<0.13,>=0.12.1dtaidistance现已成为一个软依赖项,位于all_extras软依赖项集合和alignment软依赖项集合中,边界为<2.4
核心接口变更#
预测#
基础预测器接口现在有一个专门用于全局预测或微调的接口点:在支持全局预测的预测器中,可以在 predict 方法中传递一个 y 参数,表示用于全局预测的新时间序列实例,或基础模型的上下文。能够进行全局预测或微调的预测器(这是同一个接口点)会带上标签 capability:global_forecasting,其值为 True。
全局预测和微调接口目前是实验性的,可能会发生变化。
欢迎用户提供反馈,并使用新的 pytorch-forecasting 适配器测试此功能。
测试框架#
改进#
BaseObject 和基础框架#
[ENH] 阻止
_check_soft_dependencies导致的导入,加快依赖检查和测试收集时间 (#6355) @fkiraly, @yarnabrina
基准测试、度量、分割器#
数据类型、检查、转换#
距离、核函数#
预测#
[ENH] 带有全局预测 API 的
pytorch-forecasting适配器 (#6228) @XinyuWuu[ENH]
skforecastForecasterAutoreg 适配器 (#6531) @Abhay-Lejith, @yarnabrina[ENH] 扩展
HFTransformersForecaster以支持 PEFT 方法 (#6457) @geetu040[ENH] 在
BaseForecaster中,将对capability:insample的检查移至_check_fh样板代码 (#6593) @XinyuWuu[ENH] 使用
optuna对预测器进行超参数调优的ForecastingOptunaSearchCV(#6630) @mk406, @gareth-brown-86
注册表和搜索#
时间序列对齐#
时间序列分类#
时间序列回归#
转换#
测试框架#
文档#
[DOC] 更新依赖项参考 (#6655) @emmanuel-ferdman
[DOC] 修复
BaseTransformer中开发者注释的微小拼写错误 (#6689) @Spinachboul[DOC] rst 路线图文档页面自 2021 年起已过时 - 替换为最新路线图的正确链接 (#6556) @fkiraly
[DOC] 感谢 @doberbauer` 修复了
pykalman的 python 3.11 兼容性问题 (#6662) @doberbauer
维护#
[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]
scipy1.14.0兼容性,适用于deep_equals插件对csr_matrix的支持 (#6664) @fkiraly[MNT] 废弃未使用的
_check_soft_dependencies参数suppress_import_stdout(#6691) @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.0scikit-base(核心依赖项)的边界已更新为>=0.6.1,<0.9.0skpro(软依赖项)的边界已更新为>=2,<2.4.0kotsu不再是预测基准测试框架所需的软依赖项。kotsu包不再维护,其必要的导入已作为私有工具移至sktime,直至重构。详情请参阅 #6514。pykalman(转换软依赖项)已分叉到sktime中,作为sktime.libs.pykalman,因为原始包不再维护,请参阅sktimeissue 5414 或pykalmanissue 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参数现已弃用,推荐使用predict或transform。标注的类型(例如,变化点或分割)由时间序列标注器中使用的新标签
task进行编码,其值为anomaly_detection、segmentation、changepoint_detection。低级方法允许多态地使用标注器,例如通过
predict_points或predict_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。
增强功能#
文档#
维护#
[维护] [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
[维护] 重命名
cINNForecaster为CINNForecaster的最后更改周期 (0.30.0) (#6367) @geetu040[维护] 添加
joblib作为核心依赖项 (#6384) @yarnabrina[维护] 将 CRLF 行尾修改为 LF 行尾 (#6512) @yarnabrina
[维护] 解决
pykalman问题 -sktime本地pykalman分叉 (#6188) @fkiraly
贡献者#
@Alex-JG3, @dependabot[bot], @fkiraly, @geetu040, @yarnabrina
版本 0.29.1 - 2024-05-30#
亮点#
依赖项更改#
holidays(转换软依赖项)的边界已更新为>=0.29,<0.50pycatch22(转换软依赖项)的边界已更新为<0.4.6dtw-python(距离和对齐软依赖项)的边界已更新为>=1.3,<1.6dask(数据容器和并行化后端)的边界已更新为<2024.5.2transformers(预测软依赖项)的边界已更新为<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 和基础框架#
基准测试、指标、分割器#
数据加载器#
数据类型、检查、转换#
[增强] Polars 转换工具 (#6455) @pranavvp16
预测#
时间序列对齐#
时间序列分类#
转换#
测试框架#
可视化#
文档#
[文档] 修复文档中的错误句子 (#6375) @helloplayer1
[文档] 更正
dask_to_pd转换函数的 docstring (#6439) @pranavvp16
维护#
[维护] [Dependabot](deps): 更新 holidays 要求从
<0.49,>=0.29到>=0.29,<0.50(#6456) @dependabot[bot][维护] [Dependabot](deps): 更新 pycatch22 要求从
<0.4.4到 <0.4.6`` (#6442) @dependabot[bot][维护] [Dependabot](deps): 更新 sphinx-design 要求从
<0.6.0到<0.7.0(#6471) @dependabot[bot][维护] [Dependabot](deps): 更新 dask 要求从
<2024.5.1到<2024.5.2(#6444) @dependabot[bot][维护] [Dependabot](deps): 更新 dtw-python 要求从
<1.5,>=1.3到>=1.3,<1.6(#6474) @dependabot[bot][维护] 在
sktime/tests中包含单元测试到按模块测试中 (#6353) @yarnabrina[维护]
AutoTBATS的维护变更 (#6400) @yarnabrina
修复#
预测#
[BUG] 修复
ForecastX在forecaster_X_exogeneous="complement"时的错误 (#6433) @fnhirwa[BUG] 修改 VAR 代码以允许进行 0.5 的
predict_quantiles计算 (修复 #4742) (#6441) @meraldoantonio
神经网络#
[BUG] 移除
networks.base中重复的BaseDeepNetworkPyTorch(#6398) @luca-miniati
时间序列分类#
[BUG] 解决
LSTMFCNClassifier改变callback参数的问题 (#6239) @ArthrowAbstract[BUG] 修复某些分类器中的
_get_train_probs以接受任何输入数据类型 (#6377) @fkiraly[BUG] 修复
ProximityForest, tree, stump, 和IndividualBOSS在predict中返回不同类型y的问题 (#6432) @fkiraly[BUG] 修复分类器默认
_predict总是返回整数标签的问题,即使fit的y不是整数 (#6430) @fkiraly[BUG] 在
CNNClassifier中,确保filter_sizes和padding被传递下去 (#6452) @fkiraly[BUG] 修复
BaseClassifier.fit_predict和fit_predict_proba对于pd-multiindexmtype 的问题 (#6491) @fkiraly
时间序列回归#
[BUG] 解决
LSTMFCNRegressor改变callback参数的问题 (#6239) @ArthrowAbstract[BUG] 在
CNNRegressor中,确保filter_sizes和padding被传递下去 (#6452) @fkiraly
变换#
[BUG] 修复以使
LabelEncoder与sktime管道兼容 (#6458) @Abhay-Lejith
测试框架#
可视化#
贡献者#
@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}})。
内容#
贡献者#
版本 0.28.1 - 2024-04-25#
亮点#
估计器标签现已在 API 参考文档中系统地记录 (#6289) @fkiraly
新的来自
pyts的分类器和变换器接口:BOSSVS, learning shapelets, shapelet transform (#6296) @johannfaouzi (作者), @fkiraly (接口)新的来自
tslearn的分类器接口:time series SVC, SVR, learning shapelets (#6273) @rtavenar (作者), @fkiraly (接口)如果在
predict中传递,ForecastX现在可以使用未来未知的外生变量 (#6199) @yarnabrinaneuralforecast模型现在具有自动检测日期时间freq并传递optimizer的设置 (#6235, #6237) @pranavvp16, @geetu040
依赖项变更#
dask(数据容器和并行化后端)的界限已更新为<2024.4.2arch(变换和参数估计软依赖项)的界限已更新为>=5.6,<7.1.0holidays(变换软依赖项)的界限已更新为>=0.29,<0.48mne(变换软依赖项)的界限已更新为>=1.5,<1.8
核心接口变更#
所有对象和估计器现在除了现有的 PEP 440 包依赖说明符标签外,还可以通过 env_marker 标签为其依赖项指定 PEP 508 兼容的环境标记。值应为符合 PEP 508 的字符串,例如 platform_system!="Windows"。
这使得对估计器的依赖项进行更细粒度的控制成为可能,例如,对于需要特定操作系统的估计器。
增强功能#
BaseObject 和基础框架#
基准测试、指标、拆分器#
预测#
[增强]
neuralforecast相关的小改动 (#6312) @yarnabrina[增强] 选项,允许
ForecastX在predict中传递未来未知的外生变量时使用它们 (#6199) @yarnabrina[增强] 为
neuralforecast模型添加optimizer参数 (#6235) @pranavvp16[增强] 更新面向
neuralforecast的估计器中freq="auto"的行为 (#6237) @geetu040
神经网络#
[增强] 为
CNNNetwork和ResnetNetwork添加测试参数 (#6209) @julian-fong
概率分布和模拟器#
时间序列分类#
时间序列聚类#
时间序列回归#
变换#
测试框架#
文档#
[文档] 在
InvertAugmenterdocstring 示例中添加缺失的导入语句 (#6236) @Anteemony[文档] 在 docstring 中添加使用示例 (#6264) @MihirsinhChauhan
[DOC] 为多个估计器的 docstring 添加了使用示例 (#6187) @MihirsinhChauhan
[DOC] 移除教程章节 2.2.4 中的冗余代码 (#6267) @iamSathishR
[DOC] 为
WhiteNoiseAugmenter添加了示例 (#6200) @SamruddhiNavale
维护#
[MNT] 更新 dask 要求从
<2024.2.2到<2024.4.2,在pyproject.toml中添加新的必需dataframe额外项。(#6282) @yarnabrina[MNT] 将 @slavik57 添加为维护贡献者,因为其修复了
conda-forgesktime-all-extras 0.28.0版本发布问题 (#6308) @tm-slavik57[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] 修复
tsf数据错误日志并使其更精确 (#6258) @pranavvp16
预测#
概率分布和模拟器#
时间序列聚类#
时间序列回归#
[BUG] 在
CNNRegressor中,修复当verbose=True时出现的self.model not found错误 (#6232) @morestart
变换#
[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现在支持pandas2.2.X,边界已更新为<2.3.0,>=1.1。temporian(transformations 软依赖) 边界已更新为>=0.7.0,<0.9.0。pykalman-bardo依赖项已被原始分支pykalman替换。pykalman-bardo已合并回pykalman,pykalman不再处于废弃状态。这是一项软依赖,此切换不影响使用其依赖项集合之一安装sktime的用户。
弃用和移除#
预测#
在
ProphetPiecewiseLinearTrendForecaster中,季节性参数yearly_seasonality,weekly_seasonality和daily_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已重命名为PAA。PAA现在是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已重命名为SAX。SAX现在是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] [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的第一阶段集成 -TemporianTransformer转换器 (#5980) @ianspektor, @achoum, @javiber与
tsbootstrap的第一阶段集成 -TSBootstrapAdapter转换器 (#5887) @benHeid, @astrogilda, @fkiralypyts中的 Shapelet 变换现在作为sktime转换器可用 (#6082) @Abhay-Lejith预测调优器现在可以通过
return_n_best_forecasters=-1返回所有参数的性能 (#6031) @HassnHamada时间序列拆分器现在是一等公民对象,带有套件测试和
check_estimator支持 (#6051) @fkiraly
依赖项更改#
temporian现在是sktime的软依赖 (transformations)holidays(transformations 软依赖) 边界已更新为>=0.29,<0.46dtw-python边界已更新为>=1.3,<1.5
核心接口更改#
时间序列拆分器现在是完全的一等公民。现在可以使用
check_estimator检查接口一致性。
弃用和移除#
预测#
cINNForecaster 将在 sktime 0.29.0 版本中重命名为 CINNForecaster。该估计器在其当前位置以未来名称可用,并将在其弃用名称下可用直到 0.30.0 版本。为准备名称更改,请将所有导入 cINNForecaster 替换为导入 CINNForecaster。
增强#
基准测试、指标、拆分器#
数据加载器#
[ENH] 单文件类型数据加载器中文件扩展名的自动推断 (#6045) @SaiRevanth25
数据类型、检查、转换#
距离、核#
预测#
[ENH] 预测调优器,
return_n_best_forecasters=-1返回所有预测器的性能 (#6031) @HassnHamada[ENH] 基于
neuralforecast的 LSTM 模型 by @pranavvp16 (#6047)[ENH] 修复
ForecastingHorizon.freq在pandas 2.2.X的处理问题 by @fkiraly (#6057)
神经网络模板#
[ENH] 为
RNNNetwork添加了测试参数 (#6155) @julian-fong
时间序列分类#
时间序列聚类#
[ENH] 为
TimeSeriesKMeansTslearn添加新的测试参数集 (#6195) @shankariraja
时间序列回归#
[ENH] 从
sktime-dl迁移 DL 回归器:CNTC, InceptionTime, MACNN (#6038) @nilesh05apr[ENH]
MultiplexRegressor- 时间序列回归器的 autoML 多路复用器 (#6075) @ksharma6
变换#
[增强]
TemporianTransformer- 接口到temporian(#5980) @ianspektor, @achoum[增强] 重构并改进了
Catch22转换器 - 支持列名、短别名,重构为pd.Series,sktime原生并行化 (#6002) @julnow[增强] 与
pyts接口的 Shapelet 转换 (#6082) @Abhay-Lejith[增强] 由 @kcentric 添加了一个
test_mstl模块,检查transform是否返回期望的组件 (#6084)
测试框架#
文档#
[文档] 由 @yarnabrina 修复 changelog 中的拼写错误 (#6034)
[文档] 更正了开发者指南中提及的 Discord 频道 (#6163) @shankariraja
[文档] 在
FallbackForecaster中增加对 @rikstarmans 的致谢 (#6069) @fkiraly[文档] 在
BaseSeriesAnnotator中,记录int_label选项 (#6143) @Alex-JG3[文档] 修复
_registry.py中的拼写错误 (#6160) @pranavvp16[文档]
ExponentialSmoothing默认方法从L-BFGS-B更改为SLSQP(#6186) @manuel-munoz-aguirre[文档] 更正
BaseDeepClassifierdocstring 中的弃用版本 (#6197) @fkiraly[文档] 在 README 中添加名人堂组件(已添加名人堂部分)#3716 (#6203) @KaustubhUp025
[文档] 为
DummyClassifier添加了 docstring 示例 (#6146) @YashKhare20[文档] 修复时间序列回归“入门”示例代码块中的语法错误 (#6022) @sahusiddharth
[文档] 添加空行以正确渲染
FourierFeaturesdocstring,sp_list(#5984) @tiloye[文档] 为
CNNRegressor添加了 docstring 示例 (#6102) @meraldoantonio[文档] 更正了开发者指南中提及的 Discord 频道 (#6163) @shankariraja
[文档] 在
FallbackForecaster中增加对 @rikstarmans 的致谢 (#6069) @fkiraly[文档] 修复
_registry.py中的拼写错误 (#6160) @pranavvp16[文档]
ExponentialSmoothing- 修复默认方法从L-BFGS-B更改为SLSQP后的 docstring (#6186) @manuel-munoz-aguirre[文档] 更正
BaseDeepClassifierdocstring 中的弃用版本 (#6197) @fkiraly[文档] 在 README 中添加名人堂组件和部分 (#6203) @KaustubhUp025
维护#
[维护] [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][维护] 确保 Update Contributors 不在 main 分支上运行 (#6189) @Greyisheep, @duydl
[维护] 初始化更改周期 (0.28.0),用于将
cINNForecaster重命名为CINNForecaster(#6121) @geetu040[维护] 更新
forecastingextra 中的statsforecast版本 (#6064) @yarnabrina[维护] Docker 文件更新 (#6076) @deysanjeeb
[维护] 在“安装和测试”GHA 工作流中启用并发设置 (#6074) @MEMEO-PRO
修复#
距离,核函数#
[修复] 解决
numba边界矩阵例程中冗余或存在问题的语句 (#6183) @albertoazzari
估计器注册表#
预测#
[修复] 修复了当
SARIMAX在预测(predict)时传递X但训练(fit)时未传递而导致的失败 (#6005) @Abhay-Lejith[修复] 修复如果实现了
predict_proba,则BaseForecaster.predict_var的默认行为 (#6067) @fkiraly[修复] 在
ForecastingHorizon中,当索引值少于 3 个时,忽略pd.infer_freq的ValueError(#6097) @tpvasconcelos
时间序列分类#
时间序列回归#
转换#
[修复] 修复
Summarizer中意外的 NaN 值 (#6081) @ShreeshaM07[修复] 更新
_shapelet_transform_numba.py以提高数值稳定性 (#6141) @stevcabello
测试框架#
网页#
贡献者#
@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_jobs和pre_dispatch通过backend_params传递。
转换#
在
SplitterSummarizer中,remember_data参数已被移除。用户应改为使用fit_on和transform_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已重命名为PAA。PAA现在是sktime中主要的 PAA 实现,而之前的PAA将继续以PAAlegacy的名称可用。这两个估计器也将继续以它们的原名可用,直到 0.28.0 版本。为准备名称变更,请执行以下操作之一:1. 将使用来自sktime.transformations.panel.dictionary_based的PAA替换为使用来自sktime.transformations.series.paa的PAA2,并相应地切换参数名称;或 2. 将使用来自sktime.transformations.panel.dictionary_based的PAA替换为使用来自sktime.transformations.panel.dictionary_based的PAAlegacy,无需更改参数值。panel.dictionary_based.SAX在 0.27.0 版本中已重命名为SAXlegacy,而sktime.transformations.series.SAX2已重命名为SAX。SAX现在是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,无需更改参数值。
内容#
文档#
维护#
[维护] [Dependabot](deps-dev):更新
numba需求从<0.59到<0.60(#5877) @dependabot[bot]
版本 0.26.1 - 2024-02-26#
亮点#
neuralforecast适配器和 rnn 预测器 (#5962) @yarnabrinaFallbackForecaster现在支持概率预测器和 NaN 处理策略的设置 (#5847, #5924) @ninedigitsstatsforecastAutoTBATS接口 (#5908) @yarnabrina来自
sktime-dl的深度学习回归器已迁移:FCN, LSTMFCN, MLP (#6001) @nilesh05apr
依赖项变更#
dask(数据容器和并行化后端) 的上限已更新至<2024.2.2holidays(转换软依赖) 的上限已更新至>=0.29,<0.44pyts现在是分类和转换的软依赖项
核心接口变更#
转换#
所有转换 dunder 现在会自动将 sklearn 转换器强制转换为 sktime 转换器,在使用由 dunder 指定的 sktime 管道中的 sklearn 转换器时,不再需要包装在 TabularToSeriesAdaptor 中。
弃用和移除#
转换#
Catch22Wrapper 的 n_jobs 参数已被弃用,并将在 sktime 0.28.0 版本中移除。用户应改为通过 set_config 传递并行化后端参数。
增强#
基准测试,指标,分割器#
数据加载器#
[增强] 在数据加载器中添加编码参数 (#6000) @Cyril-Meyer
数据类型,检查,转换#
预测#
[增强] 暴露
ProphetPiecewiseLinearTrendForecaster的季节性参数 (#5834) @sbuse[增强]
FallbackForecaster- 支持概率预测器 (#5847) @ninedigits[增强] 与
statsmodels库中的ARIMA接口 (#5857) @arnaujc91[改进]
statsforecastAutoTBATS直接接口估计器 (#5908) @yarnabrina[改进] 直接
statsforecast接口估计器中的几项更新 (#5920) @yarnabrina[改进] 为
FallbackForecaster添加了 nan 策略处理器 (#5924) @ninedigits[改进]
ForecastX选项,用于在预测未来未知外生变量时使用未来已知变量作为外生变量 (#5926) @fkiraly[改进]
neuralforecast适配器和 RNN 预测器 (#5962) @yarnabrina[改进] 重构
ForecastingSkoptSearchCV以使用抽象并行化后端 (#5973) @fkiraly[改进] 在
ForecastingPipeline中,允许将NoneX传递给变换器 (#5977) @albahhar, @fkiraly
时间序列标注#
[改进]
GMMHMM的第二组测试参数 (#5931) @sanjayk0508
时间序列分类#
时间序列回归#
[改进] 从
sktime-dl迁移深度学习回归器:FCN、LSTMFCN、MLP (#6001) @nilesh05apr
变换#
测试框架#
修复#
预测#
流水线#
概率分布和模拟器#
时间序列分类#
变换#
[错误] 修复了 MSTL 变换器的 transform 方法 (#5996) @Abhay-Lejith
维护#
[维护] 通过根据版本使用不同的模拟方法修复 moto 破坏性更改 (#5858) @yarnabrina
[维护] 通过使用更新的
root_mean_absolute_error函数解决了 RMSE 的FutureWarning(#5884) @yarnabrina[维护] 当软依赖缺失时跳过
mlflow测试 (#5888) @achieveordie[维护] 更新了多个 actions 的版本 (#5929) @yarnabrina
[维护] 为 coverage 上传添加 codecov token (#5930) @yarnabrina
[维护] CI main 分支修复:添加 checkout 步骤以检测 CI 中的步骤 (#5945) @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]
文档#
[文档] 文档中的拼写错误,将 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已被弃用,并将在sktime0.27.0 中移除。用户应改为通过backend_params参数传递后端参数。
时间序列分类#
在
SimpleRNNClassifier中,参数num_epochs已被重命名为n_epochs。原参数名num_epochs已被移除。
时间序列回归#
在
SimpleRNNRegressor中,参数num_epochs已被重命名为n_epochs。原参数名num_epochs已被移除。
目录#
[维护] [Dependabot](deps-dev): 更新
scikit-learnrequirement 从<1.4.0,>=0.24到>=0.24,<1.5.0(#5776) @dependabot[bot][维护] [Dependabot](deps): Bump styfle/cancel-workflow-action from
0.12.0到0.12.1(#5839) @dependabot[bot][维护] [Dependabot](deps): Bump dorny/paths-filter from
2到3(#5838) @dependabot[bot][错误] 修复
IgnoreX中的标签处理问题 (#5843) @tpvasconcelos, @fkiraly
版本 0.25.1 - 2024-01-24#
亮点#
在
make_reduction中,直接 reduction 预测器现在支持来自skpro的概率表格回归器 (#5536) @fkiraly新的、高效、可并行化的 PAA 和 SAX 变换器实现,可用作
PAA2,SAX2(#5742) @steenrotsmanFallbackForecaster,用于异常处理的多个预测器回退链 (#5779) @ninedigits时间序列分类:
sktime原生网格搜索,用于 autoML 的多路复用器 (#4596, #5678) @achieveordie, @fkiraly从
sktime-dl迁移的分类器:CNTC 分类器 (#3978) @aurumnpegasus算法的作者和维护者现在通过标签
"authors"和"maintainers"进行跟踪,参见下文
依赖项更改#
arch(预测和参数估计软依赖) 的界限已更新为>=5.6,<6.4.0(#5771) @dependabot[bot]mne(变换软依赖) 的界限已更新为>=1.5,<1.7(#5585) @dependabot[bot]dask(数据容器和并行化后端) 的界限已更新为<2024.1.1(#5748) @dependabot[bot]
核心接口更改#
BaseObject 和基础框架#
估计器和对象现在在新的标签
"authors"和"maintainers"中记录作者和维护者信息。这仅对sktime本身和兼容的第三方包中的估计器是必需的。它也用于生成sktime网页查找功能中使用的迷你包头。sktime包中的作者和维护者信息不再记录在CODEOWNERS中,而是在新的标签"authors"和"maintainers"中记录。作者和维护者无需对此更改采取行动,因为这已由sktime维护者完成。然而,鼓励作者和维护者检查标签中的信息,并标记任何意外的遗漏或错误。
基准测试、指标、分割器#
预测点预测指标现在也支持通过
set_config进行并行化,以在分层或多元数据上进行广播
预测#
通过将配置
"remember_data"通过set_config设置为False,现在可以阻止预测器将所有已见数据存储为self._y和self._X。这对于预测器的序列化很有用。目前,此设置仅支持不会触发实例或变量广播的数据和预测器组合,但未来此功能将扩展到所有情况。
参数估计和假设检验#
现在可以使用
*dunder 快速构建基于参数插件或估计的参数调优估计器,它将构建一个PluginParamsForecaster或PluginParamsTransformer,将左侧元素的所有拟合参数 (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.PAA在sktime0.27.0 版本中将被重命名为PAAlegacy,而sktime.transformations.series.PAA2将被重命名为PAA。PAA2将成为sktime中主要的 PAA 实现,而当前的PAA将继续以PAAlegacy的名称可用。这两个评估器目前在其当前位置也可通过未来的名称访问,并将以其已弃用的名称可用直到 0.28.0 版本。为了准备名称变更,请执行以下任一操作:1. 将sktime.transformations.panel.dictionary_based中的PAA用法替换为sktime.transformations.series.paa中的PAA2用法,并相应调整参数名称;或 2. 将sktime.transformations.panel.dictionary_based中的PAA用法替换为sktime.transformations.panel.dictionary_based中的PAAlegacy用法,无需更改参数值。panel.dictionary_based.SAX在sktime0.27.0 版本中将被重命名为SAXlegacy,而sktime.transformations.series.SAX2将被重命名为SAX。SAX2将成为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] 在
make_reduction中支持概率回归器 (skpro),直接缩减 (#5536) @fkiraly[ENH]
BaseForecaster获取列的私有工具,适用于所有类似predict的函数 (#5590) @fkiraly[ENH] 为
TBATS添加第二个测试参数 (#5689) @NguyenChienFelix33[ENH] 在预测器中关闭数据内存的配置 (#5676) @fkiraly, @corradomio
[ENH] 暴露
statsmodels中SARIMAX的fit方法支持的参数 (#5787) @yarnabrina[ENH]
FallbackForecaster,在多个预测器链失败时回退 (#5779) @ninedigits
参数估计和假设检验#
[ENH] 简化
BaseEstimator._get_fitted_params()和BaseParamFitter对该方法的继承 (#5633) @tpvasconcelos
概率分布和模拟器#
时间序列分类#
转换#
测试框架#
修复#
BaseObject 和基础框架#
基准测试、指标、分割器#
数据加载器#
[BUG] 修复
sktime.datasets.load_UCR_UEA_dataset中的extract_path参数 (#5744) @steenrotsman
数据类型、检查、转换#
预测#
流水线#
时间序列分类#
时间序列回归#
转换#
[BUG] 跳过
ExponentialSmoothing中零星的测试错误 (#5516) @achieveordie[BUG] 修复
TSFreshClassifier.predict中内部特征列的零星排列错误 (#5673) @fkiraly[BUG] 确保
MultiRocketMultivariate使用random_state(#5710) @chrico-bu-uab
测试框架#
[BUG] 修复 Dockerized 测试 (#5426) @kurayami07734
维护#
[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] 修复预测调整器中
n_jobs、pre_dispatch的错误弃用逻辑,将弃用版本提升到 0.27.0 (#5784) @fkiraly[MNT] 更新 binder dockerfile 中的 python 版本到 3.11 (#5762) @fkiraly
[MNT] 处理
pandas的各种弃用问题 (#5733) @fkiraly, @yarnabrina[MNT] 代码质量更新 (#5786) @yarnabrina
[MNT] 更改
SAX2和PAA2重命名为SAX、PAA作为主要实现的周期 (#5799) @fkiraly[MNT] 处理
EnsembleForecaster中pd.DataFrame.groupby(axis=1)的弃用问题 (#5707) @ninedigits[MNT] 为
MultiRocket和MultiRocketMultivariate添加缺少的__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] 改进了
TrendForecaster和PolynomialTrendForecaster的文档字符串 (#5747) @fkiraly[DOC] 改进了
TimeSeriesForestClassifier的文档字符串 (#5741) @fkiraly[DOC]
Imputer:文档字符串清晰度改进,条件参数处理逻辑 (#3916) @aiwalter, @fkiraly`[DOC] 改进预测调整器文档字符串中描述
strategy="refit"的清晰度 (#5711) @fkiraly[DOC] 将
ReducerTransform和DirectReductionForecaster添加到 API 参考中 (#5690) @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.ndarray或pd.DataFrame,其中每列对应一个输出。predict方法将返回相同类型的预测输出。为了保持向后兼容性,对于单变量输出,predict将始终返回一维np.ndarray,目前这不受废弃的影响。真正的多输出分类器和回归器通过新的标签
capability:multioutput设置为True来标识。所有其他分类器和回归器会按y的列进行广播,可以通过设置backend:parallel和backend:parallel:params配置标志来选择并行化后端,详情请参阅set_config的 docstring。一旦sktime更新,广播会通过基类继承自动扩展到所有现有的第三方分类器和回归器,估计器类本身无需更新。分类器和回归器现在有一个标签
y_inner_mtype,这允许扩展者指定内部mtype,其 scitype 为Table。该标签中指定的 mtype 是在私有_fit方法中看到的y的保证 mtype。默认值与先前隐式的numpy1Dmtype 相同。因此,第三方分类器和回归器无需更新,并且应完全向上兼容。
转换器#
基类框架现在支持将
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参数选择dask或dask_lazy。在预测
evaluate中,kwargs已废弃,移除时间推迟到 0.26.0。用户应通过backend_params参数传递后端参数。
内容#
贡献者#
版本 0.24.2 - 2023-12-24#
重点#
依赖项变更#
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_config将backend:parallel配置标志设置为"joblib",并将通过backend:parallel:params设置的dict中的backend参数设置为自定义joblib后端的名称。其他后端参数可以在同一个dict中传递。详情请参阅set_config的 docstring。
时间序列分类#
在
SimpleRNNClassifier中,num_epochs参数已废弃并重命名为n_epochs。num_epochs可以在sktime0.25.last 之前使用,但在sktime0.26.0 中将被移除。如果使用num_epochs,将发出废弃警告。
时间序列回归#
在
SimpleRNNRegressor中,num_epochs参数已废弃并重命名为n_epochs。num_epochs可以在sktime0.25.last 之前使用,但在sktime0.26.0 中将被移除。如果使用num_epochs,将发出废弃警告。
转换器#
现在支持用于分层和多元转换器广播的自定义
joblib后端。要使用自定义joblib后端,请使用set_config将backend:parallel配置标志设置为"joblib",并将通过backend:parallel:params设置的dict中的backend参数设置为自定义joblib后端的名称。其他后端参数可以在同一个dict中传递。详情请参阅set_config的 docstring。
增强#
BaseObject 和基础框架#
基准测试、指标、拆分器#
数据类型、检查、转换#
预测#
[增强] 预测器
fit_predict带有用于predict的X_pred参数 (#5562) @fkiraly[增强] 重构
DirectReductionForecaster以使用sklearn输入强制转换工具 (#5581) @fkiraly[增强] 为
Prophet添加fit_kwargs(#5597) @tpvasconcelos[增强]
Croston测试参数 - 整数平滑参数 (#5608) @NguyenChienFelix33
参数估计和假设检验#
[增强] 添加新的
FunctionParamFitter参数估计器 (#5630) @tpvasconcelos
时间序列标注#
时间序列分类#
[增强] 在上游 bug 修复后,在
nsfa>0情况下重新启用和修复MrSQM的持久性测试 (#5171) @fkiraly[增强] 在
SimpleRNNClassifier和SimpleRNNRegressor中将num_epochs重命名为n_epochs(#5607) @aeyazadil
时间序列聚类#
转换器#
可视化#
测试框架#
修复#
BaseObject 和基础框架#
数据类型、检查、转换#
[BUG] 修复 mtype 标签
np.ndarray中的拼写错误,由错误的nd.array导致 (#5645) @yarnabrina
预测#
[BUG] 在
ARCH中,修复pd.Series名称的str强制转换 (#5407) @Vasudeva-bit[BUG] 将正确的级别参数从
StatsForecastBackAdapter传递给statsforecast(#5587) @sd2k[BUG] 修复当数据只有一个层次级别且预测器按节点指定时,
HierarchyEnsembleForecaster返回意外预测的问题 (#5615) @VyomkeshVyas[BUG] 修复
ForecastingHorizon.to_absolute中时区属性丢失的问题 (#5628) @fkiraly[BUG] 在
_StatsModelsAdapter预测中,将索引匹配更改为整数 (#5642) @ciaran-g
转换器#
可视化#
维护#
[维护] CI 修改 (#5498) @yarnabrina
[维护] 重命名基类中的变量 (#5502) @yarnabrina
[维护] 更新 pre-commit hooks (#5646) @yarnabrina
[维护] [Dependabot](deps-dev): 更新
pytest-xdist要求从<3.4,>=3.3到>=3.3,<3.5(#5551) @dependabot[bot][维护] [Dependabot](deps-dev): 更新
dask要求从<2023.7.1到<2023.11.1(#5552) @dependabot[bot][维护] [Dependabot](deps-dev): 更新
dask要求从<2023.11.1到<2023.12.2(#5629) @dependabot[bot][维护] [Dependabot](deps-dev): 更新
holidays要求从<0.36,>=0.29到>=0.29,<0.37(#5538) @dependabot[bot][MNT] [Dependabot](deps-dev): 将
holidays要求的版本从<0.37,>=0.29更新到>=0.29,<0.38(#5565) @dependabot[bot][MNT] [Dependabot](deps-dev): 将
holidays要求的版本从<0.38,>=0.29更新到>=0.29,<0.40(#5637) @dependabot[bot][MNT] [Dependabot](deps-dev): 将
sphinx-gallery要求的版本从<0.15.0更新到<0.16.0(#5566) @dependabot[bot][MNT] [Dependabot](deps-dev): 将
pytest-xdist要求的版本从<3.5,>=3.3更新到>=3.3,<3.6(#5567) @dependabot[bot][MNT] [Dependabot](deps-dev): 将
pycatch22要求的版本从<0.4.4更新到<0.4.5(#5542) @dependabot[bot][MNT] [Dependabot](deps): 将 actions/download-artifact 从 3 提升到 4 (#5627) @dependabot[bot]
[MNT] [Dependabot](deps): 将 actions/setup-python 从 4 提升到 5 (#5605) @dependabot[bot]
[MNT] [Dependabot](deps): 将 actions/upload-artifact 从 3 提升到 4 (#5626) @dependabot[bot]
文档#
[DOC] 修正 “RocketClassifier” 中的 ReST 语法 (#5564) @rahulporuri
[DOC] 添加了配合 Joanna Lenczuk 博客文章的 notebook 用于测试 (#5604) @onyekaugochukwu, @joanlenczuk
[DOC] 删除 docstring 中定义不正确的额外参数 (#5617) @wayneadams
[DOC] 修正
AA_datatypes_and_datasets.ipynb中面板数据加载示例的拼写错误 (#5594) @fkiraly[DOC] 预测
evaluate工具 - 改进 docstring 中的算法描述 #5603 (#5603) @adamkells[DOC] 添加关于 rocket 转换器 fit/transform 实例链接行为的解释 (#5621) @fkiraly
[DOC] 调整
FunctionTransformer的 docstring (#5634) @tpvasconcelos[DOC] 修正
pytest.mark.skipif中的拼写错误 (#5640) @yarnabrina
贡献者#
@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-miniatiFourierFeatures中更多周期选项:pandas周期别名和来自 offset 列 (#5513) @Ram0nBSignatureTransformer的iisignature后端选项 (#5398) @sz85512678TimeSeriesForestClassifier特征重要性和优化的区间生成 (#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.1:set_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] 估计器序列化:用户可选择
serialization_format,支持cloudpickle(#5486) @achieveordie
基准测试、指标、分割器#
数据集和数据加载器#
[ENH] 添加用于时间序列回归的 tecator 数据集作为
sktime内置数据集 (#5428) @JonathanBechtel
预测#
[ENH]
LTSFLinearForecaster,LTSFLinearNetwork,BaseDeepNetworkPyTorch(#4891) @luca-miniati[ENH]
LTSFDLinearForecaster,LTSFNLinearForecaster(#5514) @luca-miniati
MLOps 与部署#
[ENH] 在
mlflow插件中,改进ModuleNotFoundError消息的信息量 (#5487) @achieveordie[ENH] 在
mlflow插件中添加对 DL 估计器持久化的支持 (#5526) @achieveordie
神经网络#
[ENH] 神经网络的
pytorch适配器 (#4891) @luca-miniati
参数估计和假设检验#
[ENH] 提供对
arch包中平稳性测试的接口 (#5439) @Vasudeva-bit
时间序列标注#
[ENH] 为变化点和分段绘图函数添加单元测试 (#5509) @adamkells
时间序列分类#
[ENH]
TimeSeriesForestClassifier特征重要性和优化的区间生成 (#5338) @YHallouard
转换#
[ENH] 添加双曲正弦变换及其逆变换 (ScaledAsinhTransformer) (#5389) @ali-parizad
[ENH]
SignatureTransformer的iisignature后端选项 (#5398) @sz85512678[ENH]
FourierFeatures中更多周期选项:pandas周期别名和来自 offset 列 (#5513) @Ram0nB
维护#
[MNT] 自动格式化 pyproject (#5425) @yarnabrina
[MNT] 由于补丁版本中存在重大变更,将
pycatch22限制在<0.4.4版本 (#5434) @fkiraly[MNT] 移除两个最近添加的钩子 (#5453) @yarnabrina
[MNT] 新的 CI 工作流程以测试 extras (#5375) @yarnabrina
[MNT] 根据具有特定软依赖项的组件拆分 CI 作业 (#5304) @yarnabrina
[MNT] 修正
base模块中的拼写错误 (#5313) @yarnabrina[MNT] 修正
forecasting模块中的拼写错误 (#5314) @yarnabrina[MNT] 添加缺失的 checkout 步骤 (#5471) @yarnabrina
[MNT] 添加代码质量检查,无需使用过时/弃用的 Github actions (#5427) @yarnabrina
[MNT] 回滚 PR #4681 (#5508) @yarnabrina
[MNT] 处理来自
ExpandingGreedySplitter的pandas构造函数弃用消息 (#5500) @fkiraly[MNT] 处理
pd.DataFrame.fillna中使用method参数的弃用问题 (#5497) @fkiraly[MNT] 数据集下载器测试工作流程 (#5437) @yarnabrina
[MNT] 回滚 PR #4681 (#5508) @yarnabrina
[MNT] [Dependabot](deps): 将 actions/setup-node 从 3 提升到 4 (#5483) @dependabot[bot]
[MNT] [Dependabot](deps-dev): 将 pytest-timeout 要求的版本从 <2.2,>=2.1 更新到 >=2.1,<2.3 (#5482) @dependabot[bot]
[MNT] [Dependabot](deps): 将 tj-actions/changed-files 从 39 提升到 40 (#5492) @dependabot[bot]
[MNT] [Dependabot](deps-dev): 将 holidays 要求的版本从 <0.35,>=0.29 更新到 >=0.29,<0.36 (#5443) @dependabot[bot]
文档#
[DOC] 修正更多拼写错误 (#5478) @szepeviktor
[DOC] 更新
STLTransformer的 docstring,修正关于逆变换和管道的陈述 (#5455) @fkiraly
修复#
BaseObject 和基础框架#
基准测试、指标、分割器#
预测#
参数估计和假设检验#
时间序列标注#
时间序列分类#
转换#
可视化#
贡献者#
@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。
目录#
[维护] 更新
numba要求从<0.58,>=0.53到>=0.53,<0.59(#5299, #5319) @dependabot[bot], @fkiraly[维护] [Dependabot](deps-dev): 更新
skpro要求从<2.1.0,>=2.0.0到>=2.0.0,<2.2.0(#5396) @dependabot[bot][维护] [Dependabot](deps-dev): 更新
holidays要求从<0.34,>=0.29到>=0.29,<0.35(#5342) @dependabot[bot][维护] 从
pykalman迁移到pykalman-bardo(#5277) @mbalatsko
贡献者#
版本 0.23.1 - 2023-10-12#
亮点#
所有分层/多元预测器和转换器广播现在都可以通过
set_config使用并行化后端joblib和dask(#5267, #5268, #5301, #5311, #5405) @fkiralyPeakTimeFeatures转换器,用于生成一个或多个高峰时、日等指标特征 (#5191) @ali-parizadARCH 预测器,接口连接
arch包 (#5326) @Vasudeva-bit预测合成器
ForecastX现在允许在预测的X上拟合forecaster_y(#5334) @benHeid分割器已迁移到其自己的模块
sktime.split(#5017) @BensHamza
依赖项变更#
attrs不再是sktime的软依赖项(时间序列标注)arch现在是sktime的软依赖项(预测)skpro现在是sktime的软依赖项(预测)
核心接口变更#
BaseObject 和基础框架#
sktime框架现在主要通过标签object_type检查估计器类型。这不是一个破坏性变更,因为继承相应的基类也会通过标签继承系统自动设置标签。类型检查工具scitype也不受影响。对于扩展者来说,这项变更使得多态和动态类型估计器成为可能。sktime的警告现在可以通过配置warnings(通过set_config设置,参见文档字符串)按估计器进行屏蔽。
预测#
分层和多元预测现在可以使用并行化和分布式后端,包括
joblib和dask,如果预测是通过广播获得的。要启用并行化,在拟合预测器之前,通过set_config(参见文档字符串)设置配置标志backend:parallel和/或backend:parallel:params。这项变更通过继承更新的基础框架,立即扩展到所有符合接口的现有第三方预测器。
时间序列回归#
时间序列回归器现在允许将单列
pd.DataFrame作为y。当前行为不受影响,这对现有代码来说不是一个破坏性变更。
转换#
分层和多元转换器现在可以使用并行化和分布式后端,包括
joblib和dask,如果转换是通过广播获得的。要启用并行化,在拟合转换器之前,通过set_config(参见文档字符串)设置配置标志backend:parallel和/或backend:parallel:params。这项变更通过继承更新的基础框架,立即扩展到所有符合接口的现有第三方转换器。
废弃和移除#
基准测试、指标、分割器#
时间序列分割器,即
BaseSplitter的后代,已从sktime.forecasting.model_selection迁移到sktime.split。旧位置model_selection已被废弃,并将在 0.25.0 版本中移除。在 0.25.0 版本之前,它仍然可用,但会引发一个信息性警告消息。
增强#
BaseObject 和基础框架#
基准测试、指标、分割器#
[增强] 将分割器整合为自己的模块,包含系统性测试和扩展 (#5017, #5331) @BensHamza, @fkiraly
[增强] 允许
evaluate接受多种指标的任意组合,并使用正确的预测方法 (#5192) @hazrulakmal
数据加载器#
[增强] 数据集加载器模块重构 (#5239) @hazrulakmal
预测#
[增强] 添加基于
scipyoptimize_curve的CurveFitForecaster(#5240) @benHeid[增强] 将
test_interval_wrappers.py链接到evaluate的变更,用于条件测试 (#5337) @fkiraly[增强] 在多元或分层情况下的估计器广播中添加
joblib和dask后端 - 第 1 部分,VectorizedDF.vectorize_est(#5267) @fkiraly[增强] 在多元或分层情况下的估计器广播中添加
joblib和dask后端 - 第 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
时间序列对齐#
时间序列距离和核#
时间序列回归#
[增强] 在
BaseRegressor中,允许y是 1D 的pd.DataFrame(#5282) @mdsaad2305
转换#
[增强]
PeakTimeFeatures转换器,用于生成一个或多个高峰/小时-日-周等的指标特征,工作时间等 (#5191) @ali-parizad[增强]
VmdTransformer,添加分解-预测-重组作为 docstring 示例和测试 (#5250) @fkiraly [增强] 改进evaluate失败错误消息 (#5269) @fkiraly[增强] 为
STLTransformer添加正确的inverse_transform方法 (#5300) @fkiraly[增强] 在多元或分层情况下的估计器广播中添加
joblib和dask后端 - 第 1 部分,VectorizedDF.vectorize_est(#5267) @fkiraly[增强] 在多元或分层情况下的估计器广播中添加
joblib和dask后端 - 第 2 部分,基类配置 (#5301) @fkiraly[增强] 重构
DateTimeFeatures测试以使用pytestfixture (#5397) @adamkells
测试框架#
维护#
[维护] 恢复 numba 要求更新从 <0.58,>=0.53 到 >=0.53,<0.59 (#5297) @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]
文档#
[文档] 提高
partition_based_clustering笔记本的运行速度 (#5278) @alexfilothodoros[文档] 记录了
plot_series中的ax参数和图形 (#5325) @ShreeshaM07[文档] 改进笔记本 2 - 分类、回归和聚类 的可读性 (#5312) @achieveordie
[文档] 为 DateTimeFeatures 类添加了文档字符串中的所有特征名称 (#5283) @Abhay-Lejith
[文档] 修复分类笔记本中的拼写错误 (#5390) @pirnerjonas
[文档] 记录
plot_series中的ax参数和图形 (#5325) @ShreeshaM07
修复#
基准测试、指标、分割器#
预测#
[错误修复] 修复
STLForecaster的标签ignores-exogeneous-X在组合器中设置不正确的问题 (#5365) @yarnabrina[错误修复]
statsforecast 1.6.0兼容性 - 在statsforecast适配器中,修复RuntimeError: dictionary changed size during iteration(#5317) @arnaujc91[错误修复]
statsforecast 1.6.0兼容性 - 修复sktime和statsforecast之间的参数差异 (#5393) @luca-miniati[错误修复] 修复
ARCH._check_predict_proba(#5384) @Vasudeva-bit
时间序列对齐#
时间序列距离和核#
[错误修复] 修复调用
tslearnlcss时的numba错误 (#5368) @benHeid, @BensHamza, @fkiraly
转换#
可视化#
[错误修复] 修复
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_quantiles 和 predict_intervals 的返回现在在单变量情况和多变量情况之间保持一致:最上层(0-indexed)列的名称始终是变量名。
以前,在单变量情况下,它总是 Coverage 或 Quantiles。
自 0.21.0 以来,此前经历了一个变更过渡期。有关更多详细信息,请参阅 0.21.0 和 0.22.0 变更日志。
尚未完成其下游操作的用户和扩展者应继续使用 0.22.X,直到他们完成操作,然后升级到 0.23.0 或更高版本。
版本 0.22.1 - 2023-09-17#
亮点#
新的转换器:
VmdTransformer(变分模态分解)-vmdpy现在在sktime中维护 (#5129) @DaneLyttinen, @vrcarva新的转换器:对接
statsmodelsMSTL (#5125) @luca-miniati新的
sktime原生概率分布:Cauchy, empirical, Laplace, Student t (#5050, #5094, #5161) @Alex-JG3, @fkiraly
依赖项变更#
sktime现在支持pandas2.1.Xsktime现在支持holidays0.32 (软依赖项)sktime现在支持statsforecast1.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 和基础框架#
基准测试、度量、分割器#
[增强] 允许
BaseBenchmarking的 ID 字符串不受限制 (#5130) @hazrulakmal
数据集和数据加载器#
预测#
管道#
概率分布和模拟器#
时间序列分类#
时间序列距离和核#
转换#
[增强] 对接 statsmodels MSTL - 转换器 (#5125) @luca-miniati
[增强] 基于
vmdpy的 VMD(变分模态分解)转换器 (#5129) @DaneLyttinen
测试框架#
维护#
[维护] 将 CI 运行器升级到最新的稳定镜像 (#5031) @yarnabrina
[维护] 将
test_reduce_global中的 fixture 移动到pytestfixture (#5157) @fkiraly[维护] 将
test_dropna中的 fixture 移动到pytestfixture (#5153) @fkiraly[维护] 每个组件的额外依赖项规范 (#5136) @yarnabrina
[维护] 将
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]
文档#
[文档] 修复
make_pipeline,make_reduction,window_summarizer&load_forecasting数据 docstring (#5065) @hazrulakmal[文档] 修复
_DelegatedForecaster模块中 docstring 的微小拼写错误 (#5168) @fkiraly[文档] 加速教程 notebook - 深度学习分类器 (#5169) @alexfilothodoros
[文档] 修复
ColumnEnsembleForecasterdocstring 中的渲染问题,添加ColumnEnsembleTransformer示例 (#5201) @benHeid[文档] 修复
installation.rst中的拼写错误 (#5213) @Akash190104[文档] 为
temporal_train_test_splitdocstring 添加示例 (#5216) @JonathanBechtel[文档] 简单的编辑以使
STLForecasterdocstring 正确渲染 (#5220) @hazrulakmal
修复#
基准测试、度量、分割器#
[错误修复] 在 splitters 中,如果未给定,则正确推断 datetime 数据类型的序列频率 (#5009) @hazrulakmal
[错误修复] 修复适用于分层数据的
BaseWindowSplitterget_n_split方法 (#5012) @hazrulakmal
预测#
[错误修复] 修复在
_predict中导致ConformalIntervals异常的检查 (#5134) @fkiraly[错误修复] 确保预测调优器不对列(变量)进行向量化操作 (#5145) @fkiraly, @SmirnGregHM
[错误修复] 修复标签以指示
NaiveForecaster对外生特征的支持 (#5162) @yarnabrina[错误修复] 为复合预测器测试中的
y_dict添加缺失的return语句 (#5253) @BensHamza[错误修复] 修复
ForecastKnownValues在pd-multiindex上的失败 (#5256) @mattiasatqubes
管道#
时间序列标注#
转换#
可视化#
贡献者#
@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_quantiles 和 predict_intervals 在单变量情况下的返回将与多变量情况保持一致:最上层(0-indexed)列的名称将始终是变量名。以前,在单变量情况下,它总是 Coverage 或 Quantiles。
过渡期由这两个方法的 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 列表#
版本 0.21.1 - 2023-08-16#
亮点#
基于
holidays的节假日特征转换器(国家、金融节假日;1:1 接口)(#4893, #4909) @VyomkeshVyas, @yarnabrinaExpandingGreedySplitter用于从末尾切片测试集 (#4917) @davidgilbertsonstatsforecast接口:MSTL 预测器,ARCH 系列预测器 (#4865, #4938) @luca-miniati, @eyjo改进的开发者体验 - 测试加速 @julia-kraus, @tarpas, @benheid, @fkiraly, @yarnabrina
核心接口变更#
时间序列对齐#
时间序列对齐器现在接受所有
Panelmtypes 作为输入,而之前只接受df-list。这不是一个重大变更。时间序列对齐器现在有一个标签
"alignment_type",其值可以是"full"和"partial",用于区分get_alignment产生的完全对齐和部分对齐。该标签可以取决于对齐器的参数。
时间序列距离和核#
成对转换器现在有一个标签
"pwtrafo_type",其值可以是"kernel","distance"或"other",以便用户检查转换器是核转换器还是距离转换器。这不影响接口。该标签主要用于用户搜索和检索。这也允许对照估算器的方法要求进行检查,例如,支持向量机需要核。然而,如前所述,基础接口不强制执行此要求。
增强功能#
BaseObject 和基础框架#
基准测试、指标、拆分器#
[ENH] 私有
split_loc和标签,用于控制split_series调度到split或split_loc(#4903) @fkiraly[ENH]
BaseBenchmark的输入检查,允许add_estimator接受多个估算器 (#4877) @hazrulakmal
数据集和数据加载器#
预测#
[ENH] 改进
_ColumnEstimator- 重构以减少与BaseForecaster的耦合 (#4791) @fkiraly[ENH] 使用适当的
pytestfixtures 重写test_probabilistic_metrics(#4946) @julia-kraus[ENH] 添加扩展贪心拆分器 (#4917) @davidgilbertson
[ENH] 接口
statsforecastMSTL,statsforecast回调适配器 (#4865) @luca-miniati[ENH] 确保
StatsForecastBackAdapter对predict_interval返回格式变化的鲁棒性 (#4991) @fkiraly[ENH] 为
Croston和ExponentialSmoothing添加测试用例 (#4935) @Gigi1111[ENH] 允许
YfromX处理缺失数据 (#5062) @eenticott-shell
参数估算器#
概率分布和模拟器#
时间序列对齐#
时间序列分类#
时间序列聚类#
时间序列距离和核#
转换#
[ENH] 基于
holidays包的国家或市场假日指标转换器 (#4893) @yarnabrina[ENH]
HolidayFeatures转换器 (#4909) @VyomkeshVyas[ENH] 启用
TabularToSeriesAdaptor与特征选择器一起使用,并传递y(#4978) @fkiraly
测试框架#
维护#
[MNT] 限制
dask<2023.7.1以诊断并从main中移除 bug #4925 (#4928) @fkiraly[MNT] [Dependabot](deps-dev): 更新 sphinx-design 要求从 <0.5.0 到 <0.6.0 (#4969) @dependabot[bot]
[MNT] 将
TestedMockClass重命名为MockTestedClass(#5005) @fkiraly[MNT] 更新其他库的 sphinx intersphinx 链接 (#5016) @yarnabrina
文档#
[DOC] 安装文档中关于不同安装的说明澄清 (#4937) @julia-kraus
[DOC] 修正
BaseForecaster.score的 docstring,引用非对称 MAPE 的使用 (#4948) @MBristle[DOC] 移除安装说明中 troubleshooting ‘matches_not_found’ 的重复内容 (#4956) @julia-kraus
[ENH] 在文档构建中,为示例部分添加复制剪贴板按钮 (#5015) (#5015) @yarnabrina
[DOC] 改进调优预测器(例如
ForecastingGridSearchCV)docstrings 中scoring的描述 (#5022) @fkiraly[DOC] 改进 docstring 示例的格式 (#5078) @yarnabrina
修复#
BaseObject 和基础框架#
基准测试、指标、拆分器#
[BUG] 在
geometric_mean_absolute_error中使用正确的参数 (#4987) @yarnabrina
数据类型、检查、转换#
预测#
参数估算器#
时间序列对齐#
时间序列分类#
时间序列聚类#
[BUG] 在
BaseClusterer中为不兼容的scitype添加信息性错误消息 (#4958) @achieveordie
转换#
贡献者#
@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.Xdeprecated包作为sktime的核心依赖项已弃用,并将从 0.22.0 版本起不再作为依赖项。用户或开发者无需采取任何行动,因为该包仅用于内部弃用操作。在 python 3.7 EOL 后,
pycatch22已被重新添加为软依赖项
弃用和移除#
预测 - 单变量概率预测的列命名变更#
从 0.23.0 起,预测器的 predict_quantiles 和 predict_intervals 在单变量情况下的返回值将与多变量情况保持一致:最上层(索引为 0)列级的名称将始终是变量名。此前,在单变量情况下,无论 y 中存在的变量名是什么,它始终是 Coverage 或 Quantiles,而在多变量情况下,它始终是 y 中存在的变量名。
此变更将在两个次要周期内进行:0.21.X(早期阶段)和 0.22.X(晚期阶段),这两个周期共同构成变更期。我们将在下面分别解释用户和第三方预测器维护者(“扩展者”)的时间表。
用户应使用一个新的临时参数 legacy_interface 来处理此变更。
用户 - 变更期。预测器方法
predict_quantiles和predict_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_estimator和pytest测试检查的契约,可以通过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.0与test_make_scorer中基于partial的动态错误指标的交互问题 (#4915) @fkiraly[维护] 暂时标记
mlflow失败 #4904 直至调试完成,为py-spy添加 gitignore (#4913) @fkiraly[文档] 0.21.0 发布操作 - 更新弃用指南以反映
deprecated使用的弃用 (#4914) @fkiraly[维护] 0.21.0 发布操作 - 在 Python 3.7 EOL 后将
pycatch22添加回软依赖 (#4790) @fkiraly
版本 0.20.1 - 2023-07-14#
重点更新#
Monash 预测仓库的数据加载器 (#4826) @hazrulakmal
SkoptForecastingCV- 使用scikit-optimize对预测器进行超参数调优 (#4580) @hazrulakmal新的预测器 -
statsmodelsAutoReg接口 (#4774) @CTFallon, @mgazian000, @JonathanBechtel新的预测器 - 按预测范围划分的
FhPlexForecaster,用于每个预测范围使用不同的估计器/参数 (#4811) @fkiraly新的转换器 -
SplitterSummarizer,用于按折叠应用转换器 (#4759) @BensHamza新的分类器和回归器 - 从
sktime-dl迁移的 MCDCNN 估计器 (#4637) @achieveordie
核心接口变更#
BaseObject#
已添加对象蓝图(规范)到字符串的序列化/反序列化功能。“蓝图”在此处指处于初始化状态的对象组合,例如原始的预测管道。所有对象都可以通过
str强制转换进行序列化,例如str(my_pipeline),并通过sktime.registry.craft : str -> object进行反序列化。反序列化器craft在固定的 Python 环境下是序列化器str的伪逆,因此可用于完全可重现的规范存储和共享,例如在可重现科学或性能基准测试中。进一步的工具
registry.deps和registry.imports补充了序列化工具箱。在仅包含sktime核心依赖的环境中,工具deps : str -> list[str]可以生成创建序列化对象(例如预测管道)所需的 PEP 440 软依赖规范列表,可用于在创建之前设置 Python 环境安装。工具imports : str -> str可以生成创建序列化对象所需的所有 Python 可编译导入语句的代码块。已添加标签
python_dependencies_alias,用于管理包名与导入名不同的估计器特定依赖项。详细信息请参阅估计器开发者指南。
转换器#
转换器基础接口,即继承自
BaseTransformer的估计器,现在允许在transform方法中传入X=None而不引发异常。各个转换器现在可以实现自己的逻辑来处理X=None。
增强功能#
BaseObject#
[增强]
_HeterogenousMetaEstimator现在接受任意长度的元组列表 (#4793) @fkiraly[增强] 改进带别名依赖项的处理 (#4832) @hazrulakmal
[增强] 在估计器 dump 过程中添加显式上下文管理器 (#4859) @achieveordie, @yarnabrina
基准测试和指标#
数据加载器#
[增强] Monash 预测仓库的数据加载器 (#4826) @hazrulakmal
预测#
[增强] 重构
ForecastingHorizon,使其在私有方法中使用基于Index的cutoff(#4463) @fkiraly[增强]
SkoptForecastingCV- 使用scikit-optimize进行超参数调优 (#4580) @hazrulakmal[增强] 为
predict_interval、predict_quantiles添加更多契约测试 (#4763) @yarnabrina[增强]
statsmodelsAutoReg接口 (#4774) @CTFallon, @mgazian000, @JonathanBechtel[增强] 将
ForecastX缺失数据处理标签设置为True,以正确处理未来未知变量 (#4876) @fkiraly
时间序列分类#
[增强] 从
sktime-dl迁移 MCDCNN 分类器、回归器和网络 (#4637) @achieveordie[增强] 在
CNNNetwork中,添加控制padding和filter_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
可视化#
维护#
[维护] 暂时跳过所有 DL 估计器 (#4760) @achieveordie
[维护] 处理
sklearn1.3 中if_delegate_has_method的弃用问题 (#4764) @fkiraly[维护] 确保针对 python 3.8-3.10 的 CI 在
pandas 2上运行 (#4795) @fkiraly[维护] 在
main分支上跳过失败的test_transform_and_smooth_fp测试 (#4836) @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[维护] 扩展对带有版本规范和别名的包的软依赖错误消息测试支持 (#4867) @hazrulakmal, @fkiraly
文档#
[文档] 更新入门文档,添加回归教程 (#4216) @GargiChakraverty-yb
[文档] 在 read-the-docs 中为非最新分支添加横幅 (#4681) @yarnabrina
[文档] 为 K-Means 和 K-Medoids 的 docstrings 添加示例 (#4736) @CTFallon
[文档] 测试指南:为 doctest 命令添加省略号标志 (#4768) @mdsaad2305
[文档] 为时间序列森林回归器和 Dummy 回归器的 docstrings 添加示例 (#4775) @mgazian000
[文档] 更新 LICENSE 和 readthedocs 许可常量中的日期/年份 (#4816) @fkiraly, @yarnabrina
修复#
基准测试和指标#
预测#
[BUG] 添加
_BaseWindowForecaster的临时修复,以处理同时进行样本内和样本外预测的情况 (#4812) @felipeangelimvieira[BUG] 修复
make_reduction在global池化且面板时间索引不相等情况下的问题 (#4644) @kbpk[BUG] 允许
DynamicFactor在存在外生变量时进行概率预测 (#4758) @yarnabrina[BUG] 修复
predict_residuals内部数据类型转换问题 (#4772) @fkiraly, @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。
时间序列分类#
ComposableTimeSeriesClassifier 和 WeightedEnsembleClassifier 已完成迁移至 classification.ensemble,它们不再能从原位置导入。
拉取请求列表#
[维护] 0.20.0 发布操作 - 将
scikit-base版本上限提高至<0.6.0(#4735) @fkiraly[维护] 0.20.0 发布操作 - 移除 Python 模块中在 Python 3 中不必要的初始 utf 注释 (#4725) @yarnabrina
[维护] 0.20.0 发布操作 - 使用
pyupgrade将代码风格升级到 Python 3.8 及以上版本 (#4726) @yarnabrina
贡献者#
版本 0.19.2 - 2023-06-19#
亮点#
statsforecastAutoETS和AutoCES接口 (#4648, #4649) @yarnabrina更新所有 pre-commit hook 版本,以及代码库中的相应更改 (#4680) @yarnabrina
核心接口变更#
ForecastingHorizon和预测器的fit、predict方法现在支持将range作为输入。注意:range(n)从0开始到n-1结束。对于包含 horizon 中所有n个整数步长的n步提前预测,应传递range(1, n+1)。
改进#
预测#
[改进]
statsforecastAutoETS直接接口估计器 (#4648) @yarnabrina[改进]
statsforecastAutoCES直接接口估计器 (#4649) @yarnabrina[改进] 支持在
ForecastingHorizon以及fit和predict方法中将 horizon 作为range对象传递 (#4716) @yarnabrina
时间序列分类#
[改进] 将
ResNetRegressor从sktime-dl迁移过来 (#4638) @achieveordie
文档#
维护#
[维护] 解决
main分支上的 pre-commit 问题 (#4673) @yarnabrina[维护] 更新 pre-commit hook 版本及相应更改 (#4680) @yarnabrina
修复#
BaseObject#
[错误] 修复带有嵌套
sklearn对象的clone/set_params问题 (#4707) @fkiraly、@hazrulakmal
基准测试#
[错误] 修复
evaluate中no-update_params策略的错误 (#4686) @hazrulakmal
数据集和数据加载器#
数据类型、检查、转换#
预测#
贡献者#
@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#
因维护目的跳过,不应使用。(已从 pypi 移除)
版本 0.18.1 - 2023-05-22#
亮点#
sktime现在拥有一个通用的适配器类用于连接statsforecast(#4539, #4629) @yarnabrina使用此适配器添加了
statsforecastAutoTheta的直接接口,后续将添加更多 (#4539) @yarnabrina时间序列对齐模块已更新:添加了对齐器(aligners)的扩展模板 (#4613),基于
numba的对齐路径现已作为sktime的对齐器提供 (#4620) @fkiraly预测基准测试框架现在允许传递多个指标 (#4586) @hazrulakmal
新增时间序列分类器:bagging、MACNN、RNN (#4185, #4533, #4636) @ArushikaBansal、@fkiraly、@achieveordie
核心接口变更#
概率分布#
Monte Carlo 近似法的默认样本大小规范现在使用
scikit-base配置系统添加了
quantile方法,它以与BaseForecaster.predict_quantiles返回分位数预测相同的格式返回分位数表添加了
ppf方法用于返回分位数
改进#
基准测试#
[改进] 将预测基准测试框架扩展到支持多个指标,并增加测试覆盖率 (#4586) @hazrulakmal
预测#
[改进]
statsforecastAutoTheta直接接口估计器 (#4539) @yarnabrina[改进] 以通用方式重写了
_StatsForecastAdapter以支持除AutoARIMA之外的其他模型 (#4629) @yarnabrina
概率分布#
时间序列对齐#
时间序列分类#
[改进] SimpleRNN DL 时间序列回归器,从
sktime-dl迁移而来 (#4185) @ArushikaBansal[改进] 添加 MACNN 分类器和网络 (#4636) @achieveordie
时间序列距离和核函数#
转换#
测试框架#
维护#
[维护] 将
tensorflow-probability版本限制为<0.20.0(#4567) @fkiraly[维护] 根据 issue #4379 将
Union[int | float]更改为 float (#4575) @mdsaad2305[维护] 临时限制
holidays版本以避免在Prophet中出现错误,后已恢复 (#4594, #4600) @fkiraly、@yarnabrina[维护] 从 CI 中排除
FCNClassifier以防止在 bugfix 修复前出现内存溢出 (#4616) @fkiraly[维护] 从
check_is_scitype文档字符串中移除被遗忘的legacy_interface引用 (#4630) @fkiraly
文档#
[文档] 改进 MAPE 指标的文档字符串 (#4563) @hazrulakmal
[文档] 补充词汇表术语 (#4556) @sanjayk0508
[文档] 修正 make sphinx - language (
conf.py) 中的警告以及dists_kernels.rst中的错误导入 (#4593) @mdsaad2305[文档]
AutoETS文档字符串 - 澄清依赖于auto参数的条件忽略 (#4597) @luca-miniati[文档] 修正
dists_kernels.rst中的模块路径 (#4625) @mdsaad2305[文档]
SimpleRNNClassifier的文档字符串 (#4572) @wasup-yash[文档] 添加从常见表格csv格式加载数据的示例 (#4612) @TonyZhangkz
[文档] 移除遗忘的
legacy_interface引用来自check_is_scitype的文档字符串 (#4630) @fkiraly[文档] 向测试文档添加 doctest 指南 (#4634) @mdsaad2305
修复#
BaseObject, BaseEstimator#
预测#
[错误] 纠正了针对
_predict_interval的默认逻辑,以防_predict_quantiles未实现但_predict_proba已实现 (#4529) @fkiraly[错误]
RecursiveReductionForecaster的 pandas 2 修复 (#4568) @fkiraly[错误] 在
_StatsModelsAdapter中,如果在_predict_interval中参数不受支持,则避免将exog传递到statsmodels的get_prediction(#4589) @yarnabrina[错误] 修复在
BaseGridCV中n_best_forecasters_的错误排序,如果指标的lower_is_better为False(#4590) @hazrulakmal
概率分布#
时间序列距离和核#
时间序列分类#
[错误] 修复损坏的 RNN 分类器 (#4531) @achieveordie
[错误] 修复由于
ABC继承与 RNN 的fit重写之间的冲突导致的错误 (#4527) @achieveordie @fkiraly
时间序列回归#
[错误] 修复损坏的 RNN 回归器 (#4531) @achieveordie
[错误] 修复由于
ABC继承与 RNN 的fit重写之间的冲突导致的错误 (#4527) @achieveordie @fkiraly
转换#
贡献者#
@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是一个新的核心依赖
弃用和移除#
依赖项#
numba在sktime 0.18.0中已从核心依赖更改为软依赖。为确保依赖于基于numba的估计器的sktime代码设置在未来继续正常运行,请确保在环境中显式安装numba,或安装将继续包含numba的all_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.0sktime的目标是兼容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.17.2 - 2023-04-24#
亮点#
来自 pydata global 2022 的转换器和管道教程现已在
sktime中提供,请参阅 示例 (#4381) @dashapetrSARIMAX的概率预测功能 (#4439) @yarnabrina从
sktime-dl迁移的InceptionTime分类器 (#3003) @tobiasweede概率预测接口的多项错误修复 -
BaggingForecaster,BATS,TBATS,DynamicFactor,VECM
核心接口变化#
预测#
所有预测器 (
Baseforecaster的后代) 现在有了以下新标签capability:insample,布尔值,指示预测器是否可以进行样本内预测。capability:pred_int:insample,布尔值,指示预测器是否可以进行概率样本内预测,例如样本内预测区间。
所有预测器现在通过
check_estimator测试区间预测的接口一致性,包括样本内(基于上述标签)和样本外。
时间序列分类#
所有时间序列分类器 (
BaseClassifier的后代) 现在有一个标签capability:predict_proba。这指示分类器是否实现了非默认(非德尔塔质量)的概率分类功能。
增强#
数据类型、检查、转换#
预测#
[增强] 添加
_predict_interval到SARIMAX以支持predict_interval和predict_quantiles(#4439) @yarnabrina[增强] 将
ForecastingHorizon-BaseForecaster的cutoff接口转移为依赖于公共点 (#4456) @fkiraly[增强] 测试样本内预测 - 替换在
test_predict_time_index中的 try/except 为标签和依赖于标签的契约 (#4476) @fkiraly[增强] 移除
BaseForecaster的_predict_interval和_predict_quantiles中多余的实现检查 (#4481) @yarnabrina[增强] 测试所有预测器的
predict_quantiles,predict_interval样本内 (#4470) @fkiraly[增强] 在
_StatsModelsAdapter中添加_predict_interval并在其他估计器中继承以减少代码重复 (#4465) @yarnabrina[增强] 在
ForecastingHorizon中,重构to_absolute().to_pandas()调用到一个方法 (#4464) @fkiraly
时间序列分类#
[增强] 迁移
InceptionTime分类器和示例 (从sktime-dl) (#3003) @tobiasweede
时间序列回归#
转换#
测试框架#
维护#
文档#
[文档] 修复
MiniRocket示例代码中的错误 - 错误的转换器 (#4497) @doncarlos999[文档] 添加
InceptionTimeClassifier和LSTMFCNClassifier到 API 文档 (#4484) @fkiraly[文档] 将内容从 pydata global 2022 (转换器,管道教程) 移动到 sktime 主仓库 (#4381) @dashapetr
修复#
预测#
[错误] 修复在
BaggingForecaster的概率预测中pandas的写入错误 (#4478) @fkiraly[错误] 修复在 0.17.1 之后在
_PmdArimaAdapter和_StatsForecastAdapter中的predict_quantiles(#4469) @fkiraly[错误]
ForecastingHorizon构造函数 - 覆盖从常规DatetimeIndex基于的预测范围中错误推断出的freq属性 (#4466) @fkiraly, @yarnabrina[错误] 修复
pmdarima接口损坏,当X包含的索引多于预测范围时 (#3667) @fkiraly, @SzymonStolarski[错误] 修复
BATS和TBATS的_predict_interval接口 (#4492, #4505) @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.0sktime的目标是兼容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.agg和Series.agg上弃用的"mad"选项 (#4435) @fkiraly[MNT] 解决 reducer 中与
freq相关的弃用和pandas 2失败 (#4438) @fkiraly[MNT] 由于偶发性失败,将
Prophet从test_predict_quantiles中排除 (#4432) @fkiraly[MNT] 由于偶发性失败,将
VECM从test_predict_quantiles中排除 (#4442) @fkiraly[MNT] 修复并加强
statsmodels和pmdarima的软依赖隔离逻辑 (#4443) @fkiraly
版本 0.17.0 - 2023-04-03#
重点#
完全支持 python 3.11
重构概率预测和新指标 (
LogLoss,CRPS),并与调优集成 (#4190, #4276, #4290, #4367) @fkiraly新的转换器接口:Christiano-Fitzgerald 和 Hodrick-Prescott 滤波器 (
statsmodels),傅里叶变换 (#4342, #4402) @ken-maeda, @blazingbhavneek
依赖项变更#
新增了一个软依赖项,即
seasonal包,仅用于SeasonalityPeriodogram估计器。
核心接口变更#
BaseObject, BaseEstimator#
所有
sktime对象和估计器现在都具有配置接口,通过新的get_config和set_config方法实现。目前这是实验性的,并且目前没有对外公开的配置字段。
数据类型、检查、转换#
sktime现在能够识别可为空的pandasdtypes,并在必要时将其强制转换为不可为空。以前,可为空的dtype会导致异常。
预测#
引入了
BaseDistribution对象,作为完整分布预测和模拟查询的潜在返回。目前这是实验性的,欢迎反馈和贡献。预测器的
predict_proba现在返回一个sktimeBaseDistribution对象,如果tensorflow-probability不存在(例如,在 python 3.11 上),或者如果设置了临时弃用参数legacy_interface=False。旧的基于tensorflow的接口将在两个周期内弃用,详见下文。sktime现在包含概率分布预测的指标和损失。这些指标假定预测是BaseDistribution对象。
弃用和移除#
依赖项#
numba将从sktime 0.18.0开始从核心依赖项变更为软依赖项。为了确保将来依赖于基于numba的估计器的sktime代码设置能够正常工作,请确保在环境中显式安装numba,或安装将继续包含numba的all_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参数的默认值已更改为FalseFourierFeatures:keep_original_columns参数的默认值已更改为False
测试框架#
在
check_estimator和run_tests中,已移除return_exceptions参数。它现在完全被raise_exceptions(其逻辑非)取代,后者自 0.16.0 版本以来一直可用。
增强功能#
BaseObject, BaseEstimator#
数据类型、检查、转换#
预测#
参数估计器#
时间序列分类#
转换#
[ENH] 转换器接口
numpy.fft用于简单傅里叶变换 (#4214) @blazingbhavneek[ENH] 移除
test_FeatureUnion_pipeline中的输出值测试 (#4316) @fkiraly[ENH] Hodrick-Prescott 滤波器转换器 (
statsmodels接口) (#4342) @ken-maeda[ENH] Christiano-Fitzgerald 滤波器转换器 (
statsmodels接口) (#4402) @ken-maeda
测试框架#
[ENH] 清理了分位数和区间预测的概率预测测试 (#4393) @fkiraly, @yarnabrina
[ENH] 涵盖了
test_predict_intervalcoverage和test_predict_quantilesalpha的列表输入情况,在预测器合同测试中 (#4394) @yarnabrina
维护#
[MNT] 修复
distances模块中的 linting 问题B016 Cannot raise a literal(#4284) @SamiAlavi[MNT] 删除工作流分支上的限制,该工作流自动检测并更新
CONTRIBUTORS.md(#4323) @achieveordie[MNT] 执行
ContractableBOSStyped_dict参数被遗忘的弃用 (#4331) @fkiraly[MNT] 修复 transformations 模块中的 linting 问题 (#4291) @SamiAlavi
[MNT] 修复
base,networks,registry模块中的 linting 问题 (#4310) @SamiAlavi[MNT] 对
test_croston.py进行 linting (#4334) @ShivamPathak99[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
文档#
[DOC] 改进
VectorizedDF.items和.__iter__的文档字符串 (#4223) @fkiraly[DOC] 在
PlateauFinder模块中添加缺失的文档字符串 (#4255) @ShivamPathak99[DOC]
ColumnConcatenator的文档字符串改进 (#4272) @JonathanBechtel[DOC] 更新了
dtw_distance文档字符串示例以包含导入 (#4324) @JonathanBechtel[DOC]
TimeSeriesKMeans- 修正文档字符串中init_algorithm的默认值 (#4347) @marcosousapoza[DOC] 在 numba 距离文档字符串中添加缺失的导入语句 (#4376) @JonathanBechtel
[DOC] 改进文档中“邀请贡献”段落 (#4395) @abhisek7154
修复#
数据类型、检查、转换#
[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] 修复
VECM._predict_interval在传递多个覆盖值时出现的ValueError(#4411) @yarnabrina[BUG] 由于已知的偶发错误 #4420,暂时跳过
VAR的test_predict_quantiles(#4425) @yarnabrina
参数估计器#
时间序列分类#
时间序列回归#
测试框架#
实用工具#
贡献者#
@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,或安装将继续包含numba的all_extras软依赖项集。除此之外,依赖于numba的估计器将与以前一样工作。
依赖项#
基准测试#
数据类型、检查、转换#
预测#
转换器#
修复#
数据集和数据加载器#
[错误] 更正
'StarlightCurves'数据集标识符字符串为 ‘StarLightCurves’ (#4222) @NeuralNut
预测#
参数估计#
时间序列聚类#
维护#
文档#
[文档] 改进了
dtw_distance的文档字符串 (#4028) @fkiraly, @matthewmiddlehurst[文档] 修复转换器
transform文档字符串中的表格 - 将 md 更改为 rst (#4199) @romanlutz[文档] 移除分类笔记本中 pandas 和
DataFrame|Series之间的间隙 (#4200) (#4200) @romanlutz[文档] 修复了
CI概览文档中的表格 (#4198) @pranavvp16
贡献者#
@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`
依赖项变更#
statsmodels现在是一个软依赖项。如果 python 环境中存在statsmodels,则依赖于statsmodels的估计器可以像以前一样使用。
核心接口变更#
BaseEstimator#
BaseEstimator的所有后代(任何带有fit方法的估计器)的方法get_fitted_params添加了一个新的布尔参数deep,默认为True。与get_params中同名参数类似,这允许控制对于复合估计器,是返回带有估计器嵌套的拟合参数还是不带嵌套的拟合参数。
预测#
所有预测器:预测器的公共
cutoff属性已从索引元素更改为pd.Index子类型。要更新先前可用的代码,请将对cutoff的引用替换为cutoff[0]。
弃用和移除#
依赖项#
statsmodels在sktime 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]
PoissonHMM估计器 (#4126) @klam-data
时间序列分类#
[ENH] 减少
test_boss.py中重复代码并在 _boss.py 中添加字符串数据类型检查 (#4100) @erjieyong
时间序列生成器#
[ENH] 添加了
piecewise_multinomial(#4079) @JonathanBechtel
转换#
[ENH] 为
FourierFeatures转换器添加keep_original_columns选项 (#4008) @KishManani[ENH] 添加
BKFilter转换器 (#4127) @klam-data, @pyyim`
维护#
[MNT] 自动化更新 CONTRIBUTORS.md (#3807) @achieveordie
[MNT] 解决
pd.Series构造函数dtype弃用 /FutureWarning- 第二部分 (#4111) @fkiraly[MNT] 在
HierarchyEnsembleForecaster文档字符串中隔离statsmodels(#4166) @fkiraly[维护] 0.16.0 弃用操作 - 将
BaseForecaster.cutoff更改为pd.Index(#3678) @fkiraly[维护] 在
HierarchyEnsembleForecaster文档字符串中隔离statsmodels- 意外遗漏的提交 (#4168) @fkiraly[维护] 在
pre-commit配置中将isort升级到5.12.0(#4167) @snnbotchway
文档#
修复#
BaseObject#
预测#
时间序列分类#
[错误] 诊断并修复测试套件中由于
MemoryError导致的零星故障 (#4036) @achieveordie
转换器#
贡献者#
@aaronrmm, @achieveordie, @danbartl, @erjieyong, @fkiraly, @JonathanBechtel, @KishManani, @klam-data, @mateuja, @Pyyim, @romanlutz, @snnbotchway, @VyomkeshVyas
版本 0.15.1 - 2023年01月12日#
亮点#
核心接口变更#
BaseObject#
python_dependencies标签现在允许使用完整的 PEP 440 规范字符串来指定包依赖项
数据类型、检查、转换#
安装
dask时可使用的新 mtypes:dask_series、dask_panel、dask_hierarchical,适用于时间序列、面板和分层数据。这些现在可以在估计器中使用。与dask的端到端集成尚不可用,但已在路线图上。
距离、核#
成对转换器现在具有
transform_diag方法,该方法返回距离/核矩阵的对角线成对面板转换器可以使用算术运算相互组合,这将产生相应的转换器算术组合,例如,距离之和
成对面板转换器可以使用
*dunder 与简单转换器组合,这将产生一个流水线,首先应用简单转换器,然后应用成对转换器
时间序列聚类#
时间序列聚类器现在可以与
make_pipeline和*dunder 一起使用,以构建带有时间序列转换器的线性流水线
弃用和移除#
在
check_estimator和run_tests中,return_exceptions参数已被弃用,并将在 0.17.0 中被raise_exceptions(其逻辑非) 替换。在 0.17.0 之前,这两个参数都将起作用,非默认值将覆盖默认值。
改进#
数据类型、检查、转换#
距离、核#
预测#
[增强] 向
DirectTabularRegressionForecaster和DirectTimeSeriesRegressionForecaster添加全局预测(池化)选项 (#3688) @danbartl[增强]
hcrystalball预测器适配器 (#4040) @MichalChromcak
流水线#
时间序列分类#
时间序列聚类#
[增强] 时间序列的 DBSCAN 聚类 (#4003) @fkiraly, @josuedavalos
转换器#
[增强] 更改
DateTimeFeaturestrafo 以处理多索引数据并添加删除列的选项 (#3996) @KishManani[增强] 使
TimeSincetrafo 能够原生转换多索引数据框 (#4006) @KishManani[增强] 通过更改周期差计算使
TimeSincetrafo 更快 (#4018) @KishManani
测试框架#
[增强] 更新
_check_soft_dependencies以允许使用 PEP 440 规范字符串指定版本边界 (#3925) @fkiraly[增强] 允许在
_check_soft_dependencies中使用包标识符字符串的元组/列表 (#3955) @fkiraly[增强]
_check_estimator_deps也允许BaseObject的列表或元组 (#4002) @fkiraly[增强] 扩展
sklearn_scitype以从组合对象中正确推断 scitype (#4021) @fkiraly[增强] 在
check_estimator和run_tests中,使用raise_exceptions替换return_exceptions参数,并进行弃用 (#4030) @fkiraly
可视化#
[增强] 为
plot_series实现图标题 (#4038) @arnavrneo
维护#
[维护] 执行 0.15.0 意外遗漏的弃用操作:在
WEASEL和BOSS中,移除type_dict并更新默认的alphabet_size=2(#4025) @xxl4tomxu98[维护] 由于 main 分支上未修复的故障,跳过
LSTMFCNClassifier测试 (#4037) @fkiraly[维护] 修复
_check_soft_dependencies在没有类引用的 PEP 440 规范符下中断的问题 (#4044) @fkiraly[维护] 解决
pd.Series构造函数dtype弃用 /FutureWarning(#4031) @fkiraly[MNT] 处理
pandasastype弃用 /FutureWarning在TrendForecaster中 (#4032) @fkiraly[MNT] 在
WindowSummarizer内部显式使用min_periods参数来解决弃用消息 (#4052, #4074) @arnavrneo
文档#
[DOC] 完善
ForecastingPipeline的 docstring (#3840) @darshitsharma[DOC] 更新距离 API 参考页面 (#3852) @MatthewMiddlehurst, @fkiraly
[DOC] 修复 README 中的构建标签 (#4007) @badrmarani
[DOC] 关于在 macOS ARM 上安装
sktime的警告、注意事项和故障排除 (#4010) @dainelli98[DOC] 所有估计器页面上的
all_estimators参考 (#4027) @fkiraly, @MatthewMiddlehurst[DOC]
PULL_REQUEST_TEMPLATE中关于新测试的部分 (#4093) @Aarthy153
修复#
距离,核函数#
预测#
[BUG] 修复
StatsForecastAutoARIMA_.predict不正确的样本内起始索引 (#3942) @tianjiqx[BUG] 修复当外生变量
X传递的索引多于fh时statsmodels估计器的问题 (#3972) @adoherty21[BUG] 修复
ReconcilerForecaster未与Aggregator在管道中一起使用时的问题 (#3980) @ciaran-g[BUG] 修复
TrendForecaster在regressor无法强制转换为布尔值时的问题 (#4047) @fkiraly[BUG] 修复
PolynomialTrendForecaster._fit中regressor的变动问题 (#4057) @fkiraly[BUG] 修复当
sample_frac参数不为 None 时ConformalIntervals的更新问题 (#4083) @bethrice44
治理#
时间序列分类#
[BUG] 修复任何 DL 估计器的构造函数无法将非默认值传递给底层
Network对象的问题 (#4075) @achieveordie[BUG] 修复基于 BOSS 的分类器将类名截断为单字符长度的问题 (#4096) @erjieyong
时间序列聚类#
时间序列回归#
[BUG] 修复任何 DL 估计器的构造函数无法将非默认值传递给底层
Network对象的问题 (#4075) @achieveordie
转换#
[BUG] 修复
TimeSince对time_index和start之间不一致的检查问题 (#4015) @KishManani
测试框架#
可视化#
贡献者#
@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预测的MLflow自定义 flavor (#3912, #3915) @benjaminbluhm与核心依赖项最新版本的兼容性
sktime 1.2.0``and ``numpy 1.24(#3922) @fkiralyDateTimeFeatures转换中的周末 dummyis_weekend(#3844) @KishManani从
sktime-dl迁移到sktime的深度学习分类器:ResNet, LSTM-FCN (#3714, #3881) @nilesh05apr, @solen0id
依赖项变更#
sktime现在兼容numpy 1.24,上限放宽到<1.25sktime现在兼容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,或安装将继续包含statsmodels的all_extras软依赖项集。
数据类型、检查、转换#
datatypes.check_is_scitype: 第二个返回值(仅当 return_metadata=True 时返回)将从 list 格式更改为 dict 格式(详见 docstring)。list 格式自 0.14.0 版本起已弃用,并在 0.15.0 版本中被 dict 格式取代。格式由临时附加参数 msg_legacy_interface 决定,该参数的默认值现已更改为 False(dict 格式)。msg_legacy_interface 参数以及返回旧版 list 格式的选项将在 0.16.0 版本中移除。
预测#
ExpandingWindowSplitter的start_with_window参数已被移除。从现在开始,应使用initial_window=0代替start_with_window=False。行转换器
SeriesToSeriesRowTransformer和SeriesToPrimitivesRowTransformer已被移除。行/实例向量化功能自 0.11.0 版本起已由sktime原生支持,不再需要通过这些包装器添加。这两个转换器将在 0.15.0 版本中移除。要迁移,只需移除行转换器包装器即可。在一些更罕见、模糊的向量化情况(例如,使用已向量化的包装函数,如np.mean)中,可能必须使用FunctionTransformer代替SeriesToPrimitivesRowTransformer。公共
cutoff属性的变更延迟到 0.16.0:预测器的公共cutoff属性将从索引元素更改为pd.Index子类型。
时间序列分类#
延迟:
ProbabilityThresholdEarlyClassifier的基类将在 0.16.0 版本中更改为BaseEarlyClassifier。这将改变分类安全决策的制定和返回方式,请参阅BaseEarlyClassifier或TEASER了解新接口。
转换#
transformations.series.compose已被移除,转而使用transformations.compose。前者中的所有估计器已移至后者。TSFreshFeatureExtractor和TSFreshRelevantFeatureExtractor中default_fc_parameters的默认值已从"efficient"更改为"comprehensive"。
测试框架#
通用接口契约测试
test_methods_do_not_change_state已重命名为test_non_state_changing_method_contract
增强功能#
MLOps 与部署#
[ENH] 用于
sktime预测的 MLflow 自定义 flavor (#3912) @benjaminbluhm
BaseObject#
预测#
时间序列标注#
时间序列分类#
[ENH] 将 LSTM-FCN 分类器从
sktime-dl迁移到sktime(#3714) @solen0id[ENH] 将
ResNetClassifier从sktime-dl迁移到sktime(#3881) @nilesh05apr
时间序列回归#
[ENH] 用于时间序列回归的
DummyRegressor(#3968) @badrmarani
转换#
[ENH] 向
DateTimeFeatures转换添加is_weekend选项 (#3844) @KishManani[ENH] 向
Detrender添加乘法选项 (#3931) @KishManani
可视化#
[ENH] 在
plot_series中添加对绘制间隔的支持 (#3825) @chillerobscuro[ENH] 向
plot_series添加colors参数 (#3908) @chillerobscuro
修复#
预测#
时间序列分类#
时间序列回归#
转换#
可视化#
文档#
[DOC] 修复依赖项文档中的渲染问题 (#3846) @templierw
[DOC] 整理 Rocket docstrings (#3860) @TonyBagnall
[DOC] 在预测教程中添加管道中的后处理部分 (#3878) @nshahpazov
维护#
[MNT] 在
pyproject.toml中添加额外的项目 URL (#3864) @lmmentel[MNT]
sklearn 1.2.0兼容性 - 移除KNeighborsTimeSeriesClassifier和Regressor中私有的_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] 将
numpy版本上限提高到<1.25并修复兼容性问题 (#3915) @aquemy, @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
新的变换器:
Catch22Wrapper,pycatch22的直接接口 (#3431) @MatthewMiddlehurst新的变换器:
TimeSince,用于特征工程,表示自固定日期/索引以来的时间 (#3810) @KishManani
核心接口变更#
预测#
变量子集化外生数据的双下划线方法:
my_forecaster[variables]将创建一个ForecastingPipeline,将外生数据子集化为variables
增强功能#
BaseObject#
预测#
时间序列分类#
[增强]
Catch22Transformer更新和Catch22Wrapper用于pycatch22(#3431) @MatthewMiddlehurst[增强]
MinirocketMultivariateVariable变换器,用于不等长的时间序列的 miniROCKET (#3786) @michaelfeil[增强] 稍微加快
ComposableTimeSeriesForestClassifier的测试速度 (#3762) @TonyBagnall[增强] TDE 短序列的警告而不是错误 (#3767) @MatthewMiddlehurst
[增强] 添加一些
get_test_params值到深度学习分类器和回归器中 (#3761) @TonyBagnall
时间序列回归#
[增强] 添加一些
get_test_params值到深度学习分类器和回归器中 (#3761) @TonyBagnall
变换#
治理#
[治理] 添加 @achieveordie 为核心开发者 (#3851) @achieveordie
修复#
数据加载器#
预测#
[错误修复] 修复
ColumnEnsembleForecaster处理层次化X的问题 (#3768) @RikStarmans @fkiraly
时间序列分类#
[错误修复]
keras导入快速修复 (#3744) @ltsaprounis[错误修复] 在
TemporalDictionaryEnsemble中,设置Parallel的prefer="threads",修复 #3788 (#3808) @TonyBagnall[错误修复] 在
DummyClassifier中,修复不正确设置的capability:multivariate标签 (#3858) @fkiraly
变换#
[错误修复] 修复 FourierFeatures 在 pd.DatetimeIndex 下的行为 (#3606) @eenticott-shell
[错误修复] 修复
FeatureUnion的get_params中的无限循环 (#3708) @hoesler @fkiraly[错误修复]
SupervisedIntervals错误修复和清理 (#3727) @MatthewMiddlehurst[错误修复] 减小
MultiRocket测试示例的大小,以避免测试中偶尔出现的MemoryError(#3813) @TonyBagnall[错误修复] 在
Reconciler中,修复外部索引中只有一个唯一 ID 的小型层次结构的求和矩阵错误 (#3859) @ciaran-g
测试框架#
[错误修复] 更新
test_deep_estimator_full以包含新版本的tensorflow/keras(#3820) @achieveordie
文档#
[文档] 整理 Compose 和深度学习分类器的文档 (#3756) @TonyBagnall
[文档] 添加了新的 Slack 链接 (#3747) @hadifawaz1999
[文档] 更新文件格式规范页面,显示超链接格式列表 (#3775) @achieveordie
[文档] 示例网页 (#3653) @MatthewMiddlehurst
[文档] 更新
team.rst中的 CC 和 CoC 以及活跃核心开发者列表 (#3733) @GuzalBulatova[文档] 改进 ShapeletTransformClassifier 的 docstring (#3737) @MatthewMiddlehurst
[文档] 改进 sklearn 分类器的 docstring (#3754) @MatthewMiddlehurst
[文档] 将缺失的估计器添加到分类 API 页面 (#3742) @MatthewMiddlehurst
[文档] 更新回归 API 参考 (#3751) @TonyBagnall
[文档] 修复
RocketClassifierdocstring 中的文档拼写错误 (#3759) @matt-wisdom[文档] 在分类 notebook 中包含不等长数据的章节 (#3809) @MatthewMiddlehurst
[文档] 添加新的数据集加载器的工作流程文档 (#3805) @templierw
[文档] 在
ScaledLogitTransformerdocstring 中添加默认值 (#3845) @fkiraly[文档] 更新 CONTRIBUTORS.md (#3781) @achieveordie
[文档] 改进
TSFreshRelevantFeatureExtractor的 Docstring (#3785) @MatthewMiddlehurst
维护#
[维护] 将
setup.py转换为pyproject.toml。取决于setuptools>61.0.0(#3723) @jorenham @wolph[维护] 暂时跳过新的失败测试
test_deep_estimator_full[keras-adamax](#3817) @fkiraly[维护] 修复
pyproject.toml中的断开字符串 (#3797) @TonyBagnall[维护] 从测试中排除
TapNet(#3812) @TonyBagnall[维护] 解决
ContinuousIntervalTree和RandomShapeletTransform的弃用警告 (#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#
亮点#
通过
save方法和base.load实现所有sktime对象的序列化和反序列化 (#3336, #3425) @achieveordie @fkiraly文档化的
.ts文件格式规范 (#3380) @achieveordie新的预测器:模块化/可配置的 Theta 预测器 (#1300) @GuzalBulatova
预测
evaluate现在支持层次化和面板数据,并通过dask和joblib支持并行化 (#3511, #3542) @topher-lo @fkiraly
核心接口变更#
BaseObject & BaseEstimator#
所有对象和估计器 (
BaseObject的后代) 现在都具有save方法,用于序列化到内存或文件。序列化的对象可以通过base.load反序列化。save和load的接口契约现在由标准测试套件 (例如,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.delta的freq。在未传递且无法推断freq的边缘情况下将引发异常。公共
cutoff属性的更改延迟到 0.15.0:预测器的公共cutoff属性将从索引元素更改为pd.Index子类型。
时间序列分类#
ProbabilityThresholdEarlyClassifier的基类将在 0.15.0 中更改为BaseEarlyClassifier。这将改变分类安全决策的制定和返回方式,请参阅BaseEarlyClassifier或TEASER获取新接口信息。
变换#
TSFreshFeatureExtractor和TSFreshRelevantFeatureExtractor中default_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#
数据加载器#
[增强]
load_from_tsfile支持.ts文件中的@targetlabel标识符 (#3436) @achieveordie
数据类型、检查、转换#
预测#
[增强] 模块化/可配置的 Theta 预测器 (#1300) @GuzalBulatova
[增强] 扩展
make_reduction中的递归策略,允许对面板数据进行全局池化 (#3451) @danbartl[增强] 使用
{joblib, dask}实现evaluate的并行化 (#3511) @topher-lo[增强] 在
_StatsModelsAdapter._update中使用statsmodelsappend(#3527) @chillerobscuro[增强]
ColumnEnsembleForecaster支持numpy整数类型 (#3557) @fkiraly[增强] 扩展
ColumnEnsembleForecaster以允许应用多元预测器 (#3504) @fkiraly[增强] 修复
ExpandingWindowSplitter中initial_window=0的问题并弃用"start_with_window"(#3690) @chillerobscuro
参数估计#
时间序列标注#
时间序列分类#
[增强] 用于分类的 TapNet 深度学习模型 (#3386) @achieveordie
[增强] TapNet 估计器的快速测试参数以及文档字符串/接口清理 (#3544) @achieveordie
[增强] 为提高用户灵活性,为
CNNRegressor添加更相关的参数 (#3561) @achieveordie[增强] 允许
KNeighborsTimeSeriesClassifier处理不等长度时间序列之间的距离 (#3654) @fkiraly
时间序列回归#
[增强] 来自
sktime-dl的用于回归的 TapNet 深度学习模型 (#3481) @achieveordie[增强] 允许
KNeighborsTimeSeriesRegressor处理不等长度时间序列之间的距离(#3654) @fkiraly
转换器#
测试框架#
治理#
[治理] 将 @GuzalBulatova 添加到 CC (#3505) @GuzalBulatova
[治理] 新增 CC 观察员角色,更新角色持有者列表 (#3505) @GuzalBulatova
文档#
[文档] 添加
.ts文件的格式规范 (#3380) @achieveordie[文档] 分类器 Notebook 中的
sklearn使用示例 (#3523) @MatthewMiddlehurst[文档] 用
sphinx-design替换sphinx-panels(#3575) @MatthewMiddlehurst[文档] 修复 issue 跟踪器中行为准则问题报告链接不正确的问题以及行为准则中剩余的引用 (#3594) @fkiraly
[文档] 在扩展模板中添加关于
get_test_params的建议 (#3635) @achieveordie
维护#
[维护] 从
_HeterogeneousMetaEstimator中移除ABCMeta继承 (#3569) @fkiraly[维护] 用
sphinx-design替换已弃用的sphinx-panels(#3575) @MatthewMiddlehurst
重构#
修复#
BaseObject#
数据加载器#
[修复] 修复从 timeseriesclassification.com 加载数据时当
extract_path不为None时的错误 (#3021) @TonyBagnall[修复] 修复以 ts 格式将数据集写入文件时出现的错误 (#3532) @TonyBagnall
数据类型、检查、转换#
预测#
[修复] 修复
ConformalIntervals更新不更新residuals_matrix的问题 (#3460) @bethrice44[修复] 修复
NaiveForecaster.predict_var中当window_length非空时的残差公式错误 (#3495) @topher-lo[修复] 修复
ColumnEnsembleForecaster对str索引的支持问题 (#3504) @canbooo @fkiraly[修复] 修复
EnsembleForecaster中条件requires-fh-in-fit标签问题 (#3642) @fkiraly
参数估计#
时间序列标注#
[修复] 修复
BaseHmmLearn中的标签拼写错误 (#3563) @guzalbulatova @miraep8
时间序列聚类#
[修复] 将所有平均参数传递给 kmeans (#3486) @chrisholder
时间序列分类#
[修复] 修复
KNeighborsTimeSeriesClassifier标签处理依赖于距离组件的问题 (#3654) @fkiraly[修复] 为 TapNet 估计器添加缺失的
get_test_params(#3541) @achieveordie[修复]
numba/np.median交互在n_jobs>1处理大型数据集时引发错误 (#3602) @TonyBagnall[修复] 修复在 #2397 中发现的
numba和np.zeros交互错误 (#3618) @TonyBagnall[修复] 各种小错误修复 (#3706) @MatthewMiddlehurst
时间序列距离和核#
[修复] 修复 msm 对齐路径问题 (#3484) @chrisholder
[修复] TWE 对齐路径修复和重构 (#3485) @chrisholder
[修复] 修复
AggrDist.__init__中set_tags调用中的拼写错误 (#3562) @aiwalter
时间序列回归#
转换器#
[修复]
RandomShapeletTransform:将最大 shapelets 数量向下取整至类别数量 (#3564) @TonyBagnall
贡献者#
@achieveordie, @aiwalter, @AnH0ang, @arampuria19, @bethrice44, @canbooo, @chillerobscuro, @chrisholder, @ciaran-g, @danbartl, @fkiraly, @GuzalBulatova, @kcc-lion, @khrapovs, @lmmentel, @MatthewMiddlehurst, @miraep8, @shagn, @TonyBagnall, @topher-lo
版本 0.13.4 - 2022-09-27#
维护版本 - 将 sktime 仓库从 alan-turing-institute 组织迁移到 sktime 组织 (#2926)
分支和链接应被重定向,治理保持不变。
版本 0.13.3 - 2022-09-25#
亮点#
依赖项变更#
sktime现在与pmdarima 2.0.0兼容,版本限制放宽至<3.0.0sktime现在与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 版本中移除。
增强功能#
数据类型、检查、转换#
[增强] 优化
from_3d_numpy_to_nested转换器函数 (#3339) @paulbauriegel[增强] 简化
convert_to_scitype逻辑,修复 scitype 转换器模块中的导出和文档字符串遗漏 (#3358) @fkiraly
数据加载器#
预测#
[增强] 为
ConformalIntervals中的residuals_matrix计算添加并行的fit和predict_residuals方法 (#3414) @bethrice44[增强] naive 预测器的预测方差和分位数 (#3435) @topher-lo
时间序列标注#
时间序列分类#
[增强] 字典分类器加速 (#3216, #3360) @patrickzib
[增强] 新分类器:
MLPClassifier(#3232) @AurumnPegasus[增强] 新分类器:
FCNClassifier(#3233) @AurumnPegasus
时间序列距离和核#
变换#
[增强] 傅里叶特征变换器 (#3374) @ltsaprounis
[增强] 为
LogTransformer添加了scale、offset参数 (#3354) @bugslayer-332[增强]
pandas 1.5.0兼容性修复:如果在Lag中没有传递或指定freq,则使用infer_freq(#3456) @fkiraly
测试框架#
修复#
数据类型、检查、转换#
预测#
[错误修复] 修复默认保形区间的
initial_window参数 (#3383) @bethrice44
时间序列标注#
时间序列分类#
变换#
[错误修复] 确保
Differencer始终正确反转 (#3346) @fkiraly, @ilkersigirci
维护#
文档#
[文档] 将
SlidingWindowSplitter中start_with_window的错误 docstring 默认值更改为实际默认值 (#3340) @bugslayer-332[文档] 更正
examples/AA_datatypes_and_datasets.ipynb中的小拼写错误 (#3349) @achieveordie[文档] “在哪里提问”下的 Slack 链接已过期 (#3449) @topher-lo
[文档] “在哪里提问”下的 Slack 链接已过期 (#3449) @topher-lo
贡献者#
@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#
亮点#
依赖项更改#
pmdarima的版本限制在<2.0.0,直到兼容性问题解决
核心接口更改#
预测#
用于将变换器管道应用于外生数据的双下划线方法:
my_trafo ** my_forecaster将创建一个ForecastingPipeline注意:**的优先级高于*(应用于内生数据)ignores-exogeneous-X标签的默认值设置为更安全的值False。这不影响sktime预测器,但可能会影响未明确设置该标签的sktime兼容预测器,因为现在X会传递给所有内部函数,如_fit、predict等。只有在 (a) 标签被错误地省略,并且 (b) 内部函数存在问题(即只有在错误 (a) 掩盖了错误 (b) 的情况下才会引发异常)时,这才会导致不兼容。
时间序列距离和核#
用于将普通变换器与成对变换器进行管道连接的双下划线方法:
my_trafo ** distance将创建一个PwTrafoPanelPipeline,效果相当于“首先对两个输入应用my_trafo.fit_transform,然后再应用distance”
变换#
用于应用
OptionalPassthrough的双下划线方法:-my_trafo等同于OptionalPassthrough(my_trafo)用于反转变换器的双下划线方法:
~my_trafo将transform和inverse_transform功能互换
弃用和移除#
变换#
已弃用:
transformations.series.compose已弃用,推荐使用transformations.compose。前者中的所有估计器已移至后者,从 0.15.0 版本开始将无法再通过transformations.series.compose访问。已弃用:行变换器
SeriesToSeriesRowTransformer和SeriesToPrimitivesRowTransformer已弃用。自 0.11.0 版本以来,sktime原生支持行/实例向量化功能,不再需要通过这些包装器添加。这两个变换器将在 0.15.0 版本中移除。迁移时,只需移除行变换器包装器即可。在一些罕见的、模糊的向量化情况(例如,使用 `np.mean` 等已向量化的包装函数)下,可能需要使用FunctionTransformer代替SeriesToPrimitivesRowTransformer。
增强#
BaseObject#
数据类型、检查、转换#
预测#
时间序列标注#
时间序列距离和核#
变换#
[增强] 在
Lag中,使单滞后和多滞后情况下的列命名保持一致 (#3261) @KishManani[增强] 弃用
transformations.series.compose,推荐使用transformations.compose(#3271) @fkiraly
测试框架#
治理#
修复#
数据集和数据加载器#
[错误修复] 修复
write_ndarray_to_tsfile在classLabel = False时的问题 (#3303) @paulbauriegel
数据类型、检查、转换#
[错误修复] 修复
_load_provided_dataset()中某些转换失败的问题 (#3231) @achieveordie[错误修复] 修复
np.all内部遗忘列表推导式括号的重复实例 (#3245) @achieveordie, @fkiraly[错误修复] 修复
_enforce_infer_freq私有工具在处理短时间序列时的问题 (#3287) @fkiraly
预测#
[错误修复] 将
ForecastingGridSearchCV中的修剪延迟到变换之后 (#3132) @miraep8[错误修复] 修复
DirectReductionForecaster中的标签 (#3257) @KishManani[错误修复] 移除
AutoETS.fit在auto=True且additive_only=True时多余的UserWarning#3311 (#3317) @chillerobscuro[错误修复] 修复
ColumnEnsembleForecaster处理分层输入时的问题 (#3324) @fkiraly
参数估计#
时间序列标注#
[错误修复] ClaSP 分割修复 (#3217) @patrickzib
时间序列分类#
变换#
维护#
贡献者#
@achieveordie, @aiwalter, @chillerobscuro, @chrisholder, @fkiraly, @haskarb, @KatieBuc, @kcc-lion, @KishManani, @miraep8, @patrickzib, @paulbauriegel
版本 0.13.1 - 2022-08-11#
亮点#
DynamicFactor、VAR和VECM的概率预测功能 (#2925, #3105) @AurumnPegasus, @lbventuraAutoARIMA、BATS、TBATS和预测调优器的update功能 (#3055, #3068, #3086) @fkiraly, @jelc53新的变换器:用于低通/高通和带通滤波的
Filter变换器,接口mne的filter_data(#3067) @fkiraly, @sveameyer13
依赖项更改#
新增软依赖
mne,来自Filter转换器新增开发者依赖
pytest-randomly
核心接口变更#
所有估计器#
get_fitted_params现在有一个私有实现接口_get_fitted_params,类似于fit/_fit等未文档化的参数
_required_parameters不再是必需的(不必出现在某些估计器中)
预测#
预测指标类现在通过
multilevel参数全面支持分层数据和分层平均
参数估计#
新增估计器类型 - 参数估计器,基类为
BaseParamFitter
弃用与移除#
时间序列分类#
ProbabilityThresholdEarlyClassifier已被弃用,并将在 0.15.0 版本中被同名的早期分类器取代。接口将不向下兼容。
增强功能#
BaseObject#
数据集和数据加载器#
[增强] 数据加载器重做 (#3109) @achieveordie
数据类型、检查、转换#
预测#
[增强]
VECM的predict_interval功能 (#2925) @AurumnPegasus[增强]
DynamicFactor的predict_interval和predict_quantiles(#3105) @lbventura[增强] 使用
get_window函数重构SingleWindowSplitter(#3146) @khrapovs[增强] 添加
VAR._predict_intervals(#3149) @lbventura
参数估计#
时间序列标注#
时间序列分类#
[增强] 将向量分类器从
_contrib移至 classification 模块 (#2951) @MatthewMiddlehurst[增强] CNN Classifier 基类的各种改进 (#2991) @AurumnPegasus
[增强] 弃用
ProbabilityThresholdEarlyClassifier(#3133) @MatthewMiddlehurst
时间序列回归#
转换#
[增强] 重构
ColumnConcatenator,使用pd-multiindex内部 mtype 重写 (#2379) @fkiraly[错误修复] 修复
RandomIntervalFeatureExtractor以确保列名唯一 (#3001) @fkiraly[错误修复] 修复
Differencer.inverse_transform无法访问数据索引freq的问题 (#3007) @fkiraly[增强] 增加
FunctionTransformer和TabularToSeriesAdaptor的无状态范围 (#3087) @fkiraly[增强] 将简单的
ShapeletTransform从_contrib移至transformations模块 (#3136) @fkiraly
测试框架#
[增强]
functools包装器用于保留被make_mock_estimator包装的估计器的文档字符串 (#3228) @ltsaprounis[增强] 重构
FittedParamExtractor的测试参数至get_test_params(#2995) @mariamjabara[增强] 将
_config中所有剩余的测试参数完全重构至get_test_params(#3123) @fkiraly
文档#
[文档] 添加来自
sktime-dl的多元 CNN 示例 (#3002) @tobiasweede[文档] 来自 pydata Berlin 2022 的概率预测 Jupyter Notebook (#3016) @ciaran-g, @eenticott-shell, @fkiraly
[文档] 修复
segmentation_with_clasp.ipynb中的拼写错误 (#3060) @soma2000-lang[文档] 来自 pydata London 2022 的分层预测 Jupyter Notebook (#3227) @danbartl, @fkiraly
修复#
数据类型、检查、转换#
[错误修复] 修复
from_multi_index_to_3d_numpy中的杂散参数 (#3239) @fkiraly
预测#
时间序列分类#
转换#
测试框架#
维护#
[维护] 修复损坏的 Slack 邀请链接 (#3017, #3066) @aiwalter, @Arvind644
[维护] 将
testdir添加到.gitignore(#3019) @Lovkush-A[维护] 将 MacOS GitHub actions 主机提升到 MacOS-11 (#3107) @lmmentel
[维护] 重新激活
TSFreshRelevantFeatureExtractor的测试 (#3196) @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#
亮点#
sktime现在兼容python 3.10,包括开发者套件所有预测器和变换器都可以处理多元数据,通过向量化实现 (#2864, #2865, #2867, #2937) @fkiraly
BaggingForecaster,用于通过 bagging 添加预测区间 (#2248) @ltsaprounis新的预测器:
VARMAX,VECM,DynamicFactor(#2763, #2829, #2859) @KatieBuc @AurumnPegasus @lbventura @ris-bali
依赖项变更#
Python 要求和软依赖项现已尽可能隔离到估计器类,请参阅下文。
sktime现在允许使用numpy 1.22。prophet软依赖项现在必须高于 1.1,在此版本中它不再依赖于pystan。已移除对
pystan的间接软依赖项。已移除对
hcrystalball的软依赖项。
核心接口变更#
数据类型、检查、转换#
VectorizedDF现在支持按列进行向量化
依赖项处理#
Python 要求和软依赖项现在通过
python_version和python_dependencies标签隔离到估计器类。这允许将算法与其依赖项要求捆绑在一起。
预测#
所有预测器现在都可以进行多元预测。单变量预测器通过迭代/向量化变量来实现。在这种情况下,用于变量的单个预测器存储在
forecasters_属性中。ForecastingHorizon现在将频率信息存储在freq属性中。可以通过新的freq参数在构造函数中设置,并在传递数据时推断/更新。
变换#
所有变换器现在都可以变换多元时间序列。单变量变换器通过迭代/向量化变量来实现。在这种情况下,用于变量的单个变换器存储在
transformers_属性中。
弃用和移除#
预测#
已弃用:在 ForecastingHorizon 方法中使用带有
freq的pd.Timestamp已弃用,并将从 0.14.0 版本开始引发异常。仍然可以使用pd.Timestamp。这是因为pandas中弃用了pd.Timestamp的freq属性。从 0.14.0 版本开始,预测器的公共
cutoff属性将从索引元素更改为pd.Index子类型。已移除:类
HCrystalBallForecaster,请参阅 #2677。
性能指标#
已移除:所有性能指标构造函数中的
func和name参数。已更改:
greater_is_better属性已替换为greater_is_better标签。
时间序列分类#
已移除:从
BaseClassifier的后代中移除"capability:early_prediction"标签。早期分类器现在是它们自己的估计器类型。要搜索早期分类器,请使用early-classifierscitype 字符串代替标签。
变换#
已移除:
Differencer-drop_na参数 已被移除。na_handling的默认值更改为fill_zero已移除:
WindowSummarizer中的lag_config参数,请改用lag_feature参数。
增强功能#
数据类型、检查、转换#
预测#
[ENH]
BaggingForecaster,用于通过 bagging 添加预测区间 (#2248) @ltsaprounis[ENH]
VECM预测模型 (#2829) @AurumnPegasus[ENH] 解决
ForecastingHorizon中的freq弃用问题 (#2932) @khrapovs @fkiraly[ENH] statsmodels
DynamicFactor接口 (#2859) @lbventura @ris-bali[ENH] 通过将
cutoff转换为pd.Index来避免从pd.Timestamp访问.freq(#2965) @khrapovs
变换#
修复#
数据加载器#
[BUG]
load_UCR_UEA_dataset检查文件的存在而不是仅检查目录 (#2899) @TonyBagnall
数据类型、检查、转换#
预测#
时间序列分类#
[BUG] 修复 CNN TSC 模型详细模式下的错误 (#2882) @tobiasweede
[BUG] 早期分类测试修复 (#2980) @MatthewMiddlehurst
变换#
重构#
维护#
[MNT] 将
prophet升级到 >=1.1,并从all_extras依赖项中删除pystan(#2887) @khrapovs[MNT] 更新
numpy版本绑定至<=1.22(#2979) @jlopezpena
文档#
贡献者#
@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#
亮点#
依赖项变更#
由于与
cmdstanpy不兼容,prophet < 1.1的上限
核心接口变更#
BaseObject#
增强功能#
BaseObject#
预测#
变换#
修复#
预测#
变换#
文档#
维护#
贡献者#
@aiwalter, @AurumnPegasus, @bethrice44, @ciaran-g, @fkiraly, @khrapovs, @miraep8
版本 0.12.0 - 2022-06-12#
亮点#
时间序列分类:基于深度学习的算法,将
sktime-dl移植到sktime(#2447) @TonyBagnall频繁请求的算法:卡尔曼滤波变换器 (#2611) @NoaWegerhoff @lielleravid
频繁请求的算法:基于 Stankeviciute 等人 (2021) 的经验和共形预测区间 (#2542, #2706) @bethrice44 @fkiraly
依赖项变更#
新的软依赖项:
pykalman和filterpy(用于卡尔曼滤波变换器)
核心接口变更#
BaseObject#
预测#
性能指标#
性能指标具有新的基类设计和继承结构。请参阅
BaseForecastingErrorMetricdocstring 文档。接口的更改向下兼容,并为进一步重构奠定了基础。
时间序列回归#
弃用和移除#
数据类型、检查、转换#
已移除: 从
from_multi_index_to_3d_numpy中移除了参数instance_index和time_index。请改用convert或convert_to。
预测#
已移除: 标签
fit-in-predict,现已归入fit_is_empty下已弃用:
HCrystalBallForecaster,将在 0.13.0 版本中移除。请参阅 #2677。
性能指标#
已更改: 在所有相对性能指标中,将超参数
symmetric的默认值设为True。已弃用: 参数
func和name将在 0.13.0 版本中从所有性能指标构造函数中移除。如果需要这些属性,它们应该是对象或类属性,并且可以是可选的构造函数参数。然而,不再要求所有性能指标将func和name作为构造函数参数。已弃用: 属性
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] TWE 切换使用欧几里得距离 (#2639) @chrisholder
预测#
性能指标#
[ENH] 用于区间预测的新概率指标 - 经验覆盖率、约束违反 (#2383) @eenticott-shell
[ENH] 概率指标测试 (#2683) @eenticott-shell
流水线#
时间序列分类和回归#
变换#
测试框架#
[ENH]
make_mock_estimator支持为模拟类传递构造函数参数 (#2686) @ltsaprounis[ENH] 用于连续数据的
test_update_predict_predicted_index(#2701) @ltsaprounis[ENH] 在
TestAllEstimators中将评估器方法迭代公开为测试 fixture (#2781) @fkiraly
治理#
修复#
聚类#
数据类型、检查、转换#
距离、核#
[BUG] 修复了距离工厂处理 1d 数组时的 bug (#2691) @chrisholder
预测#
[BUG] 修复了不正确的
update_predict参数默认值以及cv参数的文档字符串问题 (#2589) @aiwalter[BUG]
UnobservedComponents的ignores-exogeneous-X标签纠正 (#2666) @fkiraly[BUG] 修复了当
X索引集严格大于y索引集时pmdarima接口索引处理问题 (#2673) @fkiraly[BUG] 修复了
pd.tseries.offsets.BaseOffset的持续时间到int的强制类型转换问题 (#2726) @khrapovs[BUG] 修复了由于时间戳限制包含索引导致的
NaiveVariance训练/测试集重叠问题 (#2760) @bethrice44[BUG] 修复了构造函数不符合 sklearn 规范的问题:
UnobservedComponents(#2773) @fkiraly[BUG] 修复了
ARIMA和AutoARIMA中的sarimax_kwargs不符合 scikit-learn 接口的问题 (#2731, #2773) @fkiraly
时间序列分类和回归#
变换#
维护#
重构#
文档#
[DOC] 示例 Notebook 的文本更改 (#2648) @lbventura
[DOC] 更新了
TimeSeriesForestClassifier在get_started.rst中的文档位置,从kernel_based移至interval_based(#2722) @dougollerenshaw[DOC] 修复了
ExpandingWindowSplitter类描述中的问题 (#2676) @keepersas[DOC] 修复了网站上的几个链接 (#2688) @asattiraju13
贡献者#
@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] 动态时间规整质心平均 (DBA) (#2582) @chrisholder
数据类型、检查、转换#
距离,核函数#
[增强] Twe 距离 (#2553) @chrisholder
预测#
时间序列分类#
减小了 DrCIF 的集成大小 (#2595) @TonyBagnall
转换#
修复#
BaseObject#
聚类#
[BUG] 聚类 Lloyd 算法提前退出不正确 (#2572) @chrisholder
[BUG] 修复了未传递平均参数的错误 (#2592) @chrisholder
[BUG] 由于 numpy 和 numba 的交互,Twe 距离运行缓慢 (#2605) @chrisholder
预测#
测试框架#
贡献者#
@chrisholder, @ciaran-g, @fkiraly, @khrapovs, @miraep8, @phershbe, @Ris-Bali, @TonyBagnall
版本 0.11.3 - 2022-04-29#
亮点#
预测管道的 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#
数据类型、检查、转换#
预测#
[增强] `UnobservedComponents` 预测器的预测区间 (#2454) @juanitorduz
[增强] 在分割器中将 `np.arange` 替换为 `np.arghwere` 以启用基于时间的索引和选择 (#2394) @khrapovs
[增强] 使用 Timedelta 预测范围测试 `SingleWindowSplitter` (#2392) @khrapovs
[增强] 为 `statsmodels` 适配器和估计器添加了 `random_state` (#2440) @ris-bali
[增强] 为 `MultiplexForecaster` 添加了 `|` dunder 方法 (#2540) @miraep8
注册表#
测试框架#
转换#
修复#
聚类#
[BUG] 修复了 kmedoids 中 medoids 是从所有数据中选取而不是按聚类选取的问题 (#2548) @chrisholder
数据类型、检查、转换#
距离,核函数#
[BUG] 距离度量修复了边界矩阵被错误舍入的错误 (#2549) @chrisholder
预测#
[BUG] 重构并修复了 `_predict_moving_cutoff`,应该调用外部的 `update_predict_single` 方法 (#2466) @fkiraly
[BUG] 修复了 `ThetaForecaster.predict_quantiles` 在 `pd.DataFrame` 输入时崩溃的错误 (#2529) @fkiraly
[BUG] 修复了 `update_predict` 状态处理错误,将分离的截止日期替换为 `deepcopy` (#2557) @fkiraly
[BUG] 修复了 `WindowSummarizer` 中的索引名称依赖问题 (#2567) @ltsaprounis
[BUG] 修复了 `ColumnEnsembleForecaster.pred_quantiles`, `pred_interval` 的不合规输出问题 (#2512) @eenticott-shell
时间序列分类#
转换#
测试框架#
重构#
[增强] 将对 `fit-in-transform` 的引用改为 `fit_is_empty` (#2494) @fkiraly
[增强] 遗留测试重构 - 移动了 `test_data_processing`,改进了 `test_classifier_output` 中的 mtype 处理 (#2506) @fkiraly
[增强] 不带日志记录的 `MockForecaster`,清理了 `MockUnivariateForecaster` (#2539) @fkiraly
[增强] 在 `_predict_moving_cutoff` 重构后移除了无用的参数和函数 (#2470) @fkiraly
维护#
[维护] 将 contrib 模块设为私有 (#2422) @MatthewMiddlehurst
[维护] 移除了意外提交的概率集成 notebook (#2476) @eenticott-shell
[维护] 在 Windows 上将 scipy 镜像切换到 anaconda,以解决所有 CI/CD 中的 `gfortran` `FileNotFoundError` 问题 (#2561) @fkiraly
文档#
[文档] 在 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#
修复#
版本 0.11.1 - 2022-04-10#
亮点#
GSoC 2022 申请说明 - 在 4 月 19 日前申请参与 sktime 的 GSoC! (#2373) @lmmentel @Lovkush-A @fkiraly
针对在 0.11.0 版本中引入的概率和层级预测功能的增强功能和错误修复
概率预测的流水线、调优和评估兼容性 (#2234, #2318) @eenticott-shell @fkiraly
核心接口变更#
数据类型、检查、转换#
放宽了
pd-multiindexmtype,允许任意级别名称
预测#
概率预测接口现在也可用于自动矢量化情况
概率预测接口现在兼容分层预测接口
改进#
数据类型、检查、转换#
[改进] tsf 加载器允许指定返回的 mtype (#2103) @ltsaprounis
[改进] 放宽 multiindex 的名称规则 - 修复了
from_multi_index_to_nested中的遗漏 (#2384) @ltsaprounis
预测#
[改进] 为
ForecastingPipeline和TransformedTargetForecaster添加与概率和分层预测的兼容性 (#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[改进]
NaiveVariance:verbose 参数和扩展的 docstring (#2395) @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
修复#
预测#
变换#
文档#
[文档] 扩展模板中的拼写错误修复:constructor -> constructor (#2348) @fkiraly
[文档] 修复了 '
docs/source/developer_guide/testing_framework.rst' 的问题 (#2335) @0saurabh0[文档] 更新了 conda 安装说明 (#2365) @RISHIKESHAVAN
[文档] 在 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#
要点#
多元预测,预测教程中的概率预测部分 (#2041) @kejsitake
分层和全局预测:forecaster 和 transformer 接口现在兼容分层数据,自动在层次结构级别上进行矢量化 (#2110, #2115, #2219) @danbartl @fkiraly
概率预测:
predict_var(方差预测)和predict_proba(完整分布预测)接口;区间和分位数预测的性能指标 (#2100, #2130, #2232) @eenticott-shell @fkiraly @kejsitaketransformer 和 classifier 流水线的 dunder 方法:使用
my_trafo1 * my_trafo2表示流水线,使用my_trafo1 + my_trafo2表示FeatureUnion(#2090, #2251) @fkiraly常见请求:来自
statsforecast包的AutoARIMA现在可用作StatsforecastAutoARIMA(#2251) @FedericoGarza对于扩展者:详细的“创建 sktime 兼容估计器”指南
依赖变更#
sktime新增了一组用于深度学习的可选依赖,包括tensorflow和tensorflow-probability新的软依赖:
tslearn(tslearn聚类器所需)新的软依赖:
statsforecast(StatsforecastAutoARIMA所需)
核心接口变更#
数据类型、检查、转换#
新的
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 获得
Panel或Hierarchical输入,但仅定义了Series逻辑时,forecaster 将自动遍历(系列)实例当 forecaster 获得
Hierarchical输入,但仅定义了Panel或Series逻辑时,forecaster 将自动遍历(面板)实例用于概率预测的新概率预测接口
新方法
predict_var(fh, X, cov=False)用于方差预测,返回预测方差的时间序列新方法
predict_proba(fh, X, marginal=True)用于分布预测,返回tensorflowDistribution
时间序列分类#
用于 pipelining classifier 和 transformer 的 dunder 方法:
my_trafo1 * my_trafo2 * my_clf将创建一个ClassifierPipeline(兼容sklearn)
变换#
transformer 现在也接受
Panel类型(面板和全局 transformer)和Hierarchical类型(分层 transformer)的输入当 transformer 获得
Panel或Hierarchical输入,但仅定义了Series逻辑时,transformer 将自动遍历(系列)实例当 transformer 获得
Hierarchical输入,但仅定义了Panel或Series逻辑时,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 流水线兼容
sklearntransformer,自动包装在TabularToSeriesAdaptor中
弃用和移除#
数据类型、检查、转换#
预测#
移除:forecaster
predict,fit_predict,update_predict_single中的return_pred_int参数。由predict_interval和predict_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 版本移除。弃用:
FeatureUnion中series_as_features的旧位置,已移至transformations.compose。旧位置仍可在 0.12.0 版本之前导入。弃用:
FeatureUnion的preserve_dataframe参数,将在 0.12.0 版本中移除。弃用:
WindowSummarizer在transformations.series.windows_summarizer的旧位置,已移至transformations.series.summarize。旧位置仍可在 0.12.0 版本之前导入。
改进#
数据类型、检查、转换#
数据集和数据加载器#
[改进] 分层 mtype 生成器 (#2093) @ltsaprounis
聚类#
[改进]
tslearn添加为软依赖,用于添加新的聚类器。(#2048) @chrisholder[改进] 在单问题聚类/分类问题中添加用户选项以确定返回类型 (#2139) @TonyBagnall
距离、核函数#
[改进] Lcss 距离的一些小改动 (#2119) @TonyBagnall
[改进] 添加一个 factory,为 distances 模块导出的所有距离添加 3D 功能 (#2051) @fkiraly
预测#
[改进] 添加 StatsForecast 中的 AutoARIMA (#2251) @FedericoGarza
[改进] 朴素方差预测估计器/包装器 (#1865) @IlyasMoutawwakil
[改进] forecasters 的
predict_proba,添加 tensorflow-probability 依赖 (#2100) @fkiraly[改进] 概率预测指标 (#2232) @eenticott-shell
[改进] Hierarchical 数据的
_predict_fixed_cutoff(#2094) @danbartl
时间序列分类#
[改进] 在单问题聚类/分类问题中添加用户选项以确定返回类型 (#2139) @TonyBagnall
[改进] TEASER 早期分类实现 (#2162) @MatthewMiddlehurst
[功能增强] 引入
classifier_type标签 (#2165) @MatthewMiddlehurst[功能增强] 分类的 sklearn 模型选择测试 (#2180) @MatthewMiddlehurst
[功能增强] Rocket 转换器: 将精度更改为 float32 (#2135) @RafaAyGar
转换器#
[功能增强] 单变量时间序列自举法 (#2065) @ltsaprounis
[功能增强] 升级
BaseTransformer以使用向量化工具,支持分层 mtype 兼容性 (#2219) @fkiraly
测试框架#
治理#
将 @danbartl 添加到核心开发者列表
将 @ltsaprounis 添加到核心开发者列表 (#2236) @ltsaprounis
已修复#
[错误修复] 修复 ThetaForecaster.predict_quantiles 引起的状态改变 (#2108) @fkiraly
[错误修复] 将
_make_hierarchical重命名为_make_hierarchical(拼写错误/错误) issue #2195 (#2196) @Vasudeva-bit[错误修复] 修复
PaddingTransformer._transform错误的输出类型 (#2217) @fkiraly[错误修复] 修复
STLBootstrapTransformer错误消息和文档字符串 (#2260) @fkiraly[错误修复] 修复 BaseForecaster 中区间->分位数转换,并修复 ARIMA.predict_interval (#2281) @fkiraly
[错误修复] 修复 Windows 系统中
VectorizedDF.__getitem__索引频率的错误 (#2279) @ltsaprounis[错误修复] 修复
_predict_var文档字符串中 Returns 部分重复的错误 (#2306) @fkiraly[错误修复] 修复 kmeans、medoids 在生成空聚类时崩溃的错误 (#2060) @chrisholder
弃用处理: 使用 StandardScaler 替换 normalize (#2167) @KishenSharma6
文档#
[文档] 预测器教程: 多变量预测,概率预测 (#2041) @kejsitake
[文档] 在 sktime 安装说明中添加“故障排除”链接 (#2121) @eenticott-shell
[文档] 增强距离文档字符串 (#2122) @TonyBagnall
[文档] 将 gitter 提及替换为适当的链接、引用 (#2187) @TonyBagnall
[文档] 更新环境文档,添加 sktime 支持的 python 版本,添加 python 3.9 (#2199) @Vasudeva-bit
[文档] 改进 HIVE-COTE v1.0 的文档字符串 (#2239) @TonyBagnall
[文档]
developer_guide.rst中的拼写错误 (#2131) @theanorak
维护#
加速 EE 测试和 ColumnEnsemble 示例 (#2124) @TonyBagnall
[维护] 在 test_plotting 中添加 xfails 直到 #2066 解决 (#2144) @fkiraly
[功能增强] 改进 deep_equals 返回消息,如果 dict 不一致 (:pr:`2107`) @fkiraly
[功能增强] 扩展 deep_equals 以支持 ForecastingHorizon (#2225) @fkiraly
[维护] 更快的文档字符串示例 - ForecastingGridSearchCV, MultiplexForecaster (#2229) @fkiraly
[错误修复] 移除 StratifiedGroupKFold 的测试 (#2244) @TonyBagnall
[功能增强] 分类器类型提示 (#2246) @MatthewMiddlehurst
[功能增强] 用于测试的模拟估计器和模拟估计器生成器 (#2197) @ltsaprounis
[文档] 更新 PULL_REQUEST_TEMPLATE.md,使 PR 标题应以 [ENH]、[DOC] 或 [BUG] 开头 (#2293) @aiwalter
重构#
[功能增强] 聚类实验保存结果格式化 (#2156) @TonyBagnall
[功能增强] 在
datatypes中将np.isnan替换为pd.isnull(#2220) @fkiraly[功能增强] 将
fit-in-transform和fit-in-predict重命名为fit_is_empty(#2250) @fkiraly[功能增强] 测试参数重构: 所有分类器 (#2288) @MatthewMiddlehurst
[功能增强] 测试参数重构:
Arsenal(#2273) @dionysisbacchus[功能增强] 测试参数重构:
RocketClassifier(#2166) @dionysisbacchus[功能增强] 测试参数重构:
TimeSeriesForestClassifier(#2277) @lielleravid[功能增强]
FeatureUnion重构 - 移至transformations, 添加标签, 魔术方法 (#2231) @fkiraly[功能增强] 将
statsforecast中的AutoARIMA更改为StatsForecastAutoARIMA(#2272) @FedericoGarza
贡献者#
@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,该上限将被放宽
已添加#
文档#
[文档] 改进预测教程 (#1834) @baggiponte
[文档] 修复安装包的错误 conda 命令 (#1973) @schettino72`
[文档] 修复小文档问题 (#2035) @Saransh-cpp
数据集和数据加载器#
[功能增强] 添加
.tsf数据格式的加载器 (#1934) @rakshitha123[功能增强] 添加用于单元测试的
.tsf数据集 (#1996) @rakshitha123
数据类型、检查、转换#
预测#
转换器#
维护#
[维护] 放弃 C 扩展和 Cython 后更新 wheels CI/CD 工作流程 (#1972) @lmmentel
[维护] 重命名分类 notebook (#1980) @TonyBagnall
[维护] 从 CI-CD 移除
pytest-xdist,取消跳过 test_multiprocessing_idempotent (#2004) @fkiraly[维护] 更改数据类型检查中的函数名为 lower_snake_case (#2014) @chicken-biryani
[维护]
linux和mac测试的详细输出 (#2045) @Saransh-cpp[维护] GitHub Actions: 再次推送时取消 PR 旧的但仍在运行的工作流程 (#2063) @RishiKumarRay
已修复#
[错误修复] 移除文档中的 MrSEQL notebook (#1974) @TonyBagnall
[错误修复] 修复聚类扩展模板上的导入 (#1978) @schettino72
[错误修复] HC2 组件错误修复 (#2020) @MatthewMiddlehurst
[错误修复] 修复如果序列有名称时,
nested_univ到pd-multiindexmtype 的转换错误 (#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现在支持 python 3.7-3.9。由于生命周期结束,不再支持 Python 3.6。最后一个支持 python 3.6 的sktime版本是 0.9.0。sktime现在支持并要求numpy>=1.21.0和statsmodels>=0.12.1全面修订了安装和首次开发者的文档 (#1707) @amrith-shell
所有概率预测器现在都提供
predict_interval和predict_quantiles接口 (#1842, #1874, #1879, #1910, #1961) @fkiraly @k1m190r @kejsitake新的基于转换器的管道分类器 (#1721) @MatthewMiddlehurst
sktime的开发者安装不再需要 C 编译器和cython(#1761, #1847, #1932, #1927) @TonyBagnall
依赖项变化#
sktime现在在 Windows、Mac 和基于 Unix 的系统上支持python3.7-3.9sktime现在支持并要求numpy>=1.21.0和statsmodels>=0.12.1sktimeProphet接口现在使用prophet而不是已弃用的fbprophetsktime的开发者安装不再需要 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现在同时接受Series和Panel作为参数如果将
Panel传递给序列转换器,它将应用于所有实例所有转换器现在都具有
transform(X, y=None)和inverse_transform(X, y=None)签名。这是由新的基础接口强制执行的。Z(旧的第一个参数) 在 0.11.0 版本之前是X的别名,之后将被移除X(旧的第二个参数) 在这些转换器中未使用,已更改为y参见转换器基础 API 和转换器扩展模板
弃用和移除#
数据类型、检查、转换#
预测#
弃用,计划在 0.11.0 中移除:预测器
predict、fit_predict、update_predict_single中的return_pred_int参数。替换为predict_interval和predict_quantiles接口。
时间序列分类#
移除:
MrSEQL时间序列分类器 (#1548) @TonyBagnall移除
RISF和 shapelet 分类器 (#1907) @TonyBagnalldata.io模块移至 datasets (#1907) @TonyBagnall
变换#
新增#
文档#
数据类型、检查、转换#
数据集和数据加载器#
[ENH] 更新数据集头部信息 (#1752) @tonybagnall
[ENH] 清理分类数据集 (#1785) @tonybagnall
[ENH] contrib 中的多态数据加载器 (#1840) @tonybagnall
[ENH] 将函数和测试从 utils/data_io 移至 datasets/_data_io (#1777) @tonybagnall
聚类#
[ENH] 重构聚类模块 (#1864) @chrisholder
[ENH]
fit在 Lloyd 算法中重复初始化 (#1897) @chrisholder
距离、核函数#
预测#
[ENH] Scaled Logit 变换器 (#1913, #1965) @ltsaprounis。
[ENH] 将
fit参数添加到 statsmodels Holt-Winters 指数平滑接口 (#1849) @fkiraly[ENH] 将
predict_quantiles添加到 FBprophet (#1910) @kejsitake[ENH] 将
predict_quantiles添加到 ets, pmdarima 适配器 (#1874) @kejsitake[ENH]
_predict_interval和_predict_coverage的默认值 (#1879, #1961) @fkiraly[ENH] 重构了列集成预测器 (#1764) @Aparna-Sakshi
[ENH] 更新了 predict_quantiles 的扩展模板 (#1780) @kejsitake
[ENH] 重构预测区间:BATS/TBATS;#1625 的 bugfix;
predict_quantiles的基类更新 (#1842) @k1m190r
时间序列分类#
[ENH] 基于新变换的管道分类器 (#1721) @MatthewMiddlehurst
[ENH]
FreshPRINCE参数从 _config 移至 estimator 中 (#1944) @fkiraly[ENH] 用户选择分类问题数据加载函数的返回类型 (#1799) @tonybagnall
[ENH] TSC 重构:
compose子模块 (#1852) @tonybagnall[ENH] TSC 重构:TSC 列集成 (#1859) @tonybagnall
[ENH] TSC 重构:TSF, RSF (#1851) @tonybagnall
[ENH] 将 C 扩展和 Cython 替换为基于 numba 的距离计算 (#1761, #1847, #1932, #1927) @TonyBagnall。
[ENH] 引入 msm 距离并修改 KNN 分类器以使用它 (#1926) @tonybagnall
[ENH] 提高 HC2 interval_speedup 的效率 (#1754) @MatthewMiddlehurst
[ENH] 分类器测试:移除 replace_X_y、注释并添加 contracting tests (#1800) @MatthewMiddlehurst
变换#
测试模块#
[ENH] 将 series_as_features 中的测试拆分为分类和回归 (#1959) @tonybagnall
[ENH] 测试
test_create_test_instances_and_namesfixture 生成方法 (#1829) @fkiraly
治理#
新的 CC 组成,更新了 codeowners (#1796)
更新了核心开发者列表 (#1841) @sumit-158
维护#
已修复#
[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] 修复了
convert_align_to_align_loc中错误的索引强制转换 (#1911) @fkiraly[BUG] 1523 修复了带有 anchorings 的 freqs 的
ForecastHorizon.to_absolute(#1830) @eenticott-shell[BUG] 修复了
predict_interval和predict_quantiles中的 fh -> self.fh 问题 (#1775) @fkiraly[BUG] 修复了不正确的文档字符串,并解决了面板元数据推理中不等长/不等间距的混淆问题 (#1768) @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
贡献者#
@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) @AngelPoneNumba 距离模块 - 高效的时间序列距离 (#1574) @chrisholder
变换器基接口重构 - 默认对面板数据进行向量化 @fkiraly
核心接口更改#
数据类型、检查、转换#
时间序列分类#
时间序列分类器现在接受 2D
np.ndarray,通过转换为 3D 而非抛出异常 (#1604) @TonyBagnall
变换#
fit,transform,fit_transform现在同时接受Series和Panel作为参数如果将
Panel传递给序列转换器,它将应用于所有实例所有变换器现在都使用 X 作为第一个参数,y 作为第二个参数。这是由新的基接口强制执行的。
这与之前不同类型的变换器不一致:series-to-series 变换器使用 Z 作为第一个参数,X 作为第二个参数。
Z(以前的第一个参数)在系列变换器中作为 X 的别名直到 0.10.0,之后将被弃用
X(以前的第二个参数)在那些更改为 y 的变换器中未使用
参阅新的变换器扩展模板
这些更改将通过 0.9.X 版本逐步推广到所有变换器
0.10.0 的新弃用#
数据类型、检查、转换#
时间序列分类#
MrSEQL 时间序列分类器 (#1548) @TonyBagnall
变换#
序列变换器将不再接受 Z 参数 - 第一个参数 Z 被 X 替换 (#1365)
新增#
文档#
[DOC] 使用 Anaconda 和 PyCharm 进行 sktime 开发的 Windows 安装指南 (#1640) @jasonlines
[DOC] 更新 installation.rst (#1636) @MrPr3ntice
[DOC] 用户文档中的错别字 (#1671) @marcio55afr
[DOC] 更新时间序列森林回归文档字符串 (#800) @thayeylolu
[DOC] 修复 Feature Union 中的文档字符串 (#1470) @AreloTanoh
[DOC] 添加了新贡献者 (#1602 #1559) @Carlosbogo @freddyaboulton
数据类型、检查、转换#
预测#
[改进] Auto-ETS 根据数据的非负性检查并选择模型 (#1615) @chernika158
[文档] 用于
ForecastingGridSearchCVdocstring的元调优示例 (#1656) @aiwalter
时间序列对齐#
时间序列分类#
[改进] 分类器测试加速 (#1599) @MatthewMiddlehurst
[改进] 实验整理由 (#1619) @TonyBagnall
[改进] 将 MiniRocket 和 MultiRocket 作为 RocketClassifier 的选项 (#1637) @MatthewMiddlehurst
[改进] 更新了分类器基类的类型标注 (#1633) @chrisholder
TSC重构:基于区间的分类包(#1583) @MatthewMiddlehurst
TSC重构:基于距离的分类包 (#1584) @MatthewMiddlehurst
TSC重构:基于特征的分类包 (#1545) @MatthewMiddlehurst
时间序列距离#
[改进] Numba 距离模块 - 高效的时间序列距离 (#1574) @chrisholder
[改进] 距离度量重构 (#1664) @chrisholder
治理#
维护#
已修复#
估计器注册表#
预测#
[错误] Facebook prophet 对外生数据 X 的副作用 (#1711) @kejsitake
[错误] 修复了
_split的错误,意外删除了对 pandas.Index 的支持 (#1582) @fkiraly[错误] 在重新拟合预测器时 update_y_X 的问题由 (#1595) @ltsaprounis
性能指标,评估#
时间序列对齐#
时间序列分类#
[错误] 修复了 #1234 (#1600) @Carlosbogo
[错误] 修复了从 UCR 加载的问题 (#1610) @TonyBagnall
[错误] 修复了 TimeSeriesForest 分类器 (#1588) @OliverMatthews
[错误] 修复了 ShapeDTW 中的参数不匹配问题由 (#1638) @TonyBagnall
转换#
维护#
贡献者#
@aiwalter, @AngelPone, @AreloTanoh, @Carlosbogo, @chernika158, @chrisholder, @fstinner, @fkiraly, @freddyaboulton, @kejsitake, @lmmentel, @ltsaprounis, @MatthewMiddlehurst, @marcio55afr, @MrPr3ntice, @mloning, @OliverMatthews, @RNKuhns, @thayeylolu, @TonyBagnall,
完整更新日志#
[0.8.1] - 2021-10-28#
亮点#
新增了一系列转换器 - 日期-时间虚拟变量、统计摘要、STL 转换、函数转换器 (#1329 #1356 #1463 #1498) @boukepostma @eyalshafran @danbartl @RNKuhns
概率预测的新接口点,包括
predict_interval和predict_quantiles(#1421) @SveaMeyer13时间序列分割的实验性接口 (#1352) @patrickzib
0.10.0版本的新弃用项#
预测#
当前在
predict中通过return_pred_int实现的预测区间接口将被弃用,并由新的接口点predict_interval和predict_quantiles替换
核心接口变更#
预测#
概率预测的新接口点,包括
predict_interval和predict_quantiles(#1421) @SveaMeyer13将预测器的
univariate-only标签更改为ignores-exogeneous-X(#1358) @fkiraly
新增#
BaseEstimator/BaseObject#
预测#
statsmodels VAR 接口 (#1083, #1491) @thayeylolu @fkiraly
多元
TransformedTargetForecaster,ForecastingPipeline,BaseGridSearch,MultiplexForecaster(#1376) @aiwalterstatsmodels 接口
_StatsModelsAdapter的预测区间 (#1489) @eyalshafran新的多元预测数据集,statsmodels 宏观经济数据 (#1553) @aiwalter @SinghShreya05
时间序列分类#
HIVE-COTE 2.0 分类器 (#1504) @MatthewMiddlehurst
自动生成分类器功能总结 #997 (#1229) @BINAYKUMAR943
转换器#
基于函数的转换器工厂,
FunctionTransformer(#1498) @boukepostmaSTL 转换,
STLTransformer(#1463) @eyalshafran
标注:变化点,分割#
用于时间序列分割的 Clasp (CIKM’21 发表) (#1352) @patrickzib
文档#
治理#
@SveaMeyer13, @GuzalBulatova, 和 @freddyaboulton 加入了核心开发者团队 (#1444)
测试框架#
已修复#
TSC重构:基类 (#1517) @TonyBagnall
TSC重构:混合/基于核的分类包 (#1557) @MatthewMiddlehurst
TSC重构:基于字典的分类包 (#1544) @MatthewMiddlehurst
TSC重构:时间序列分类器重构/Shape_DTW (#1554) @Piyush1729
TSC重构:
_muse分类器 (#1359) @BINAYKUMAR943TSC重构:
ShapeletTransformClassifier,HC2 的文档 (#1490) @MatthewMiddlehurstTSC重构:catch22 (#1487) @RavenRudi
TSC重构:tsfresh 分类器 (#1473) @kejsitake
[维护] 修复了 appveyor 故障 (#1541) @freddyaboulton
[错误] #1469:剥离索引 X 和 y 的名称 (#1493) @boukepostma
[错误] 来自 #866 的 W-XXX 频率错误 (#1409) @xiaobenbenecho
[错误] AutoARIMA 中不可预测的样本内预测使用 Pandas.NA (#1442) @IlyasMoutawwakil
[错误] 重构 sktime/…/_panels/_examples.py 以兼容 tsai (#1453) @bobbys-dev
[错误] model_selection/split 在提供了 DataFrame 时将整个 DataFrame 作为索引传递 (#1456) @fkiraly
[文档] 修复了
_proximity_forest.py中的 docstring (#1531) @TonyBagnall[文档] 修复了 landing page 链接 (#1429) @Aparna-Sakshi
[文档] 将 DataChef 博客文章添加到社区展示 (#1464) @myprogrammerpersonality
[文档] 从 docstring 中移除许可证信息 (#1437) @ronnie-llamado
所有贡献者: @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#
亮点#
在 linux/osx 上支持 Python 3.9 (#1255) @freddyaboulton
用于安装包含所有附加项的 sktime 的
conda-forge元包 @freddyaboulton框架支持多元预测 (#980 #1195 #1286 #1301 #1306 #1311 #1401 #1410) @aiwalter @fkiraly @thayeylolu
使用
registry.all_estimators和registry.all_tags整合了估计器和标签查找功能 (#1196) @fkiraly[文档] 对
sktime的在线文档进行了重大改进[维护] 可用的 Binder 浏览器内 Notebook 演示 (#1266) @corvusrabus
核心接口变更#
BaseEstimator/BaseObject#
估计器(类和对象)的能力可以通过
get_tag和get_tags接口进行检查通过
registry/all_tags列出适用于估计器类型的所有标签通过
registry/all_estimators列出特定类型且带有某些标签的所有估计器
内存数据类型#
引入了 m(achine)types 和 scitypes 用于定义所有模块的内存格式约定,详见内存数据类型教程
现在位于
datatypes中_convert文件里的宽松转换方法在 0.10.0 版本中将不再公开访问
预测#
现在预测器可以接受
pd.DataFrame,pd.Series,np.ndarray作为X或y,并返回与传入y相同类型的预测结果sktime现已支持多元预测器,所有核心接口方法在这种情况下都会返回合理的返回类型预测器是否能处理多元时间序列可以通过
get_tag("scitype:y")进行检查,它会返回"单变量","多元"或"两者"引入了更多标签,详见
registry/all_tags
时间序列分类#
引入了标签,详见
registry/all_tags
新增#
预测#
多元
ColumnEnsembleForecaster(#1082 #1349) @fkiraly @GuzalBulatovaUnobservedComponentsstatsmodels包装器 (#1394) @juanitorduzTrendForecaster(使用sklearn回归器处理值与时间索引的关系) (#1209) @tensorflow-as-tfProphet 自定义季节性 (#1378) @IlyasMoutawwakil
扩展了
EnsembleForecaster中的聚合功能 (#1190) @GuzalBulatovaForecastingHorizon支持更多输入类型,从索引类型构建时检测is_relative(#1169) @fkiraly
时间序列分类#
旋转森林时间序列分类器 (#1391) @MatthewMiddlehurst
转换器分类器 (#1180) @MatthewMiddlehurst
新版 Proximity forest (#733) @moradabaz
RISE 改进 (#975) @whackteachers
转换器#
基准测试和评估#
关键差异图 (#1277) @SveaMeyer13
分类实验 (#1260) @TonyBagnall
聚类实验 (#1221) @TonyBagnall
分类实验的更改 (#1137) @TonyBagnall
文档#
测试框架#
修复#
重构 TSC:DrCIF 和 CIF 到新接口 (#1269) @MatthewMiddlehurst
重构 TSC:TDE 添加和 HC2 文档 (#1357) @MatthewMiddlehurst
重构 TSC:Arsenal 添加和 HC2 文档 (#1305) @MatthewMiddlehurst
重构 TSC:_cboss (#1295) @BINAYKUMAR943
重构 TSC:rocket 分类器 (#1239) @victordremov
重构 TSC:基于字典的分类器 (#1084) @MatthewMiddlehurst
重构测试:使用评估器进行评估器测试参数设置 (#1361) @Aparna-Sakshi
更新 _data_io.py (#1308) @TonyBagnall
数据 IO (#1248) @TonyBagnall
[BUG] 契约测试修复 (#1392) @MatthewMiddlehurst
[BUG] 数据写入更新和 JapaneseVowels 数据集修复 (#1278) @MatthewMiddlehurst
[BUG] 修复
test_all_estimators中 ESTIMATOR_TEST_PARAMS 的引用 (#1406) @fkiraly[BUG] 修复
TransformedTargetForecaster中的微小静默问题 (#845) @aiwalter[BUG] pytest 失败后 C 编译器的故障排除 (#1262) @tensorflow-as-tf
[BUG] 单变量时间序列分类教程文档中的 bug 修复 (#1140) @BINAYKUMAR943
[BUG] bug 修复 - convertIO 中对 np.ndarray 的损坏引用 (#1191) @fkiraly
[BUG] STSF 测试修复 (#1170) @MatthewMiddlehurst
[BUG]
BaseObject.clone_tags中的set_tags调用使用了不正确的签名 (#1179) @fkiraly[文档] 更新转换器 docstrings Boss (#1320) @thayeylolu
[文档] 更新 exp_smoothing.py 的 docstring (#1339) @mathco-wf
[文档] 更新了 CONTRIBUTING.md 中的链接 (#1428) @Aparna-Sakshi
[文档] 更正贡献指南中的错别字 (#1398) @juanitorduz
[文档] 修复 README 中的微小错别字 (#1416) @justinshenk
[文档] 修复引用页面中的错别字 (#1310) @AreloTanoh
[文档] EnsembleForecaster 和 AutoEnsembleForecaster 的 docstring 示例 (#1382) @aiwalter
[文档] bats, tbats, arima, croston 的 docstring 改进 (#1309) @Lovkush-A
[文档] 更新 detrend 模块的 docstrings (#1335) @SveaMeyer13
[文档] 更新 ThetaLinesTransformer 的 docstring (#1312) @GuzalBulatova
[文档] 更新 ColumnwiseTransformer 和 TabularToSeriesAdaptor 的 docstrings (#1322) @GuzalBulatova
[文档] 添加 cosine 的描述和链接 (#1326) @AreloTanoh
[文档] naive forecasting docstring 编辑 (#1333) @AreloTanoh
[文档] 修复 transformations.rst 中的错别字 (#1324) @AreloTanoh
[文档] 在安装和 readme 中添加 conda-forge max dependency recipe (#1226) @fkiraly
[文档] 在预测教程中添加目录 (#1200) @bilal-196
[文档] 完成 EnsembleForecaster 的 docstring (#1165) @GuzalBulatova
[文档] 在分类器的 docstrings 中添加示例 (#1164) @ltoniazzi
[文档] 在 KNeighborsTimeSeriesClassifier 的 docstring 中添加示例 (#1155) @ltoniazzi
[维护] 移除依赖第三方网站的数据下载器测试,更改 test_time_series_neighbors 的测试数据集 (#1258) @TonyBagnall
[维护] 格式化设置文件 (#1236) @TonyBagnall
所有贡献者: @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#
新增#
新模块(实验性):时间序列聚类 (#1049) @TonyBagnall
新模块(实验性):成对转换器,表格数据和面板数据上的核/距离 - 基类、示例、扩展模板 (#1071) @fkiraly @chrisholder
新模块(实验性):序列标注和 PyOD 适配器 (#1021) @fkiraly @satya-pattnaik
新预测器:Croston 方法 (#730) @Riyabelle25
新转换器:多元去趋势 (#1042) @SveaMeyer13
新转换器:ThetaLines 转换器 (#923) @GuzalBulatova
特征/信息准则 get_fitted_params (#942) @ltsaprounis
文档:创建 add_dataset.rst (#970) @Riyabelle25
变更#
预测器重构:BaseGridSearch, ForecastingGridSearchCV, ForecastingRandomizedSearchCV (#1034) @GuzalBulatova
预测器重构:polynomial trend forecaster (#1003) @thayeylolu
预测器重构:Stacking, Multiplexer, Ensembler 和 TransformedTarget Forecasters (#977) @thayeylolu
预测器重构:statsmodels 和 theta forecaster (#1029) @thayeylolu
预测器重构:reducer (#1031) @Lovkush-A
预测器重构:ensembler, online-ensembler-forecaster 及其派生类 (#1015) @thayeylolu
预测器重构:TbatAdapter (#1017) @thayeylolu
预测器重构:PmdArimaAdapter (#1016) @thayeylolu
预测器重构:Prophet (#1005) @thayeylolu
预测器重构:CrystallBall Forecaster (#1004) @thayeylolu
预测器重构:移除 _SktimeForecaster 和 horizon mixins (#1088) @fkiraly
将调优教程添加到预测示例 notebook 中 - fkiraly 在 #1047 基础上的建议 (#1053) @fkiraly
分类:基于核方法的重构 (#875) @MatthewMiddlehurst
分类:catch22 重做 (#864) @MatthewMiddlehurst
转换器:改进 Multivariate-Detrending (#1077) @SveaMeyer13
更新 plot_series 以统一处理 pd.Int64 和 pd.Range 索引 (#892) @Dbhasin1
包含浮点数作为窗口长度 (#827) @thayeylolu
更新加载数据的文档 (#885) @SveaMeyer13
[文档] 更新 docstrings 以告知方法接受 ForecastingHorizon (#872) @julramos
修复#
修复 naive 模型中使用 seasonal periodicity 和 mean 策略的问题 (来自 PR #917) (#1124) @mloning
Bug 修复 - forecasters 应该使用内部接口 _all_tags 进行自检,而不是 _has_tag (#1068) @fkiraly
修复 Minirocket 分类器中的种子问题 (#1094) @Lovkush-A
修复 docstrings 中的微小错别字 (#889) @GuzalBulatova
BaseCluster 类问题解决 (#1075) @chrisholder
清理 metric docstrings 并修复 _RelativeLossMixin 中的 bug (#999) @RNKuhns
Arsenal 修复、扩展功能和 HC1 单元测试 (#902) @MatthewMiddlehurst
微小 bug 修复 - 在 forecasters 中进行输入检查之前将 _is_fitted 设置为 False (#941) @fkiraly
升级 nbqa (#998) @MarcoGorelli
所有贡献者: @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#
修复#
变更#
ThetaForecaster 现在可与 initial_level 配合使用 (#769) @yashlamba
撤销 pmdarima 热修复并避免使用 pmdarima 1.8.1 (#831) @aaronreidsmith
新增#
向 BoxCoxTransformer 添加用于 lambda 估计的 Guerrero 方法 (#778) (#791) @GuzalBulatova
实现 DirRec 归约策略 (#779) @luiszugasti
向 BaseGridSearch 添加截止点,以便在 evaluate 中使用任何网格搜索… (#825) @aiwalter
为 Imputer 和 HampelFilter 添加 pd.DataFrame 转换 (#830) @aiwalter
为 Imputer 和 HampelFilter 添加 skip-inverse-transform 标签 (#788) @aiwalter
添加了对 alibi-detect 的引用 (#815) @satya-pattnaik
所有贡献者: @GuzalBulatova, @RNKuhns, @aaronreidsmith, @aiwalter, @kachayev, @ltsaprounis, @luiszugasti, @mloning, @satya-pattnaik 和 @yashlamba
[0.6.0] - 2021-04-15#
修复#
更正 check_X 和相关函数的文档字符串 (#701) @Lovkush-A
修复 #694 中提到的错误 (#697) @AidenRushbrooke
修复 CONTRIBUTING.md 中的拼写错误 (#688) @luiszugasti
HIVE-COTE 1.0 修复 (#678) @MatthewMiddlehurst
变更#
修改预测归约的测试 (#756) @Lovkush-A
升级 nbqa (#794) @MarcoGorelli
docs 文件夹中的 master 到 main 转换,关闭 #644 (#667) @ayan-biswas0412
暂时从单元测试中移除 MSM (#698) @TonyBagnall
更新数据集名称 (#676) @TonyBagnall
新增#
为 EnsembleForecaster 添加 agg 参数 (#774) @Ifeanyi30
多路复用预测器 (#715) @koralturkk
将 TSF 分类器重构为 TSF 回归器 (#693) @luiszugasti
Knn 单元测试 (#705) @TonyBagnall
Knn 转置修复 (#689) @TonyBagnall
预测的多输出归约策略 (#659) @Lovkush-A
所有贡献者: @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#
修复#
解决 Bug #640 (#642) @patrickzib
Ed knn (#638) @TonyBagnall
变更#
基准测试 issue141 (#492) @ViktorKaz
Catch22 重构和多线程 (#615) @MatthewMiddlehurst
新增#
创建新的工厂方法用于通过归约进行预测 (#635) @Lovkush-A
添加扩展窗口分割器 (#627) @koralturkk
预测用户指南 (#595) @Lovkush-A
所有贡献者: @Lovkush-A, @MatthewMiddlehurst, @RNKuhns, @TonyBagnall, @ViktorKaz, @aiwalter, @goastler, @koralturkk, @mloning, @pabworks, @patrickzib 和 @xuyxu
[0.5.2] - 2021-01-13#
修复#
修复 KNN 中的 _fit(X) (#610) @TonyBagnall
UEA TSC 模块改进 2 (#599) @TonyBagnall
修复 sktime.classification.frequency_based 未找到错误 (#606) @Hephaest
UEA TSC 模块改进 1 (#579) @TonyBagnall
放宽 numba 版本锁定 (#593) @dhirschfeld
所有贡献者: @Hephaest, @MatthewMiddlehurst, @TonyBagnall, @aiwalter 和 @dhirschfeld
[0.5.1] - 2020-12-29#
新增#
添加 ARIMA (#559) @HYang1996
添加示例笔记本 Window Splitters (#555) @juanitorduz
在文档字符串中添加 SlidingWindowSplitter 可视化 (#554) @juanitorduz
修复#
所有贡献者: @HYang1996, @TonyBagnall, @afzal442, @aiwalter, @angus924, @juanitorduz, @mloning 和 @ngupta23
[0.5.0] - 2020-12-19#
新增#
添加 HCrystalBall 包装器 (#485) @MichalChromcak
使用 stumpy 添加矩阵剖面 (#471) @utsavcoding
为 RISE 实现 feature_importances_ 属性 (#497) @AaronX121
为 RandomIntervalSpectralForest 添加并行化支持 (#482) @AaronX121
CI 在笔记本和 Python 脚本上运行 black 格式化工具 (#437) @MarcoGorelli
实现 catch22 转换器、CIF 分类器和基于字典的清理功能 (#453) @MatthewMiddlehurst
添加将数据集写入 ts 文件功能 (#438) @whackteachers
添加从包含长格式数据的 csv 文件加载的功能 (#442) @AidenRushbrooke
变更#
[文档]更新 load_data.py (#496) @Afzal-Ind
更新 forecasting.py (#487) @raishubham1
更新基本运动描述 (#475) @vollmersj
[文档] 更新 benchmarking/data.py 中的文档 (#489) @Afzal-Ind
SFA/WEASEL 的功能和性能改进 (#457) @patrickzib
修复#
修复 plot-series (#533) @gracewgao
[文档] 修复 RandomIntervalSpectralForest 损坏的文档字符串 (#473) @AaronX121
重新添加分类器中缺失的 bibtex 引用 (#468) @whackteachers
升级 pre-commit 版本,在笔记本上再次运行 (#469) @MarcoGorelli
修复 AutoETS 中的错误 (#445) @HYang1996
移除#
所有贡献者: @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#
新增#
变更#
改进字典分类器的性能 (#398) @patrickzib
修复#
所有贡献者: @Emiliathewolf, @alwinw, @evanmiller29, @kkoziara, @krumeto, @mloning 和 @patrickzib
[0.4.2] - 2020-10-01#
新增#
具有自动拟合能力的 ETSModel (#393) @HYang1996
WEASEL 分类器 (#391) @patrickzib
美国随时间变化的多元消费数据集 (#385) @SebasKoel
修复#
变更#
重构 SFA 实现(附加功能和速度改进) (#389) @patrickzib
所有贡献者: @HYang1996, @SebasKoel, @fkiraly, @akanz1, @alwinw, @big-o, @brettkoonce, @mloning, @patrickzib
[0.4.1] - 2020-07-09#
新增#
新的 sktime 标志 @mloning
TemporalDictionaryEnsemble (#292) @MatthewMiddlehurst
ShapeDTW (#287) @Multivin12
更新了 sktime 美术作品(标志) @mloning
带有时间序列森林特征重要性图的示例笔记本 (#319) @HYang1996
ACSF1 数据集 (#314) @BandaSaiTejaReddy
从 3D numpy 数组到嵌套 pandas DataFrame 的数据转换函数 (#304) @vedazeren
变更#
在教程中替换了 gunpoint 数据集,添加了 OSULeaf 数据集 (#295) @marielledado
更新了贡献指南 (#301) @Ayushmaanseth
修复#
KNN 与 sklearn 的兼容性 (#310) @Cheukting
所有贡献者: @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 的实现:
Pipeline和GridSearchCV移除
HomogeneousColumnEnsembleClassifier,转而使用更灵活的ColumnEnsembleClassifier
修复#
来自 scikit-learn 的弃用警告和未来警告
来自 statsmodels 的用户警告