实用工具#

实用方法。

包内容#

类摘要#

classproperty

允许函数作为类级别属性访问。

函数#

convert_to_seconds

将描述时间长度的字符串转换为秒数。

deprecate_arg

当使用弃用参数时,用于发出警告的辅助方法。

downcast_nullable_types

为了支持ARIMA、CatBoost和LightGBM等某些估计器,将 IntegerNullable、BooleanNullable 类型向下转换为 Double、Boolean。

drop_rows_with_nans

删除所有数据帧或序列中包含任何 NaN 的行。

get_importable_subclasses

获取基础类的可导入子类。用于动态列出我们所有的估计器、转换器、组件和管道。

get_logger

获取具有关联名称的 logger。

get_random_seed

给定一个 numpy.random.RandomState 对象,生成一个表示另一个随机数生成器种子值的整数。或者,如果给定一个整数,则返回该整数。

get_random_state

使用种子生成一个 numpy.random.RandomState 实例。

get_time_index

确定给定数据中应作为时间索引使用的列。

import_or_raise

尝试按名称导入请求的库。如果导入失败,则引发 ImportError 或警告。

infer_feature_types

从给定的列表、pandas 或 numpy 输入创建一个 Woodwork 结构,并为列指定类型。如果未指定列的类型,则由 Woodwork 推断。

is_all_numeric

检查给定的 DataFrame 是否仅包含数值。

jupyter_check

获取代码是否在 Ipython 环境中运行(例如 Jupyter Notebook 或 Jupyter Lab)。

log_subtitle

使用副标题记录日志。

log_title

使用标题记录日志。

pad_with_nans

在开始的 num_to_pad 行中填充 nans。

safe_repr

将给定值转换为可以安全用于 repr 的字符串。

save_plot

如果指定了文件路径,则将 fig 保存到文件路径;如果未指定,则保存到默认位置。

属性摘要#

目录#

class evalml.utils.classproperty(func)[源]#

允许函数作为类级别属性访问。

示例: .. 代码块

class LogisticRegressionBinaryPipeline(PipelineBase):
    component_graph = ['Simple Imputer', 'Logistic Regression Classifier']

    @classproperty
    def summary(cls):
    summary = ""
    for component in cls.component_graph:
        component = handle_component_class(component)
        summary += component.name + " + "
    return summary

assert LogisticRegressionBinaryPipeline.summary == "Simple Imputer + Logistic Regression Classifier + "
assert LogisticRegressionBinaryPipeline().summary == "Simple Imputer + Logistic Regression Classifier + "
evalml.utils.convert_to_seconds(input_str)[源]#

将描述时间长度的字符串转换为秒数。

参数

input_str (str) – 需要解析并转换为秒数的字符串。

返回

如果导入成功,则返回该库。

抛出

AssertionError – 如果使用了无效单位。

示例

>>> assert convert_to_seconds("10 hr") == 36000.0
>>> assert convert_to_seconds("30 minutes") == 1800.0
>>> assert convert_to_seconds("2.5 min") == 150.0
evalml.utils.deprecate_arg(old_arg, new_arg, old_value, new_value)[源]#

当使用弃用参数时,用于发出警告的辅助方法。

参数
  • old_arg (str) – 旧/弃用参数的名称。

  • new_arg (str) – 新参数的名称。

  • old_value (Any) – 用户为旧参数传入的值。

  • new_value (Any) – 用户为新参数传入的值。

返回

如果 old_value 不是 None,则为 old_value,否则为 new_value

evalml.utils.downcast_nullable_types(data, ignore_null_cols=True)[源]#

为了支持ARIMA、CatBoost和LightGBM等某些估计器,将 IntegerNullable、BooleanNullable 类型向下转换为 Double、Boolean。

参数
  • data (pd.DataFrame, pd.Series) – 特征数据。

  • ignore_null_cols (bool) – 是否忽略包含 null 值的列的向下转换。默认为 True。

返回

初始化了逻辑类型信息的 DataFrame 或 Series,其中 BooleanNullable 已被转换为 Double。

返回类型

data

evalml.utils.drop_rows_with_nans(*pd_data)[源]#

删除所有数据帧或序列中包含任何 NaN 的行。

参数

*pd_data – pd.Series 或 pd.DataFrame 或 None 的序列

返回

pd.DataFrame 或 pd.Series 或 None 的列表

evalml.utils.get_importable_subclasses(base_class, used_in_automl=True)[源]#

获取基础类的可导入子类。用于动态列出我们所有的估计器、转换器、组件和管道。

参数
  • base_class (abc.ABCMeta) – 需要查找所有子类的基类。

  • used_in_automl – 并非所有组件/管道/估计器都用于 automl 搜索。如果为 True,则仅包含用于搜索的子类。这意味着排除与 ExtraTrees、ElasticNet 和 Baseline 估计器相关的类。

返回

子类列表。

evalml.utils.get_logger(name)[源]#

获取具有关联名称的 logger。

参数

name (str) – 要获取的 logger 名称。

返回

具有关联名称的 logger 对象。

evalml.utils.get_random_seed(random_state, min_bound=SEED_BOUNDS.min_bound, max_bound=SEED_BOUNDS.max_bound)[源]#

