SklearnRegressorPipeline#
- class SklearnRegressorPipeline(regressor, transformers)[source]#
转换器和回归器的管道。
- SklearnRegressorPipeline 将转换器和单个回归器串联起来。
类似于 RegressorPipeline,但使用表格型的 sklearn 回归器。
- 该管道由 sktime 转换器列表和一个回归器构成,
即遵循 BaseTransformer 接口的转换器,回归器遵循 scikit-learn 回归器接口。
- 转换器列表可以是未命名的(一个简单的转换器列表),
也可以是字符串命名的(一个字符串和估计器对的列表)。
- 对于转换器 trafo1, trafo2, …, trafoN 的列表和一个回归器 reg,
该管道的行为如下:
- fit(X, y) - 通过在 X 上运行 trafo1.fit_transform 改变状态,
然后在 trafo1.fit_transform 的输出上运行 trafo2.fit_transform,以此类推,顺序执行,其中 trafo[i] 接收 trafo[i-1] 的输出,然后用转换为 numpy 的 trafo[N] 的输出作为 X,输入 self.fit 的 y 保持不变,运行 reg.fit。X 如果是 Panel scientific type,则转换为 numpyflat mtype;如果 X 是 Table scientific type,则转换为 numpy2D mtype。
- predict(X) - 结果是执行 trafo1.transform、trafo2.transform 等
(其中 trafo[i].transform 的输入是 trafo[i-1].transform 的输出)的结果,然后对 trafoN.transform 的 numpy 转换输出运行 reg.predict,并返回 reg.predict 的输出。trasfoN.transform 的输出会像在 fit 中一样转换为 numpy。
- get_params, set_params 使用 sklearn 兼容的嵌套接口。
如果列表未命名,则使用类名生成名称;如果名称不唯一,则每个名称字符串后追加 f”_{str(i)}”,
其中 i 是该不唯一字符串在名称列表中(包括当前名称)出现的总次数。
- SklearnRegressorPipeline 也可以通过使用 sktime 转换器和 sklearn 回归器之间的魔术乘法来创建,
- 并且 my_trafo1, my_trafo2 继承自 BaseTransformer,例如,my_trafo1 * my_trafo2 * my_reg 将得到与构造函数 SklearnRegressorPipeline(regressor=my_reg, transformers=[t1, t2]) 获得的对象相同的结果。
魔术乘法也可以用于 (str, transformer) 对,
- 只要链中的一个元素是转换器即可。
参数:
- regressorsklearn 回归器,即继承自 sklearn RegressorMixin
- 这是一个“蓝图”回归器,调用 fit 时状态不会改变。
transformerssktime 转换器列表,或者
- sktime 转换器的元组 (str, transformer) 列表,这些是“蓝图”转换器,调用 fit 时状态不会改变。
属性:
- regressor_sklearn 回归器,是 regressor 中的回归器的克隆
- 调用 fit 时,该克隆会在管道中进行拟合。
transformers_sktime 转换器的元组 (str, transformer) 列表
- 是 transformers 中在管道中拟合的转换器的克隆,总是采用 (str, transformer) 格式,即使 transformers 只是一个列表,未在 transformers 中传递的字符串是唯一生成的字符串,transformers_ 中的第 i 个转换器是 transformers 中第 i 个转换器的克隆。
示例
通过 dunder 方法的替代构建
>>> from sklearn.neighbors import KNeighborsRegressor >>> from sktime.datasets import load_unit_test >>> from sktime.regression.compose import SklearnRegressorPipeline >>> from sktime.transformations.series.exponent import ExponentTransformer >>> from sktime.transformations.series.summarize import SummaryTransformer >>> X_train, y_train = load_unit_test(split="train") >>> X_test, y_test = load_unit_test(split="test") >>> t1 = ExponentTransformer() >>> t2 = SummaryTransformer() >>> pipeline = SklearnRegressorPipeline(KNeighborsRegressor(), [t1, t2]) >>> pipeline = pipeline.fit(X_train, y_train) >>> y_pred = pipeline.predict(X_test)
方法
>>> pipeline = t1 * t2 * KNeighborsRegressor()
check_is_fitted
([method_name])检查估计器是否已拟合。
clone
clone_tags
(estimator[, tag_names])从另一个对象克隆标签作为动态覆盖。
create_test_instance
([parameter_set])使用第一个测试参数集构造类的实例。
create_test_instances_and_names
([parameter_set])创建所有测试实例列表及其名称列表。
fit
(X, y)将时间序列回归器拟合到训练数据。
get_class_tag
(tag_name[, tag_value_default])从类获取类标签值,带有父类的标签级别继承。
get_class_tags
get_config
get_fitted_params
([deep])获取拟合参数。
get_param_defaults
get_param_names
([sort])获取对象的参数名称。
get_params
([deep])获取 transformers 中估计器的参数。
get_tag
(tag_name[, tag_value_default, ...])从实例获取标签值,带有标签级别继承和覆盖。
get_tags
get_test_params
([parameter_set])返回估计器的测试参数设置。
is_composite
load_from_path
(serial)从文件位置加载对象。
load_from_serial
(serial)从序列化内存容器加载对象。
predict
(X)预测 X 中序列的标签。
reset
save
([path, serialization_format])将序列化的自身保存到字节类对象或 (.zip) 文件。
score
(X, y[, multioutput])在 X 上评估预测标签与真实标签的得分。
set_config
(**config_dict)将配置标志设置为给定值。
set_params
(**kwargs)设置 transformers 中估计器的参数。
set_random_state
([random_state, deep, ...])设置自身的 random_state 伪随机种子参数。
set_tags
(**tag_dict)将实例级别标签覆盖设置为给定值。
-
克隆是一个没有共享引用、处于初始化后状态的不同对象。此函数等同于返回
sklearn.clone
的self
。 clone_tags
(estimator[, tag_names])等同于构造一个
type(self)
的新实例,使用self
的参数,即type(self)(**self.get_params(deep=False))
。如果在
self
上设置了配置,克隆也会具有与原始对象相同的配置,等同于调用cloned_self.set_config(**self.get_config())
。在值上也等同于调用
self.reset
,区别在于clone
返回一个新对象,而不是像reset
那样修改self
。Raises:
- deep布尔值,可选,默认为 True
get_tag
(tag_name[, tag_value_default, ...])
-
检查
_is_fitted
属性是否存在且为True
。is_fitted
属性应在对象的fit
方法调用中设置为True
。 clone
如果不是,则抛出
NotFittedError
。method_namestr, 可选
-
每个
scikit-base
兼容对象都有一个标签字典。标签可用于存储有关对象的元数据,或控制对象的行为。 create_test_instance
([parameter_set])标签是特定于实例
self
的键值对,它们是对象构造后不会更改的静态标志。clone_tags
从另一个对象estimator
设置动态标签覆盖。clone_tags
方法只应在对象的__init__
方法中,在构造期间,或直接在__init__
之后调用。动态标签被设置为
estimator
中标签的值,名称由tag_names
指定。tag_names
的默认值是将estimator
中的所有标签写入self
。当前的标签值可以通过
get_tags
或get_tag
查看。estimator:class:BaseObject 或其派生类的实例
- parameter_setstr, 默认为 "default"
create_test_instances_and_names
([parameter_set])
- objscls 实例列表
fit
(X, y)
- 状态更改
get_class_tag
(tag_name[, tag_value_default])- 将状态更改为“已拟合”。
写入 self
- 将 self.is_fitted 设置为 True。设置以 “_” 结尾的拟合模型属性。
Xsktime 兼容的时间序列面板数据容器,Panel scientific type
- regressorsklearn 回归器,即继承自 sklearn RegressorMixin
- 用于拟合估计器的时间序列。
可以是
Panel
scitype 的任何 mtype,例如pd-multiindex: pd.DataFrame,列为变量,索引为 pd.MultiIndex,第一级为实例索引,第二级为时间索引。
numpy3D: 3D np.array (任意维数,等长序列),形状为 [n_instances, n_dimensions, series_length]
或任何其他支持的
Panel
mtypemtype 列表请参阅
datatypes.SCITYPE_REGISTER
规范请参阅
examples/AA_datatypes_and_datasets.ipynb
并非所有估计器都支持具有多元或不等长序列的面板,详细信息请参阅标签参考。
ysktime 兼容的表格数据容器,Table scientific type
- 1D 可迭代对象,形状为 [n_instances] 或 2D 可迭代对象,形状为 [n_instances, n_dimensions],用于拟合的类别标签,第 0 个索引对应于 X 中的实例索引,第 1 个索引(如果适用)对应于 X 中的多输出向量索引,支持的 sktime 类型:np.ndarray (1D, 2D), pd.Series, pd.DataFrame
self自身的引用。
- params字符串到任意类型的映射
- Notes
通过创建一个拟合模型来改变状态,该模型更新以“_”结尾的属性并将 is_fitted 标志设置为 True。
classmethod get_class_tag(tag_name, tag_value_default=None)[source]#
-
每个
scikit-base
兼容对象都有一个标签字典,用于存储关于对象的元数据。 get_class_tags
get_class_tag
方法是一个类方法,它检索标签的值,仅考虑类级别的标签值和覆盖。它返回对象中名称为
tag_name
的标签的值,考虑标签覆盖,优先级从高到低依次为:在类的
_tags
属性中设置的标签。在父类的
_tags
属性中设置的标签,按继承顺序排列。
不考虑在实例上通过
set_tags
或clone_tags
设置的动态标签覆盖,这些是在实例上定义的。要检索带有潜在实例覆盖的标签值,请改用
get_tag
方法。tag_namestr
-
get_class_tags
方法是一个类方法,它检索标签的值,仅考虑类级别的标签值和覆盖。 get_config
标签是特定于实例
self
的键值对,它们是对象构造后不会更改的静态标志。clone_tags
从另一个对象estimator
设置动态标签覆盖。它返回一个字典,其键是类或其任何父类中设置的任何
_tags
属性的键。值是相应的标签值,覆盖优先级从高到低依次为:
实例可以根据超参数覆盖这些标签。
在父类的
_tags
属性中设置的标签,按继承顺序排列。
不考虑在实例上通过
set_tags
或clone_tags
设置的动态标签覆盖,这些是在实例上定义的。要检索带有潜在实例覆盖的标签,请改用
get_tags
方法。要包含动态标签的覆盖,请使用
get_tags
。要检索带有潜在实例覆盖的标签值,请改用
get_tag
方法。collected_tagsdict
-
配置是
self
的键值对,通常用作控制行为的瞬时标志。 get_fitted_params
([deep])get_config
返回动态配置,这些配置会覆盖默认配置。默认配置在类或其父类的类属性
_config
中设置,并会被通过set_config
设置的动态配置覆盖。配置在
clone
或reset
调用中保留。config_dictdict
- 所需状态
get_param_defaults
- 要求状态为“已拟合”。
deepbool, 默认为 True
- regressorsklearn 回归器,即继承自 sklearn RegressorMixin
- 是否返回组件的拟合参数。
如果为 True,将返回此对象的参数名称 : 值字典,包括可拟合组件(= BaseEstimator 值参数)的拟合参数。
如果为 False,将返回此对象的参数名称 : 值字典,但不包括组件的拟合参数。
fitted_params键为 str 的字典
- params字符串到任意类型的映射
- 拟合参数字典,键值对为 paramname : paramvalue
始终包含:此对象的所有拟合参数,如通过
get_param_names
获得的,值为该键对应的此对象的拟合参数值。
- 获取对象的参数默认值。
default_dict: dict[str, Any]
- 获取对象的参数名称。
sortbool, 默认为 True
-
get_tag
方法从实例检索名称为tag_name
的单个标签的值,考虑标签覆盖,优先级从高到低依次为: get_tags
标签是特定于实例
self
的键值对,它们是对象构造后不会更改的静态标志。clone_tags
从另一个对象estimator
设置动态标签覆盖。通过在实例上调用
set_tags
或clone_tags
设置的标签,在实例构造时。
要检索的标签名称。
在父类的
_tags
属性中设置的标签,按继承顺序排列。
不考虑在实例上通过
set_tags
或clone_tags
设置的动态标签覆盖,这些是在实例上定义的。- regressorsklearn 回归器,即继承自 sklearn RegressorMixin
- 标签值的名称。
tag_value_default任意类型,可选;默认为 None
- 未找到标签时的默认/备用值。
raise_errorbool
- 未找到标签时是否抛出
ValueError
。 tag_valueAny
- params字符串到任意类型的映射
self
中tag_name
标签的值。如果未找到,且raise_error
为 True,则抛出错误,否则返回tag_value_default
。ValueError,如果
raise_error
为True
。
- 如果由于错误的
__init__
导致克隆不符合规范,则抛出 RuntimeError。
-
get_tags
方法返回一个标签字典,其键是类或其任何父类中设置的任何_tags
属性的键,或者通过set_tags
或clone_tags
设置的标签的键。 get_test_params
([parameter_set])标签是特定于实例
self
的键值对,它们是对象构造后不会更改的静态标志。clone_tags
从另一个对象estimator
设置动态标签覆盖。collected_tagsdict
实例可以根据超参数覆盖这些标签。
在实例构造时。
要检索的标签名称。
在父类的
_tags
属性中设置的标签,按继承顺序排列。
不考虑在实例上通过
set_tags
或clone_tags
设置的动态标签覆盖,这些是在实例上定义的。
- 复合对象是包含其他对象作为参数的对象。在实例上调用,因为这可能因实例而异。
load_from_path
(serial)composite: bool,self 是否包含一个参数是 BaseObject
-
是否已调用
fit
。 检查对象的
_is_fitted` 属性,该属性在对象构造期间应初始化为 ``False
,并在对象的 fit 方法调用中设置为 True。bool
- serialZipFile(path).open("object) 的结果
load_from_serial
(serial)
-
serial
cls.save(None)
输出的第一个元素 predict
(X)
- 要预测标签的时间序列。
reset
- regressorsklearn 回归器,即继承自 sklearn RegressorMixin
- 用于拟合估计器的时间序列。
y_predsktime 兼容的表格数据容器,Table scitype
pd-multiindex: pd.DataFrame,列为变量,索引为 pd.MultiIndex,第一级为实例索引,第二级为时间索引。
numpy3D: 3D np.array (任意维数,等长序列),形状为 [n_instances, n_dimensions, series_length]
或任何其他支持的
Panel
mtypemtype 列表请参阅
datatypes.SCITYPE_REGISTER
规范请参阅
examples/AA_datatypes_and_datasets.ipynb
并非所有估计器都支持具有多元或不等长序列的面板,详细信息请参阅标签参考。
ysktime 兼容的表格数据容器,Table scientific type
- params字符串到任意类型的映射
-
将
self
设置为构造函数调用后直接拥有的状态,具有相同的超参数。通过set_config
设置的配置值也得以保留。 save
([path, serialization_format])reset
调用会删除任何对象属性,除了超参数 =
__init__
的写入到self
的参数,例如self.paramname
,其中paramname
是__init__
的参数。包含双下划线字符串“__”的对象属性。例如,名为“__myattr”的属性会被保留。
配置属性,配置会原样保留。即,
reset
前后get_config
的结果相等。类和对象方法,以及类属性也不受影响。
等同于
clone
,区别在于reset
修改self
而不是返回一个新对象。调用
self.reset()
后,self
在值和状态上等同于构造函数调用 ``type(self)(**self.get_params(deep=False))`` 后获得的对象。将类实例重置到干净的初始化后状态,但保留当前的超参数值。
-
行为:如果
path
为 None,则返回内存中的序列化自身;如果path
是文件位置,则将自身存储为该位置的 zip 文件。 score
(X, y[, multioutput])保存的文件是 zip 文件,包含以下内容:_metadata - 包含自身的类,即 type(self);_obj - 序列化的自身。此类使用默认序列化(pickle)。
pathNone 或文件位置 (str 或 Path)
- regressorsklearn 回归器,即继承自 sklearn RegressorMixin
- 如果为 None,自身将保存到内存对象;如果为文件位置,自身将保存到该文件位置。如果
path=”estimator”,则会在当前工作目录生成一个 zip 文件
estimator.zip
。path=”/home/stored/estimator”,则会在
/home/stored/
中存储一个 zip 文件estimator.zip
。serialization_format: str, 默认为 “pickle”
用于序列化的模块。可用选项为 “pickle” 和 “cloudpickle”。请注意,非默认格式可能需要安装其他软依赖项。
- 如果
path
为 None - 内存中的序列化自身 如果
path
为文件位置 - 指向该文件的 ZipFile
- params字符串到任意类型的映射
- pd-multiindex: pd.DataFrame,列为变量,索引为 pd.MultiIndex,第一级为实例索引,第二级为时间索引;numpy3D: 3D np.array (任意维数,等长序列),形状为 [n_instances, n_dimensions, series_length] 或任何其他支持的 Panel mtype;mtype 列表请参阅 datatypes.SCITYPE_REGISTER;规范请参阅 examples/AA_datatypes_and_datasets.ipynb
set_config
(**config_dict)- regressorsklearn 回归器,即继承自 sklearn RegressorMixin
- y形状为 [n_instances, n_dimensions] 的 2D np.array 或形状为 [n_instances] 的 1D np.array - 用于拟合的回归标签,索引对应于 X 中的实例索引。
multioutputstr, 可选 (默认为 "uniform_average")
- {“raw_values”, “uniform_average”, “variance_weighted”},形状为 (n_outputs,) 的 array-like 或 None,默认为 “uniform_average”。定义如何聚合多个输出的得分。Array-like 值定义用于平均得分的权重。
float (默认) 或 1D np.array of float
- predict(X) 与 y 之间的 R 平方得分;如果 multioutput=”uniform_average” 或 “variance_weighted”,或者 y 为单变量,则为 float;如果 multioutput=”raw_values” 且 y 为多变量,则为 1D np.array。
- params字符串到任意类型的映射
- 配置名称 : 配置值对的字典。有效的配置、值及其含义如下所示。
displaystr, “diagram” (默认), 或 “text”
- jupyter kernel 如何显示自身的实例
set_params
(**kwargs)- regressorsklearn 回归器,即继承自 sklearn RegressorMixin
- 配置名称 : 配置值对的字典。通过嵌套继承从 _config 类属性收集,然后是 _onfig_dynamic 对象属性中的任何覆盖和新标签。
“diagram” = html 盒图表示
- “text” = 字符串打印输出
print_changed_onlybool, 默认为 True
打印自身时是否仅列出与默认值不同的自身参数 (False),或所有参数名称和值 (False)。不进行嵌套,即仅影响自身而非组件估计器。
warningsstr, “on” (默认), 或 “off”
- 是否抛出警告,仅影响 sktime 的警告
“on” = 将抛出 sktime 的警告
- “off” = 将不抛出 sktime 的警告
backend:parallelstr, 可选, 默认为 "None"
广播/向量化时用于并行化的后端,以下之一:
“None”: 顺序执行循环,简单的列表推导
- “loky”, “multiprocessing” 和 “threading”: 使用
joblib.Parallel
“joblib”: 自定义和第三方
joblib
后端,例如spark
“dask”: 使用
dask
,需要在环境中安装dask
包“ray”: 使用
ray
,需要在环境中安装ray
包backend:parallel:paramsdict, 可选, 默认为 {} (不传递参数)
作为配置传递给并行化后端的附加参数。有效键取决于
backend:parallel
的值。“None”: 无附加参数,
backend_params
被忽略。
- “loky”, “multiprocessing” 和 “threading”: 默认
joblib
后端,此处可以传递joblib.Parallel
的任何有效键,例如n_jobs
,除了backend
,它由backend
直接控制。如果未传递n_jobs
,它将默认为-1
,其他参数将默认为joblib
的默认值。 作为配置传递给并行化后端的附加参数。有效键取决于
backend:parallel
的值“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
“ray”:可以传递以下键
“ray_remote_args”:
ray.init
的有效键字典- “shutdown_ray”:bool 类型,默认为 True;False 防止
ray
在并行化后 关闭。
- “shutdown_ray”:bool 类型,默认为 True;False 防止
“logger_name”:str 类型,默认为“ray”;要使用的日志记录器名称。
“mute_warnings”:bool 类型,默认为 False;如果为 True,则抑制警告
- params字符串到任意类型的映射
- self指向自身的引用。
通过创建一个拟合模型来改变状态,该模型更新以“_”结尾的属性并将 is_fitted 标志设置为 True。
改变对象状态,将 config_dict 中的配置复制到 self._config_dynamic。
- set_params(**kwargs)[来源]#
set_random_state
([random_state, deep, ...])有效的参数键可以通过
get_params()
列出。- params字符串到任意类型的映射
- self返回自身的实例。
- set_random_state(random_state=None, deep=True, self_policy='copy')[来源]#
set_tags
(**tag_dict)通过
self.get_params
找到名为random_state
的参数,并通过set_params
将它们设置为从random_state
派生的整数。这些整数是通过sample_dependent_seed
通过链式哈希抽样的,并保证种子随机生成器之间的伪随机独立性。根据
self_policy
,适用于self
中的random_state
参数,并且仅当deep=True
时适用于其余组件对象。注意:即使
self
没有random_state
参数,或者组件中没有random_state
参数,也会调用set_params
。因此,set_random_state
将重置任何scikit-base
对象,即使是那些没有random_state
参数的对象。- regressorsklearn 回归器,即继承自 sklearn RegressorMixin
- random_stateint、RandomState 实例或 None,默认为 None
伪随机数生成器,用于控制随机整数的生成。传递 int 可在多次函数调用中获得可重现的输出。
- 是否返回组件的拟合参数。
是否在 skbase 对象值参数(即组件估计器)中设置随机状态。
如果为 False,则仅设置
self
的random_state
参数(如果存在)。如果为 True,则也会设置组件对象中的
random_state
参数。
- self_policystr,{"copy", "keep", "new"} 之一,默认为 "copy"
“copy”:
self.random_state
设置为输入的random_state
“keep”:
self.random_state
保持不变“new”:
self.random_state
设置为一个新的随机状态,
该状态派生自输入的
random_state
,且通常与其不同
- params字符串到任意类型的映射
- self指向自身的引用
- set_tags(**tag_dict)[来源]#
-
get_class_tag
方法是一个类方法,它检索标签的值,仅考虑类级别的标签值和覆盖。标签是特定于实例
self
的键值对,它们是构造对象后不会更改的静态标志。它们可用于元数据检查或控制对象的行为。set_tags
将动态标签覆盖设置为tag_dict
中指定的值,其中键是标签名称,字典值是要设置的标签值。set_tags
方法应仅在对象的__init__
方法中(构造期间)或通过__init__
直接调用后调用。estimator:class:BaseObject 或其派生类的实例
- regressorsklearn 回归器,即继承自 sklearn RegressorMixin
- **tag_dictdict
标签名:标签值对的字典。
- params字符串到任意类型的映射
- Self
指向自身的引用。
- classmethod get_test_params(parameter_set='default')[来源]#
is_composite
- regressorsklearn 回归器,即继承自 sklearn RegressorMixin
- 要返回的测试参数集的名称,用于测试。如果未为某个值定义特殊参数,将返回 “default” 集。
要返回的测试参数集的名称,用于测试。如果未为某个值定义特殊参数,将返回 “default” 集。对于回归器,应提供一组“default”参数用于常规测试,以及一组“results_comparison”用于与之前记录的结果进行比较,如果常规集无法产生适合比较的概率。
- params字符串到任意类型的映射
- paramsdict 或 list of dict,默认为 {}
用于创建类测试实例的参数。每个字典是构造一个“有趣”测试实例的参数,例如 MyClass(**params) 或 MyClass(**params[i]) 创建一个有效的测试实例。create_test_instance 使用 params 中的第一个(或唯一的)字典。