MetadataRouter#

class sklearn.utils.metadata_routing.MetadataRouter(owner)[source]#

协调 router 对象的元数据路由。

此类由可以路由元数据的 元估计器 或函数使用,用于处理其元数据路由。路由信息以字典形式存储,结构为 {"object_name": RouterMappingPair(mapping, router)},其中 mappingMethodMapping 的实例,routerMetadataRequest 或另一个 MetadataRouter 实例。

在版本 1.3 中新增。

参数:
ownerobject

这些请求所属的对象。

add(*, method_mapping, **objs)[source]#

消费者 添加到 MetadataRouter

通过将消耗元数据的估计器作为命名对象以及方法映射传递,定义它们的方法与 router 方法之间的关系。

参数:
method_mappingMethodMapping

子级(消费者)方法与父级(router)方法之间的映射。

**objsdict

一个对象字典,通过调用 get_routing_for_object 提取其请求。

返回:
selfMetadataRouter

返回 self

add_self_request(obj)[source]#

self(作为 消费者)添加到 MetadataRouter

如果 router 也是一个 消费者,因此 router 本身需要包含在路由中,则使用此方法。传入的对象可以是估计器或 MetadataRequest

router 应该使用此方法而不是 add 来添加自身,因为它应该与 router 路由元数据的其他消费者对象区别对待。

参数:
objobject

这通常是 router 实例,即 get_metadata_routing() 实现中的 self。它也可以是 MetadataRequest 实例。

返回:
selfMetadataRouter

返回 self

consumes(method, params)[source]#

返回 router 或其子估计器中作为元数据消耗的参数。

此方法返回被 method 消耗的 params 子集。如果 paramrouter 本身或其任何子估计器(或其子估计器)的指定方法中使用,则认为它被消耗。

1.4 版本新增。

参数:
methodstr

要确定消耗参数的方法名称。

paramsiterable of str

要测试消耗情况的参数名称可迭代对象。

返回:
consumed_paramsset of str

params 中被此方法消耗的参数子集。

route_params(*, caller, params)[source]#

获取 消费者 请求的元数据值。

返回一个 Bunch,其中包含此 routercaller 方法需要路由的元数据,按每个 消费者 及其相应方法组织。

这可用于将所需的元数据传递给消费者中的相应方法。

参数:
callerstr

路由元数据所通过的 router 方法的名称。例如,如果在 router 的 fit 方法内部调用,则此值为 "fit"

paramsdict

提供的元数据字典。

返回:
paramsBunch

一个 Bunch,形式为 {"object_name": {"method_name": {metadata: value}}}

validate_metadata(*, method, params)[source]#

验证给定方法的元数据。

如果某些传入的元数据不被子对象理解,则会引发 TypeError

参数:
methodstr

路由元数据所通过的 router 方法的名称。例如,如果在 router 的 fit 方法内部调用,则此值为 "fit"

paramsdict

提供的元数据字典。