multiseries_regression_pipeline#

时间序列回归问题的流水线基类。

模块内容#

类摘要#

MultiseriesRegressionPipeline

多序列时间序列回归问题的流水线基类。

内容#

class evalml.pipelines.multiseries_regression_pipeline.MultiseriesRegressionPipeline(component_graph, parameters=None, custom_name=None, random_seed=0)[source]#

多序列时间序列回归问题的流水线基类。

参数
  • component_graph (ComponentGraph, list, dict) – ComponentGraph 实例、按顺序排列的组件列表或组件字典。

  • parameters (dict) – 一个字典,键是组件名称,值是该组件参数的字典。空字典 {} 表示使用组件参数的所有默认值。流水线级别的参数(如 time_index、gap 和 max_delay)必须通过“pipeline”键指定。例如:Pipeline(parameters={"pipeline": {"time_index": "Date", "max_delay": 4, "gap": 2}})。

  • custom_name (str) – 流水线的自定义名称。默认为 None。

  • random_seed (int) – 随机数生成器的种子。默认为 0。

属性

NO_PREDS_PI_ESTIMATORS

ProblemTypes.TIME_SERIES_REGRESSION

problem_type

ProblemTypes.MULTISERIES_TIME_SERIES_REGRESSION

方法

can_tune_threshold_with_objective

确定二元分类流水线的阈值是否可以调优。

clone

构建一个具有相同组件、参数和随机种子新的流水线。

create_objectives

从字符串列表或目标类创建目标实例。

custom_name

流水线的自定义名称。

dates_needed_for_prediction

返回预测未来给定日期所需日期。

dates_needed_for_prediction_range

返回预测未来给定日期所需日期。

describe

输出流水线详细信息,包括组件参数。

feature_importance

与每个特征相关的重要性。特征选择剔除的特征不包括在内。

fit

拟合一个多序列时间序列流水线。

fit_transform

拟合并转换组件图中的所有组件,如果所有组件都是 Transformer。

get_component

按名称返回组件。

get_forecast_period

根据 X 中最新数据点生成所有可能的预测时间点。

get_forecast_predictions

根据 X 的最后一个周期生成所有可能的预测结果。

get_hyperparameter_ranges

以字典形式返回所有组件的超参数范围。

get_prediction_intervals

使用拟合的回归器查找预测区间。

graph

生成表示流水线图的图像。

graph_dict

生成一个字典,其中节点包含组件名称和参数,边缘详细说明组件关系。在大多数情况下,此字典是 JSON 可序列化的。

graph_feature_importance

生成流水线特征重要性的条形图。

inverse_transform

以相反顺序将组件 inverse_transform 方法应用于估计器预测。

load

从文件路径加载流水线。

model_family

返回此流水线的模型族系。

name

流水线的名称。

new

构建一个具有相同组件图但参数集不同的流水线新实例。不要与 python 的 __new__ 方法混淆。

parameters

此流水线的参数字典。

predict

对目标未知的未来数据进行预测。

predict_in_sample

对已知目标的未来数据进行预测,例如交叉验证。

save

将流水线保存到文件路径。

score

评估模型在当前目标和附加目标上的性能。

summary

流水线结构的简短摘要,描述了使用的组件列表。

transform

转换输入。

transform_all_but_final

通过应用所有预处理组件来转换数据。

can_tune_threshold_with_objective(self, objective)#

确定二元分类流水线的阈值是否可以调优。

参数

objective (ObjectiveBase) – 主要的 AutoMLSearch 目标。

返回值

如果流水线阈值可以调优则为 True。

返回类型

bool

clone(self)#

构建一个具有相同组件、参数和随机种子新的流水线。

返回值

此流水线具有相同组件、参数和随机种子新的实例。

static create_objectives(objectives)#

从字符串列表或目标类创建目标实例。

property custom_name(self)#

流水线的自定义名称。

dates_needed_for_prediction(self, date)#

返回预测未来给定日期所需日期。

参数

date (pd.Timestamp) – 未来要预测的日期。

返回值

预测给定日期所需日期范围。

返回类型

dates_needed (tuple(pd.Timestamp))

dates_needed_for_prediction_range(self, start_date, end_date)#

返回预测未来给定日期所需日期。

参数
  • start_date (pd.Timestamp) – 未来要预测范围的开始日期。

  • end_date (pd.Timestamp) – 未来要预测范围的结束日期。

返回值

预测给定日期所需日期范围。

返回类型

dates_needed (tuple(pd.Timestamp))

引发

ValueError – 如果 start_date 不在 end_date 之前。

describe(self, return_dict=False)#

输出流水线详细信息,包括组件参数。

参数

return_dict (bool) – 如果为 True,返回关于流水线信息的字典。默认为 False。

返回值

如果 return_dict 为 True,则返回所有组件参数的字典,否则返回 None。

返回类型

dict

property feature_importance(self)#

与每个特征相关的重要性。特征选择剔除的特征不包括在内。

返回值

特征名称及其对应的重要性

返回类型

pd.DataFrame