给定一个 numpy.random.RandomState 对象,生成一个表示另一个随机数生成器种子值的整数。或者,如果给定一个整数,则返回该整数。

为了防止特定库的随机数生成器接收无效输入,如果提供了整数值且该值超出范围“[min_bound, max_bound)”,则会使用模运算将该值投影到 min_bound(包含)和 max_bound(不包含)之间的范围内。

参数
  • random_state (int, numpy.random.RandomState) – 随机状态

  • min_bound (None, int) – 如果不是默认值 None,则为生成种子时的最小边界(包含)。必须小于 max_bound。

  • max_bound (None, int) – 如果不是默认值 None,则为生成种子时的最大边界(不包含)。必须大于 min_bound。

返回

随机数生成器的种子

返回类型

int

抛出

ValueError – 如果边界无效。

evalml.utils.get_random_state(seed)[源]#

使用种子生成一个 numpy.random.RandomState 实例。

参数

seed (None, int, np.random.RandomState 对象) – 用于生成 numpy.random.RandomState 的种子。必须介于 SEED_BOUNDS.min_bound 和 SEED_BOUNDS.max_bound(包含)之间。

抛出

ValueError – 如果输入种子不在可接受的范围内。

返回

一个 numpy.random.RandomState 实例。

evalml.utils.get_time_index(X: pandas.DataFrame, y: pandas.Series, time_index_name: str)[源]#

确定给定数据中应作为时间索引使用的列。

evalml.utils.import_or_raise(library, error_msg=None, warning=False)[源]#

尝试按名称导入请求的库。如果导入失败,则引发 ImportError 或警告。

参数
  • library (str) – 库的名称。

  • error_msg (str) – 如果导入失败则返回的错误消息。

  • warning (bool) – 如果为 True,import_or_raise 会发出警告而不是 ImportError。默认为 False。

返回

如果导入成功,则返回该库。

抛出
  • ImportError – 如果尝试导入库失败是因为库未安装。

  • Exception – 如果导入库失败。

evalml.utils.infer_feature_types(data, feature_types=None)[源]#

从给定的列表、pandas 或 numpy 输入创建一个 Woodwork 结构,并为列指定类型。如果未指定列的类型,则由 Woodwork 推断。

参数
  • data (pd.DataFrame, pd.Series) – 需要转换为 Woodwork 数据结构的输入数据。

  • feature_types (string, ww.logical_type 对象, dict, 可选) – 如果 data 是 2D 结构,feature_types 必须是一个字典,将列名映射到列中表示的数据类型。如果 data 是 1D 结构,则 feature_types 必须是一个 Woodwork 逻辑类型或一个表示 Woodwork 逻辑类型的字符串(“Double”、“Integer”、“Boolean”、“Categorical”、“Datetime”、“NaturalLanguage”)

返回

一个 Woodwork 数据结构,其中每列的数据类型要么已指定,要么已推断。

抛出

ValueError – 如果 dataframe 与 woodwork 模式不匹配。

evalml.utils.is_all_numeric(df)[源]#

检查给定的 DataFrame 是否仅包含数值。

参数

df (pd.DataFrame) – 需要检查数据类型的 DataFrame。

返回

如果所有列都是数值且不缺少任何值,则返回 True,否则返回 False。

evalml.utils.jupyter_check()[源]#

获取代码是否在 Ipython 环境中运行(例如 Jupyter Notebook 或 Jupyter Lab)。

返回

如果是 Ipython 环境则为 True,否则为 False。

返回类型

布尔值

evalml.utils.log_subtitle(logger, title, underline='=')[源]#

使用副标题记录日志。

evalml.utils.log_title(logger, title)[源]#

使用标题记录日志。

evalml.utils.pad_with_nans(pd_data, num_to_pad)[源]#

在开始的 num_to_pad 行中填充 nans。

参数
  • pd_data (pd.DataFramepd.Series) – 需要填充的数据。

  • num_to_pad (int) – 需要填充的 nans 数量。

返回

pd.DataFrame 或 pd.Series

evalml.utils.safe_repr(value)[源]#

将给定值转换为可以安全用于 repr 的字符串。

参数

value – 需要转换的项目

返回

值的字符串表示形式

evalml.utils.save_plot(fig, filepath=None, format='png', interactive=False, return_filepath=False)[源]#

如果指定了文件路径,则将 fig 保存到文件路径;如果未指定,则保存到默认位置。

参数
  • fig (Figure) – 需要保存的图。

  • filepath (strPath, 可选) – 文件保存位置。默认文件名为“test_plot”。

  • format (str) – 图保存时使用的扩展名。如果 interactive 为 True 且 fig 是 plotly.Figure 类型,则忽略此参数。默认为“png”。

  • interactive (bool, 可选) – 如果为 True 且 fig 是 plotly.Figure 类型,则将 fig 保存为交互式而不是静态,格式将设置为“html”。默认为 False。

  • return_filepath (bool, 可选) – 是否返回图像保存到的最终文件路径。默认为 False。

返回

如果 return_filepath 设置为 True,则返回表示图像保存到的最终文件路径的字符串。默认为 None。

evalml.utils.SEED_BOUNDS#