time_series_classification_pipelines#

时间序列分类问题的 Pipeline 基类。

模块内容#

类总结#

TimeSeriesBinaryClassificationPipeline

时间序列二元分类问题的 Pipeline 基类。

TimeSeriesClassificationPipeline

时间序列分类问题的 Pipeline 基类。

TimeSeriesMulticlassClassificationPipeline

时间序列多分类问题的 Pipeline 基类。

目录#

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

时间序列二元分类问题的 Pipeline 基类。

参数
  • component_graph (list or dict) – 按顺序排列的组件列表。列表中接受字符串或 ComponentBase 子类。请注意,当在列表中指定重复组件时,重复组件的名称将根据其在列表中的索引进行修改。例如,组件图 [Imputer, One Hot Encoder, Imputer, Logistic Regression Classifier] 将具有名称 ["Imputer", "One Hot Encoder", "Imputer_2", "Logistic Regression Classifier"]

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

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

示例

>>> pipeline = TimeSeriesBinaryClassificationPipeline(component_graph=["Simple Imputer", "Logistic Regression Classifier"],
...                                                   parameters={"Logistic Regression Classifier": {"penalty": "elasticnet",
...                                                                                                  "solver": "liblinear"},
...                                                               "pipeline": {"gap": 1, "max_delay": 1, "forecast_horizon": 1, "time_index": "date"}},
...                                                   custom_name="My TimeSeriesBinary Pipeline")
...
>>> assert pipeline.custom_name == "My TimeSeriesBinary Pipeline"
>>> assert pipeline.component_graph.component_dict.keys() == {'Simple Imputer', 'Logistic Regression Classifier'}
...
>>> assert pipeline.parameters == {
...     'Simple Imputer': {'impute_strategy': 'most_frequent', 'fill_value': None},
...     'Logistic Regression Classifier': {'penalty': 'elasticnet',
...                                         'C': 1.0,
...                                         'n_jobs': -1,
...                                         'multi_class': 'auto',
...                                         'solver': 'liblinear'},
...     'pipeline': {'gap': 1, 'max_delay': 1, 'forecast_horizon': 1, 'time_index': "date"}}

属性

problem_type

None

方法

can_tune_threshold_with_objective

确定二元分类 pipeline 的阈值是否可以调整。

classes_

获取 pipeline 的类名。在 pipeline fit 之前将返回 None。

clone

构造一个具有相同组件、参数和随机种子新 pipeline。

create_objectives

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

custom_name

pipeline 的自定义名称。

dates_needed_for_prediction

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

dates_needed_for_prediction_range

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

describe

输出 pipeline 详情,包括组件参数。

feature_importance

与每个特征相关的特征重要性。特征选择删除的特征会被排除。

fit

fit 时间序列分类模型。

fit_transform

fit 并转换组件图中的所有组件(如果所有组件都是 Transformer)。

get_component

按名称返回组件。

get_hyperparameter_ranges

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

graph

生成表示 pipeline 图的图像。

graph_dict

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

graph_feature_importance

生成 pipeline 特征重要性的柱状图。

inverse_transform

将组件的 inverse_transform 方法以相反的顺序应用于 estimator 预测。

load

加载文件路径处的 pipeline。

model_family

返回此 pipeline 的模型族。

name

pipeline 的名称。

new

构造一个新的 pipeline 实例,其组件图相同但参数集不同。请勿与 Python 的 __new__ 方法混淆。

optimize_threshold

根据要使用的 objective 优化 pipeline 阈值。仅用于阈值可调的二元问题和 objective。

parameters

此 pipeline 的参数字典。

predict

对目标未知 எதிர்கால data 进行预测。

predict_in_sample

对目标已知 எதிர்கால data 进行预测,例如 交叉验证。

predict_proba

对目标未知 எதிர்கால data 进行概率预测。

predict_proba_in_sample

对目标已知 எதிர்கால data 进行预测,例如 交叉验证。

save

将 pipeline 保存到文件路径。

score

评估模型在当前和额外 objective 上的性能。

summary

pipeline 结构的简短总结,描述了使用的组件列表。

threshold

用于进行预测的阈值。默认为 None。

transform

转换输入。

transform_all_but_final

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

can_tune_threshold_with_objective(self, objective)#

确定二元分类 pipeline 的阈值是否可以调整。

参数

objective (ObjectiveBase) – 主要 AutoMLSearch objective。

返回

如果 pipeline 阈值可以调整,则为 True。

返回类型

bool

property classes_(self)#

获取 pipeline 的类名。在 pipeline fit 之前将返回 None。

clone(self)#

构造一个具有相同组件、参数和随机种子新 pipeline。