fit(self, X, y)[source]#

拟合一个多序列时间序列流水线。

参数
  • X (pd.DataFrame) – 输入的训练数据,形状为 [n_samples, n_features]。

  • y (pd.Series) – 目标训练标签,长度为 [n_samples*n_series]。

返回值

self

引发

ValueError – 如果目标不是数值类型。

fit_transform(self, X, y)#

拟合并转换组件图中的所有组件,如果所有组件都是 Transformer。

参数
  • X (pd.DataFrame) – 输入特征,形状为 [n_samples, n_features]。

  • y (pd.Series) – 目标数据,长度为 [n_samples]。

返回值

转换后的输出。

返回类型

pd.DataFrame

引发

ValueError – 如果最终组件是 Estimator。

get_component(self, name)#

按名称返回组件。

参数

name (str) – 组件的名称。

返回值

要返回的组件

返回类型

Component

get_forecast_period(self, X)[source]#

根据 X 中最新数据点生成所有可能的预测时间点。

对于多序列情况,每个时间戳对于 Xseries_id 列中的每个唯一值都会重复。输入数据必须堆叠以正确生成唯一的周期。

参数

X (pd.DataFrame, np.ndarray) – 训练流水线时使用的堆叠数据,形状为 [n_samples_train * n_series_ids, n_features]。

引发

ValueError – 如果流水线未训练。

返回值

包含一列 datetime 周期的数据框,范围从 gapforecast_horizon + gap,每个唯一的 series_id 值对应一行。

返回类型

pd.DataFrame

get_forecast_predictions(self, X, y)#

根据 X 的最后一个周期生成所有可能的预测结果。

参数
  • X (pd.DataFrame, np.ndarray) – 训练流水线时使用的数据,形状为 [n_samples_train, n_feautures]。

  • y (pd.Series, np.ndarray) – 用于训练流水线的目标,形状为 [n_samples_train]。

返回值

gap 周期到 forecast_horizon + gap 周期的预测结果。

get_hyperparameter_ranges(self, custom_hyperparameters)#

以字典形式返回所有组件的超参数范围。

参数

custom_hyperparameters (dict) – 流水线的自定义超参数。

返回值

流水线中每个组件的超参数范围字典。

返回类型

dict

get_prediction_intervals(self, X, y=None, X_train=None, y_train=None, coverage=None)#

使用拟合的回归器查找预测区间。

此函数采用拟合估计器的预测结果,并使用窗口大小为 5 计算所有预测结果的滚动标准差。通过计算每个边界处较低尾部概率的百分点(分位数)函数乘以滚动标准差,确定较低和较高的预测值。

某些估计器(Extra Trees Estimator、XGBoost Estimator、Prophet Estimator、ARIMA 和 Exponential Smoothing estimator)使用不同的方法来计算预测区间。请参阅这些估计器的文档以了解更多信息。

参数
  • X (pd.DataFrame) – 数据,形状为 [n_samples, n_features]。

  • y (pd.Series) – 目标数据。

  • X_train (pd.DataFrame, np.ndarray) – 训练流水线时使用的数据,形状为 [n_samples_train, n_features]。

  • y_train (pd.Series, np.ndarray) – 用于训练流水线的目标,形状为 [n_samples_train]。

  • coverage (list[float]) – 一个浮点数列表,范围在 0 到 1 之间,用于计算预测区间的上限和下限。

返回值

预测区间,键的格式为 {coverage}_lower 或 {coverage}_upper。

返回类型

dict

引发

MethodPropertyNotFoundError – 如果估计器不支持时间序列回归作为问题类型。

graph(self, filepath=None)#

生成表示流水线图的图像。

参数

filepath (str, optional) – 图形应保存到的路径。如果设置为 None(默认为此),则不会保存图形。

返回值

可以在 Jupyter notebooks 中直接显示的图形对象。

返回类型

graphviz.Digraph

引发
  • RuntimeError – 如果未安装 graphviz。

  • ValueError – 如果路径不可写。

graph_dict(self)#

生成一个字典,其中节点包含组件名称和参数,边缘详细说明组件关系。在大多数情况下,此字典是 JSON 可序列化的。

x_edges 指定特征数据从哪个组件传入。y_edges 指定目标数据从哪个组件传入。这可用于跨各种可视化工具构建图形。模板:{“Nodes”: {“component_name”: {“Name”: class_name, “Parameters”: parameters_attributes}, …}}, “x_edges”: [[from_component_name, to_component_name], [from_component_name, to_component_name], …], “y_edges”: [[from_component_name, to_component_name], [from_component_name, to_component_name], …]}

返回值

表示 DAG 结构的字典。

返回类型

dag_dict (dict)

graph_feature_importance(self, importance_threshold=0)#

生成流水线特征重要性的条形图。

参数

importance_threshold (float, optional) – 如果提供,则绘制绝对值大于 importance_threshold 的置换重要性特征。默认为零。

返回值

显示特征及其对应重要性的条形图。

返回类型

plotly.Figure

引发

