ForecastingBenchmark#
- class ForecastingBenchmark(id_format: str | None = None, backend=None, backend_params=None)[源代码][源代码]#
预测基准。
针对通过数据集加载器、交叉验证分割策略和性能指标定义的一系列任务,运行一系列预测器,并将结果作为数据框返回(同时保存到文件)。
- 参数:
- id_format: str, 可选 (默认=None)
用于强制任务/估计器ID匹配特定格式的正则表达式
- 后端{“dask”, “loky”, “multiprocessing”, “threading”},默认值为 None。
如果指定,则为每个任务运行并行评估。
“None”: 按顺序执行循环,简单的列表推导
“loky”、“multiprocessing” 和 “threading”:使用
joblib.Parallel
循环“joblib”:自定义和第三方
joblib
后端,例如spark
“dask”: 使用
dask
,需要在环境中安装dask
包“dask_lazy”: 与 “dask” 相同
但将返回值更改为(延迟)``dask.dataframe.DataFrame``。
推荐:使用“dask”或“loky”进行并行评估。由于GIL和序列化后端(“dask”和“loky”使用的是``cloudpickle``,通常比“multiprocessing”中使用的标准``pickle``库更健壮),“threading”不太可能看到速度提升。
- backend_paramsdict, 可选
作为配置传递给后端的附加参数。直接传递给
utils.parallel.parallelize
。有效键取决于backend
的值:“None”: 没有额外参数,
backend_params
被忽略“loky”、“multiprocessing”和“threading”:默认的
joblib
后端
joblib.Parallel
的任何有效键都可以在这里传递,例如n_jobs
,除了backend
直接由backend
控制。如果未传递n_jobs
,它将默认为-1
,其他参数将默认为joblib
的默认值。 - “joblib”: 自定义和第三方joblib
后端,例如spark
。joblib.Parallel
的任何有效键都可以在这里传递,例如n_jobs
,在这种情况下,backend
必须作为backend_params
的键传递。如果未传递n_jobs
,它将默认为-1
,其他参数将默认为joblib
的默认值。 - “dask”: 可以传递dask.compute
的任何有效键,例如scheduler
方法
add_estimator
(estimator[, estimator_id])将一个估计器注册到基准测试中。
add_task
(dataset_loader, cv_splitter, scorers)将预测任务注册到基准测试中。
run
(output_file)运行基准测试。
- add_task(dataset_loader: Callable, cv_splitter: BaseSplitter, scorers: list[sktime.performance_metrics.base._base.BaseMetric], task_id: str | None = None)[源代码][源代码]#
将预测任务注册到基准测试中。
- 参数:
- 数据集加载器可调用对象
一个返回数据集的函数,例如来自 sktime.datasets。
- cv_splitterBaseSplitter 对象
用于生成验证折叠的分割器。
- 评分器BaseMetric 对象列表
每个 BaseMetric 输出都将包含在结果中。
- 任务IDstr, 可选 (默认=None)
基准任务的标识符。如果没有给出,则使用数据集加载器名称与cv_splitter类名称的组合。
- 返回:
- 该预测器的基准测试结果字典
- add_estimator(estimator: BaseEstimator, estimator_id: str | None = None)[源代码]#
将一个估计器注册到基准测试中。
- 参数:
- 估计器字典、列表或 BaseEstimator 对象
要添加到基准测试的估计器。如果是字典,键是用于自定义标识符ID的estimator_ids,值是估计器。如果是列表,每个元素都是一个估计器。estimator_ids是使用估计器的类名自动生成的。
- estimator_idstr, 可选 (默认=None)
估计器的标识符。如果没有给出,则使用估计器的类名。