all_estimators#

all_estimators(estimator_types=None, filter_tags=None, exclude_estimators=None, return_names=True, as_dataframe=False, return_tags=None, suppress_import_stdout=True)[source]#

列出 sktime 中所有估计器或对象,按科学类型或标签划分。

此函数遍历模块并获取所有继承自 sktime 和 sklearn 基类的类。

不包括:基类本身、在测试模块中定义的类。

参数:
estimator_types: str, str 列表, 可选 (默认值=None)

要返回哪种类型的估计器。如果为 None,则不应用任何过滤器并返回所有估计器。如果为 str 或 str 列表,字符串定义在搜索中指定的科学类型,仅返回属于(至少)其中一个科学类型的估计器,可能的 str 值是 registry.BASE_CLASS_REGISTER(第一列)的条目,例如 'classifier', 'regressor', 'transformer', 'forecaster'

return_names: bool, 可选 (默认值=True)

如果为 True,估计器类名将包含在 all_estimators 返回值中,顺序为:名称、估计器类、可选标签,可以作为元组或 pandas.DataFrame 的列

如果为 False,估计器类名将从 all_estimators 返回值中移除。

filter_tags: dict (str 或 str 列表 或 re.Pattern), 可选 (默认值=None)

要获取有效标签字符串列表,请使用 registry.all_tags 实用函数。

filter_tags 按如下方式对返回的估计器进行子集化

  • 每个键/值对都是“与”/合取语句

  • 键是要子集的标签名称

  • 值 str 或字符串列表是标签值

  • 条件是“键必须等于值,或在集合 set(value) 中”

详细来说,返回结果将被过滤,仅保留其标签满足 filter_tags 指定的所有过滤条件的类。过滤条件如下,适用于 filter_tags 字典中的 tag_name: search_value 对,应用于类 klass

  • 如果 klass 没有名为 tag_name 的标签,则将其排除。否则,令 tag_value 为名为 tag_name 的标签的值。

  • 如果 search_value 是字符串,并且 tag_value 是字符串,则过滤条件是 search_value 必须与标签值匹配。

  • 如果 search_value 是字符串,并且 tag_value 是列表,则过滤条件是 search_value 包含在 tag_value 中。

  • 如果 search_valuere.Pattern,并且 tag_value 是字符串,则过滤条件是 search_value.fullmatch(tag_value) 为真,即正则表达式匹配标签值。

  • 如果 search_valuere.Pattern,并且 tag_value 是列表,则过滤条件是 tag_value 中至少有一个元素匹配正则表达式。

  • 如果 search_value 是可迭代的,则过滤条件是 search_value 中至少有一个元素满足上述应用于 tag_value 的条件。

注意:仅从 scikit-base 0.8.0 版本开始支持 re.Pattern

exclude_estimators: str, str 列表, 可选 (默认值=None)

要排除的估计器名称。

as_dataframe: bool, 可选 (默认值=False)

True:all_estimators 将返回一个 pandas.DataFrame,其中包含返回的所有属性的命名列。

False:all_estimators 将返回一个列表(估计器列表或元组列表,参见返回值)

return_tags: str 或 str 列表, 可选 (默认值=None)

要获取并返回每个估计器值的标签名称。有关有效标签字符串列表,请使用 registry.all_tags 实用函数。如果为 str 或 str 列表,则将获取 return_tags 中命名的标签值,并将其作为列或元组条目添加到每个估计器中。

suppress_import_stdoutbool, 可选。默认值=True

是否在导入时抑制标准输出打印。

返回值:
all_estimators 将返回以下之一
  1. 估计器列表,如果 return_names=Falsereturn_tags 为 None

2. 元组列表(可选估计器名称、类、可选估计器标签),如果 return_names=Truereturn_tags 不为 None

  1. 如果 as_dataframe = True 则为 pandas.DataFrame

如果是估计器列表

条目是与查询匹配的估计器,按估计器名称的字母顺序排列

如果是元组列表

与查询匹配的 (可选估计器名称, 估计器, 可选估计器标签) 列表,按估计器名称的字母顺序排列,其中 name 是作为字符串的估计器名称,是一个可选返回值;estimator 是实际的估计器;tags 是估计器在 return_tags 中每个标签的值,是一个可选返回值。

如果是 DataFrame

列名表示每列包含的属性。“estimators” 将是估计器列的名称,“names” 将是估计器类名列的名称,传入 return_tags 的字符串将作为所有可选请求的标签列的列名。

参考

修改自 scikit-learnall_estimators

示例

>>> from sktime.registry import all_estimators
>>> # return a complete list of estimators as pd.Dataframe
>>> all_estimators(as_dataframe=True)  
>>> # return all forecasters by filtering for estimator type
>>> all_estimators("forecaster")  
>>> # return all forecasters which handle missing data in the input by tag filtering
>>> all_estimators("forecaster", filter_tags={"capability:missing_values": True})