ValueError – 如果重要性阈值无效。

inverse_transform(self, y)#

以相反顺序将组件 inverse_transform 方法应用于估计器预测。

实现 inverse_transform 的组件有 PolynomialDecomposer、LogTransformer、LabelEncoder (待定)。

参数

y (pd.Series) – 最终组件特征。

返回值

目标的逆转换。

返回类型

pd.Series

static load(file_path: Union[str, io.BytesIO])#

从文件路径加载流水线。

参数

file_path (str|BytesIO) – 加载文件路径或 BytesIO 对象。

返回值

PipelineBase 对象

property model_family(self)#

返回此流水线的模型族系。

property name(self)#

流水线的名称。

new(self, parameters, random_seed=0)#

构建一个具有相同组件图但参数集不同的流水线新实例。不要与 python 的 __new__ 方法混淆。

参数
  • parameters (dict) – 一个字典,键是组件名称,值是该组件参数的字典。空字典或 None 表示使用组件参数的所有默认值。默认为 None。

  • random_seed (int) – 随机数生成器的种子。默认为 0。

返回值

此流水线具有相同组件的新实例。

property parameters(self)#

此流水线的参数字典。

返回值

所有组件参数的字典。

返回类型

dict

predict(self, X, objective=None, X_train=None, y_train=None)#

对目标未知的未来数据进行预测。

参数
  • X (pd.DataFrame, or np.ndarray) – 数据,形状为 [n_samples, n_features]。

  • objective (Object or string) – 用于进行预测的目标。

  • X_train (pd.DataFrame or np.ndarray or None) – 训练数据。

  • y_train (pd.Series or None) – 训练标签。

引发

ValueError – 如果 X_train 和/或 y_train 为 None,或者如果最终组件不是 Estimator。

返回值

预测结果。

predict_in_sample(self, X, y, X_train, y_train, objective=None, calculating_residuals=False, include_series_id=False)[source]#

对已知目标的未来数据进行预测,例如交叉验证。

参数
  • X (pd.DataFrame or np.ndarray) – 未来数据,形状为 [n_samples, n_features]

  • y (pd.Series, np.ndarray) – 未来目标,形状为 [n_samples]

  • X_train (pd.DataFrame, np.ndarray) – 训练流水线时使用的数据,形状为 [n_samples_train, n_feautures]

  • y_train (pd.Series, np.ndarray) – 用于训练流水线的目标,形状为 [n_samples_train]

  • objective (ObjectiveBase, str, None) – 用于对预测概率进行阈值处理的目标,可选。

  • calculating_residuals (bool) – 是否正在调用 predict_in_sample 来计算残差。这意味着 X 和 y 参数不是未来数据,而是训练数据。

  • include_series_id (bool) – 如果为 True,则在预测结果中包含系列 ID 值。

返回值

估计的标签。

返回类型

pd.Series

引发

ValueError – 如果最终组件不是 Estimator。

save(self, file_path, pickle_protocol=cloudpickle.DEFAULT_PROTOCOL)#

将流水线保存到文件路径。

参数
  • file_path (str) – 文件保存位置。

  • pickle_protocol (int) – pickle 数据流格式。

score(self, X, y, objectives, X_train=None, y_train=None)#

评估模型在当前目标和附加目标上的性能。

参数
  • X (pd.DataFrame or np.ndarray) – 数据,形状为 [n_samples, n_features]。

  • y (pd.Series) – 真实标签,长度为 [n_samples]。

  • objectives (list) – 用于评分的非空目标列表。

  • X_train (pd.DataFrame, np.ndarray) – 训练流水线时使用的数据,形状为 [n_samples_train, n_feautures]。

  • y_train (pd.Series, np.ndarray) – 用于训练流水线的目标,形状为 [n_samples_train]。

返回值

目标分数的有序字典。

返回类型

dict

property summary(self)#

流水线结构的简短摘要,描述了使用的组件列表。

示例:带有 Simple Imputer + One Hot Encoder 的 Logistic Regression Classifier

返回值

描述流水线结构的字符串。

transform(self, X, y=None)#

转换输入。

参数
  • X (pd.DataFrame, or np.ndarray) – 数据,形状为 [n_samples, n_features]。

  • y (pd.Series) – 目标数据,长度为 [n_samples]。默认为 None。

返回值

转换后的输出。

返回类型

pd.DataFrame

transform_all_but_final(self, X, y=None, X_train=None, y_train=None, calculating_residuals=False)#

通过应用所有预处理组件来转换数据。

参数
  • X (pd.DataFrame) – 要转换的流水线输入数据。

  • y (pd.Series) – 与流水线目标对应的目标。

  • X_train (pd.DataFrame) – 用于从过去观察生成特征的训练数据。

  • y_train (pd.Series) – 用于从过去观察生成特征的训练目标。

  • calculating_residuals (bool) – 是否正在调用 predict_in_sample 来计算残差。这意味着 X 和 y 参数不是未来数据,而是训练数据。

返回值

新的转换后特征。

返回类型

pd.DataFrame