返回

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

static create_objectives(objectives)#

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

property custom_name(self)#

pipeline 的自定义名称。

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)#

输出 pipeline 详情,包括组件参数。

参数

return_dict (bool) – 如果为 True,则返回有关 pipeline 信息的字典。默认为 False。

返回

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

返回类型

dict

property feature_importance(self)#

与每个特征相关的特征重要性。特征选择删除的特征会被排除。

返回

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

返回类型

pd.DataFrame

fit(self, X, y)#

fit 时间序列分类模型。

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

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

返回

self

引发

ValueError – 如果 y 中唯一类的数量不适合 pipeline 的类型。

fit_transform(self, X, y)#

fit 并转换组件图中的所有组件(如果所有组件都是 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_hyperparameter_ranges(self, custom_hyperparameters)#

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

参数

custom_hyperparameters (dict) – pipeline 的自定义超参数。

返回

pipeline 中每个组件的超参数范围字典。

返回类型

dict

graph(self, filepath=None)#

生成表示 pipeline 图的图像。

参数

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)#

生成 pipeline 特征重要性的柱状图。

参数

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

返回

显示特征及其相应重要性的柱状图。

返回类型

plotly.Figure

引发

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

inverse_transform(self, y)#

将组件的 inverse_transform 方法以相反的顺序应用于 estimator 预测。

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

参数

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

返回

目标的逆变换。

返回类型

pd.Series

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

加载文件路径处的 pipeline。

参数

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

返回

PipelineBase 对象

property model_family(self)#

返回此 pipeline 的模型族。

property name(self)#

pipeline 的名称。

new(self, parameters, random_seed=0)#

构造一个新的 pipeline 实例,其组件图相同但参数集不同。请勿与 Python 的 __new__ 方法混淆。

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

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

返回

此 pipeline 的新实例,具有相同的组件。

optimize_threshold(self, X, y, y_pred_proba, objective)#

根据要使用的 objective 优化 pipeline 阈值。仅用于阈值可调的二元问题和 objective。

参数
  • X (pd.DataFrame) – 输入特征。

  • y (pd.Series) – 输入目标值。

  • y_pred_proba (pd.Series) – pipeline 输出的目标预测概率。

  • objective (ObjectiveBase) – 用于设置阈值的 objective。必须具有可调阈值。

引发

ValueError – 如果 objective 不可优化。

property parameters(self)#

此 pipeline 的参数字典。

返回

所有组件参数的字典。

返回类型

dict

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

对目标未知 எதிர்கால data 进行预测。

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

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

  • 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)[source]#

对目标已知 எதிர்கால data 进行预测,例如 交叉验证。

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

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

  • X_train (pd.DataFrame) – pipeline 训练用的数据,形状为 [n_samples_train, n_features]。

  • y_train (pd.Series) – 用于训练 pipeline 的目标,形状为 [n_samples_train]。

  • objective (ObjectiveBase, str) – 可选,用于设置预测概率阈值的 objective。默认为 None。

返回

估计的标签。

返回类型

pd.Series

引发

ValueError – 如果 objective 未为时间序列二元分类问题定义。

predict_proba(self, X, X_train=None, y_train=None)#

对目标未知 எதிர்கால data 进行概率预测。

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

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

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

返回

估计的概率。

返回类型

pd.Series

引发

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

predict_proba_in_sample(self, X_holdout, y_holdout, X_train, y_train)#

对目标已知 எதிர்கால data 进行预测,例如 交叉验证。

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

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

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

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

返回

估计的概率。

返回类型

pd.Series

引发

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

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

将 pipeline 保存到文件路径。

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

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

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

评估模型在当前和额外 objective 上的性能。

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

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

  • objectives (list) – 要评分的非空 objective 列表。

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

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

返回

objective 分数的有序字典。

返回类型

dict

property summary(self)#

pipeline 结构的简短总结,描述了使用的组件列表。

示例:逻辑回归分类器 w/ 简单填充器 + One Hot 编码器

返回

描述 pipeline 结构的字符串。

property threshold(self)#

用于进行预测的阈值。默认为 None。

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) – 要转换到 pipeline 中的输入数据。

  • y (pd.Series) – 与 pipeline 目标对应的目标。

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

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

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

返回

新的转换特征。

返回类型

pd.DataFrame

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

时间序列分类问题的 Pipeline 基类。

