pipeline_base#
基础机器学习管道类。
模块内容#
类摘要#
机器学习管道。 |
目录#
- evalml.pipelines.pipeline_base.logger#
- class evalml.pipelines.pipeline_base.PipelineBase(component_graph, parameters=None, custom_name=None, random_seed=0)[source]#
机器学习管道。
- 参数
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) – 以组件名称为键,以该组件的参数字典为值的字典。空字典或 None 表示对组件参数使用所有默认值。默认为 None。
custom_name (str) – 管道的自定义名称。默认为 None。
random_seed (int) – 随机数生成器的种子。默认为 0。
属性
problem_type
None
方法
确定二元分类管道的阈值是否可以调整。
构造一个新的管道,具有相同的组件、参数和随机种子。
从字符串列表或目标函数类创建目标函数实例。
管道的自定义名称。
输出管道详情,包括组件参数。
与每个特征相关的权重。特征选择剔除的特征将被排除在外。
构建模型。
如果所有组件都是 Transformer,则拟合并转换组件图中的所有组件。
按名称返回组件。
将所有组件的超参数范围作为字典返回。
生成表示管道图的图像。
生成一个字典,其中节点包含组件名称和参数,边详细说明组件关系。该字典在大多数情况下是 JSON 可序列化的。
生成管道特征重要性的条形图。
以相反的顺序将组件的 inverse_transform 方法应用于估计器预测结果。
从文件路径加载管道。
返回此管道的模型族。
管道的名称。
构造一个管道新实例,具有相同的组件图,但参数集不同。不要与 Python 的 __new__ 方法混淆。
此管道的参数字典。
使用选定的特征进行预测。
将管道保存到文件路径。
评估模型在当前和附加目标函数上的性能。
管道结构的简要摘要,描述了使用的组件列表。
转换输入。
通过应用所有预处理组件来转换数据。
- can_tune_threshold_with_objective(self, objective)[source]#
确定二元分类管道的阈值是否可以调整。
- 参数
objective (ObjectiveBase) – 主要的 AutoMLSearch 目标函数。
- 返回值
如果管道阈值可以调整,则为 True。
- 返回类型
bool
- property custom_name(self)#
管道的自定义名称。
- describe(self, return_dict=False)[source]#
输出管道详情,包括组件参数。
- 参数
return_dict (bool) – 如果为 True,则返回关于管道信息的字典。默认为 False。
- 返回值
如果 return_dict 为 True,则为所有组件参数的字典,否则为 None。
- 返回类型
dict
- property feature_importance(self)#
与每个特征相关的权重。特征选择剔除的特征将被排除在外。
- 返回值
特征名称及其相应的权重
- 返回类型
pd.DataFrame
- abstract fit(self, X, y)[source]#
构建模型。
- 参数
X (pd.DataFrame or np.ndarray) – 形状为 [n_samples, n_features] 的输入训练数据。
y (pd.Series, np.ndarray) – 长度为 [n_samples] 的目标训练数据。
- 返回值
self
- fit_transform(self, X, y)[source]#
如果所有组件都是 Transformer,则拟合并转换组件图中的所有组件。
- 参数
X (pd.DataFrame) – 形状为 [n_samples, n_features] 的输入特征。
y (pd.Series) – 长度为 [n_samples] 的目标数据。
- 返回值
转换后的输出。
- 返回类型
pd.DataFrame
- 抛出
ValueError – 如果最后一个组件是 Estimator。
- get_hyperparameter_ranges(self, custom_hyperparameters)[source]#
将所有组件的超参数范围作为字典返回。
- 参数
custom_hyperparameters (dict) – 管道的自定义超参数。
- 返回值
管道中每个组件的超参数范围字典。
- 返回类型
dict
- graph(self, filepath=None)[source]#
生成表示管道图的图像。
- 参数
filepath (str, optional) – 应保存图的文件路径。如果设置为 None(默认值),则不会保存图。
- 返回值
可以直接在 Jupyter notebooks 中显示的图对象。
- 返回类型
graphviz.Digraph
- 抛出
RuntimeError – 如果 graphviz 未安装。
ValueError – 如果路径不可写。
- graph_dict(self)[source]#
生成一个字典,其中节点包含组件名称和参数,边详细说明组件关系。该字典在大多数情况下是 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)[source]#
生成管道特征重要性的条形图。
- 参数
importance_threshold (float, optional) – 如果提供,则绘制置换重要性绝对值大于 importance_threshold 的特征图。默认为零。
- 返回值
显示特征及其相应重要性的条形图。
- 返回类型
plotly.Figure
- 抛出
ValueError – 如果重要性阈值无效。
- inverse_transform(self, y)[source]#
以相反的顺序将组件的 inverse_transform 方法应用于估计器预测结果。
实现了 inverse_transform 的组件有 PolynomialDecomposer、LogTransformer、LabelEncoder(待定)。
- 参数
y (pd.Series) – 最终组件特征。
- 返回值
目标的逆转换。
- 返回类型
pd.Series
- static load(file_path: Union[str, io.BytesIO])[source]#
从文件路径加载管道。
- 参数
file_path (str|BytesIO) – 加载文件路径或 BytesIO 对象。
- 返回值
PipelineBase 对象
- property model_family(self)#
返回此管道的模型族。
- property name(self)#
管道的名称。
- new(self, parameters, random_seed=0)[source]#
构造一个管道新实例,具有相同的组件图,但参数集不同。不要与 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)[source]#
使用选定的特征进行预测。
- 参数
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) – 训练标签。忽略。仅用于时间序列。
- 返回值
预测值。
- 返回类型
pd.Series
- save(self, file_path, pickle_protocol=cloudpickle.DEFAULT_PROTOCOL)[source]#
将管道保存到文件路径。
- 参数
file_path (str) – 文件保存位置。
pickle_protocol (int) – pickle 数据流格式。
- abstract score(self, X, y, objectives, X_train=None, y_train=None)[source]#
评估模型在当前和附加目标函数上的性能。
- 参数
X (pd.DataFrame or np.ndarray) – 形状为 [n_samples, n_features] 的数据。
y (pd.Series, np.ndarray) – 长度为 [n_samples] 的真实标签。
objectives (list) – 用于评分的非空目标函数列表。
X_train (pd.DataFrame or np.ndarray or None) – 训练数据。忽略。仅用于时间序列。
y_train (pd.Series or None) – 训练标签。忽略。仅用于时间序列。
- 返回值
目标函数得分的有序字典。
- 返回类型
dict
- property summary(self)#
管道结构的简要摘要,描述了使用的组件列表。
示例:带有 Simple Imputer + One Hot Encoder 的逻辑回归分类器
- 返回值
描述管道结构的字符串。
- transform(self, X, y=None)[source]#
转换输入。
- 参数
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)[source]#
通过应用所有预处理组件来转换数据。
- 参数
X (pd.DataFrame) – 要进行转换的管道输入数据。
y (pd.Series or None) – 与 X 对应的目标数据。可选。
X_train (pd.DataFrame or np.ndarray or None) – 训练数据。仅用于时间序列。
y_train (pd.Series or None) – 训练标签。仅用于时间序列。
- 返回值
新的转换后特征。
- 返回类型
pd.DataFrame