实用工具#
实用方法。
包内容#
类摘要#
允许函数作为类级别属性访问。 |
函数#
将描述时间长度的字符串转换为秒数。 |
|
当使用弃用参数时,用于发出警告的辅助方法。 |
|
为了支持ARIMA、CatBoost和LightGBM等某些估计器,将 IntegerNullable、BooleanNullable 类型向下转换为 Double、Boolean。 |
|
删除所有数据帧或序列中包含任何 NaN 的行。 |
|
获取基础类的可导入子类。用于动态列出我们所有的估计器、转换器、组件和管道。 |
|
获取具有关联名称的 logger。 |
|
给定一个 numpy.random.RandomState 对象,生成一个表示另一个随机数生成器种子值的整数。或者,如果给定一个整数,则返回该整数。 |
|
使用种子生成一个 numpy.random.RandomState 实例。 |
|
确定给定数据中应作为时间索引使用的列。 |
|
尝试按名称导入请求的库。如果导入失败,则引发 ImportError 或警告。 |
|
从给定的列表、pandas 或 numpy 输入创建一个 Woodwork 结构,并为列指定类型。如果未指定列的类型,则由 Woodwork 推断。 |
|
检查给定的 DataFrame 是否仅包含数值。 |
|
获取代码是否在 Ipython 环境中运行(例如 Jupyter Notebook 或 Jupyter Lab)。 |
|
使用副标题记录日志。 |
|
使用标题记录日志。 |
|
在开始的 num_to_pad 行中填充 nans。 |
|
将给定值转换为可以安全用于 repr 的字符串。 |
|
如果指定了文件路径,则将 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.pad_with_nans(pd_data, num_to_pad)[源]#
在开始的 num_to_pad 行中填充 nans。
- 参数
pd_data (pd.DataFrame 或 pd.Series) – 需要填充的数据。
num_to_pad (int) – 需要填充的 nans 数量。
- 返回
pd.DataFrame 或 pd.Series
- evalml.utils.save_plot(fig, filepath=None, format='png', interactive=False, return_filepath=False)[源]#
如果指定了文件路径,则将 fig 保存到文件路径;如果未指定,则保存到默认位置。
- 参数
fig (Figure) – 需要保存的图。
filepath (str 或 Path, 可选) – 文件保存位置。默认文件名为“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#