参数
  • component_graph (ComponentGraph, list, dict) – ComponentGraph 实例,按顺序排列的组件列表,或组件字典。列表中接受字符串或 ComponentBase 子类。请注意,当在列表中指定重复组件时,重复组件的名称将根据其在列表中的索引进行修改。例如,组件图 [Imputer, One Hot Encoder, Imputer, Logistic Regression Classifier] 将具有名称 ["Imputer", "One Hot Encoder", "Imputer_2", "Logistic Regression Classifier"]

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

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

属性

problem_type

None

方法

can_tune_threshold_with_objective

确定二元分类 pipeline 的阈值是否可以调整。

classes_

获取 pipeline 的类名。在 pipeline fit 之前将返回 None。

clone

构造一个具有相同组件、参数和随机种子新 pipeline。

create_objectives

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

custom_name

pipeline 的自定义名称。

dates_needed_for_prediction

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

dates_needed_for_prediction_range

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

describe

输出 pipeline 详情,包括组件参数。

feature_importance

与每个特征相关的特征重要性。特征选择删除的特征会被排除。

fit

fit 时间序列分类模型。

fit_transform

fit 并转换组件图中的所有组件(如果所有组件都是 Transformer)。

get_component

按名称返回组件。

get_hyperparameter_ranges

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

graph

生成表示 pipeline 图的图像。

graph_dict

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

graph_feature_importance

生成 pipeline 特征重要性的柱状图。

inverse_transform

将组件的 inverse_transform 方法以相反的顺序应用于 estimator 预测。

load

加载文件路径处的 pipeline。

model_family

返回此 pipeline 的模型族。

name

pipeline 的名称。

new

构造一个新的 pipeline 实例,其组件图相同但参数集不同。请勿与 Python 的 __new__ 方法混淆。

parameters

此 pipeline 的参数字典。

predict

对目标未知 எதிர்கால data 进行预测。

predict_in_sample

对目标已知 எதிர்கால data 进行预测,例如 交叉验证。

predict_proba

对目标未知 எதிர்கால data 进行概率预测。

predict_proba_in_sample

对目标已知 எதிர்கால data 进行预测,例如 交叉验证。

save

将 pipeline 保存到文件路径。

score

评估模型在当前和额外 objective 上的性能。

summary

pipeline 结构的简短总结,描述了使用的组件列表。

transform

转换输入。

transform_all_but_final

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

can_tune_threshold_with_objective(self, objective)#

确定二元分类 pipeline 的阈值是否可以调整。

参数

objective (ObjectiveBase) – 主要 AutoMLSearch objective。

返回

如果 pipeline 阈值可以调整,则为 True。

返回类型

bool

property classes_(self)#

获取 pipeline 的类名。在 pipeline fit 之前将返回 None。

clone(self)#

构造一个具有相同组件、参数和随机种子新 pipeline。

返回

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

static create_objectives(objectives)#

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

property custom_name(self)#

pipeline 的自定义名称。

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)#

输出 pipeline 详情,包括组件参数。

参数

return_dict (bool) – 如果为 True,则返回有关 pipeline 信息的字典。默认为 False。

返回

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

返回类型

dict

property feature_importance(self)#

与每个特征相关的特征重要性。特征选择删除的特征会被排除。

返回

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

返回类型

pd.DataFrame

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

fit 时间序列分类模型。

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

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

返回

self

引发

ValueError – 如果 y 中唯一类的数量不适合 pipeline 的类型。

fit_transform(self, X, y)#

fit 并转换组件图中的所有组件(如果所有组件都是 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_hyperparameter_ranges(self, custom_hyperparameters)#

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

参数

custom_hyperparameters (dict) – pipeline 的自定义超参数。

返回

pipeline 中每个组件的超参数范围字典。

返回类型

dict

graph(self, filepath=None)#

生成表示 pipeline 图的图像。

参数

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)#

生成 pipeline 特征重要性的柱状图。

参数

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

返回

显示特征及其相应重要性的柱状图。

返回类型

plotly.Figure

引发

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

inverse_transform(self, y)#

将组件的 inverse_transform 方法以相反的顺序应用于 estimator 预测。

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

参数

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

返回

目标的逆变换。

返回类型

pd.Series

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

加载文件路径处的 pipeline。

参数

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

返回

PipelineBase 对象

property model_family(self)#

返回此 pipeline 的模型族。

property name(self)#

pipeline 的名称。

new(self, parameters, random_seed=0)#

构造一个新的 pipeline 实例,其组件图相同但参数集不同。请勿与 Python 的 __new__ 方法混淆。

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

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

返回

此 pipeline 的新实例,具有相同的组件。

property parameters(self)#

此 pipeline 的参数字典。

返回

所有组件参数的字典。

返回类型

dict

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

对目标未知 எதிர்கால data 进行预测。

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

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

  • 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)[source]#

对目标已知 எதிர்கால data 进行预测,例如 交叉验证。

注意:我们首先将 y 强制转换为 int 类型,以处理计算预测结果时可能返回的布尔值。如果我们最初拥有整数目标,这将无法通过其他方式进行转换。

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

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

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

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

  • objective (ObjectiveBase, str, None) – 可选,用于设置预测概率阈值的 objective。

返回

估计的标签。

返回类型

pd.Series

引发

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

predict_proba(self, X, X_train=None, y_train=None)[source]#

对目标未知 எதிர்கால data 进行概率预测。

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

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

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

返回

估计的概率。

返回类型

pd.Series

引发

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

predict_proba_in_sample(self, X_holdout, y_holdout, X_train, y_train)[source]#

对目标已知 எதிர்கால data 进行预测,例如 交叉验证。

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

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

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

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

返回

估计的概率。

返回类型

pd.Series

引发

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

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

将 pipeline 保存到文件路径。

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

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

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

评估模型在当前和额外 objective 上的性能。

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

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

  • objectives (list) – 要评分的非空 objective 列表。

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

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

返回

objective 分数的有序字典。

返回类型

dict

property summary(self)#

pipeline 结构的简短总结,描述了使用的组件列表。

示例:逻辑回归分类器 w/ 简单填充器 + One Hot 编码器

返回

描述 pipeline 结构的字符串。

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) – 要转换到 pipeline 中的输入数据。

  • y (pd.Series) – 与 pipeline 目标对应的目标。

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

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

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

返回

新的转换特征。

返回类型

pd.DataFrame

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

时间序列多分类问题的 Pipeline 基类。

参数
  • component_graph (list or dict) – 按顺序排列的组件列表。列表中接受字符串或 ComponentBase 子类。请注意,当在列表中指定重复组件时,重复组件的名称将根据其在列表中的索引进行修改。例如,组件图 [Imputer, One Hot Encoder, Imputer, Logistic Regression Classifier] 将具有名称 ["Imputer", "One Hot Encoder", "Imputer_2", "Logistic Regression Classifier"]

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

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

示例

>>> pipeline = TimeSeriesMulticlassClassificationPipeline(component_graph=["Simple Imputer", "Logistic Regression Classifier"],
...                                                       parameters={"Logistic Regression Classifier": {"penalty": "elasticnet",
...                                                                                                      "solver": "liblinear"},
...                                                                   "pipeline": {"gap": 1, "max_delay": 1, "forecast_horizon": 1, "time_index": "date"}},
...                                                       custom_name="My TimeSeriesMulticlass Pipeline")
>>> assert pipeline.custom_name == "My TimeSeriesMulticlass Pipeline"
>>> assert pipeline.component_graph.component_dict.keys() == {'Simple Imputer', 'Logistic Regression Classifier'}
>>> assert pipeline.parameters == {
...  'Simple Imputer': {'impute_strategy': 'most_frequent', 'fill_value': None},
...  'Logistic Regression Classifier': {'penalty': 'elasticnet',
...                                     'C': 1.0,
...                                     'n_jobs': -1,
...                                     'multi_class': 'auto',
...                                     'solver': 'liblinear'},
...     'pipeline': {'gap': 1, 'max_delay': 1, 'forecast_horizon': 1, 'time_index': "date"}}

属性

problem_type

ProblemTypes.TIME_SERIES_MULTICLASS

方法

can_tune_threshold_with_objective

确定二元分类 pipeline 的阈值是否可以调整。

classes_

获取 pipeline 的类名。在 pipeline fit 之前将返回 None。

clone

构造一个具有相同组件、参数和随机种子新 pipeline。

create_objectives

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

custom_name

pipeline 的自定义名称。

dates_needed_for_prediction

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

dates_needed_for_prediction_range

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

describe

输出 pipeline 详情,包括组件参数。

feature_importance

与每个特征相关的特征重要性。特征选择删除的特征会被排除。

fit

fit 时间序列分类模型。

fit_transform

fit 并转换组件图中的所有组件(如果所有组件都是 Transformer)。

get_component

按名称返回组件。

get_hyperparameter_ranges

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

graph

生成表示 pipeline 图的图像。

graph_dict

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

graph_feature_importance

生成 pipeline 特征重要性的柱状图。

inverse_transform

将组件的 inverse_transform 方法以相反的顺序应用于 estimator 预测。

load

加载文件路径处的 pipeline。

model_family

返回此 pipeline 的模型族。

name

pipeline 的名称。

new

构造一个新的 pipeline 实例,其组件图相同但参数集不同。请勿与 Python 的 __new__ 方法混淆。

parameters

此 pipeline 的参数字典。

predict

对目标未知 எதிர்கால data 进行预测。

predict_in_sample

对目标已知 எதிர்கால data 进行预测,例如 交叉验证。

predict_proba

对目标未知 எதிர்கால data 进行概率预测。

predict_proba_in_sample

对目标已知 எதிர்கால data 进行预测,例如 交叉验证。

save

将 pipeline 保存到文件路径。

score

评估模型在当前和额外 objective 上的性能。

summary

pipeline 结构的简短总结,描述了使用的组件列表。

transform

转换输入。

transform_all_but_final

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

can_tune_threshold_with_objective(self, objective)#

确定二元分类 pipeline 的阈值是否可以调整。

参数

objective (ObjectiveBase) – 主要 AutoMLSearch objective。

返回

如果 pipeline 阈值可以调整,则为 True。

返回类型

bool

property classes_(self)#

获取 pipeline 的类名。在 pipeline fit 之前将返回 None。

clone(self)#

构造一个具有相同组件、参数和随机种子新 pipeline。

返回

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

static create_objectives(objectives)#

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

property custom_name(self)#

pipeline 的自定义名称。

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)#

输出 pipeline 详情,包括组件参数。

参数

return_dict (bool) – 如果为 True,则返回有关 pipeline 信息的字典。默认为 False。

返回

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

返回类型

dict

property feature_importance(self)#

与每个特征相关的特征重要性。特征选择删除的特征会被排除。

返回

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

返回类型

pd.DataFrame

fit(self, X, y)#

fit 时间序列分类模型。

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

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

返回

self

引发

ValueError – 如果 y 中唯一类的数量不适合 pipeline 的类型。

fit_transform(self, X, y)#

fit 并转换组件图中的所有组件(如果所有组件都是 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_hyperparameter_ranges(self, custom_hyperparameters)#

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

参数

custom_hyperparameters (dict) – pipeline 的自定义超参数。

返回

pipeline 中每个组件的超参数范围字典。

返回类型

dict

graph(self, filepath=None)#

生成表示 pipeline 图的图像。

参数

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)#

生成 pipeline 特征重要性的柱状图。

参数

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

返回

显示特征及其相应重要性的柱状图。

返回类型

plotly.Figure

引发

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

inverse_transform(self, y)#

将组件的 inverse_transform 方法以相反的顺序应用于 estimator 预测。

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

参数

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

返回

目标的逆变换。

返回类型

pd.Series

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

加载文件路径处的 pipeline。

参数

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

返回

PipelineBase 对象

property model_family(self)#

返回此 pipeline 的模型族。

property name(self)#

pipeline 的名称。

new(self, parameters, random_seed=0)#

构造一个新的 pipeline 实例,其组件图相同但参数集不同。请勿与 Python 的 __new__ 方法混淆。

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

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

返回

此 pipeline 的新实例,具有相同的组件。

property parameters(self)#

此 pipeline 的参数字典。

返回

所有组件参数的字典。

返回类型

dict

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

对目标未知 எதிர்கால data 进行预测。

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

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

  • 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)#

对目标已知 எதிர்கால data 进行预测,例如 交叉验证。

注意:我们首先将 y 强制转换为 int 类型,以处理计算预测结果时可能返回的布尔值。如果我们最初拥有整数目标,这将无法通过其他方式进行转换。

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

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

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

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

  • objective (ObjectiveBase, str, None) – 可选,用于设置预测概率阈值的 objective。

返回

估计的标签。

返回类型

pd.Series

引发

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

predict_proba(self, X, X_train=None, y_train=None)#

对目标未知 எதிர்கால data 进行概率预测。

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

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

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

返回

估计的概率。

返回类型

pd.Series

引发

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

predict_proba_in_sample(self, X_holdout, y_holdout, X_train, y_train)#

对目标已知 எதிர்கால data 进行预测,例如 交叉验证。

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

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

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

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

返回

估计的概率。

返回类型

pd.Series

引发

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

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

将 pipeline 保存到文件路径。

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

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

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

评估模型在当前和额外 objective 上的性能。

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

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

  • objectives (list) – 要评分的非空 objective 列表。

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

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

返回

objective 分数的有序字典。

返回类型

dict

property summary(self)#

pipeline 结构的简短总结,描述了使用的组件列表。

示例:逻辑回归分类器 w/ 简单填充器 + One Hot 编码器

返回

描述 pipeline 结构的字符串。

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) – 要转换到 pipeline 中的输入数据。

  • y (pd.Series) – 与 pipeline 目标对应的目标。

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

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

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

返回

新的转换特征。

返回类型

pd.DataFrame