multiclass_classification_pipeline#
所有多类分类管道的管道子类。
模块内容#
类摘要#
所有多类分类管道的管道子类。 |
内容#
- class evalml.pipelines.multiclass_classification_pipeline.MulticlassClassificationPipeline(component_graph, parameters=None, custom_name=None, random_seed=0)[源码]#
所有多类分类管道的管道子类。
- 参数
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。
示例
>>> pipeline = MulticlassClassificationPipeline(component_graph=["Simple Imputer", "Logistic Regression Classifier"], ... parameters={"Logistic Regression Classifier": {"penalty": "elasticnet", ... "solver": "liblinear"}}, ... custom_name="My Multiclass Pipeline") ... >>> assert pipeline.custom_name == "My Multiclass 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'}}
属性
problem_type
ProblemTypes.MULTICLASS
方法
确定二元分类管道的阈值是否可以调优。
获取管道的类名称。在管道 fit 之前返回 None。
使用相同的组件、参数和随机种子构造新的管道。
从字符串列表或目标类创建目标实例。
管道的自定义名称。
输出管道详情,包括组件参数。
与每个特征相关的特征重要性。特征选择剔除的特征被排除。
构建分类模型。对于字符串和分类目标,类按 sorted(set(y)) 排序,然后映射到 0 到 n_classes-1 之间的值。
fit 并 transform 组件图中的所有组件,前提是所有组件都是 Transformer。
按名称返回组件。
以字典形式返回所有组件的超参数范围。
生成表示管道图的图像。
生成一个字典,其中节点包含组件名称和参数,边缘详细说明组件关系。在大多数情况下,此字典可进行 JSON 序列化。
生成管道特征重要性的条形图。
以相反顺序将组件 inverse_transform 方法应用于估算器预测。
从文件路径加载管道。
返回此管道的模型系列。
管道的名称。
构造一个具有相同组件图但参数集不同的新管道实例。不要与 python 的 __new__ 方法混淆。
此管道的参数字典。
使用选定特征进行预测。
生成标签的概率估计。
将管道保存到文件路径。
评估模型在目标上的性能。
管道结构的简要摘要,描述所使用的组件列表。
转换输入。
通过应用所有预处理组件来转换数据。
- can_tune_threshold_with_objective(self, objective)#
确定二元分类管道的阈值是否可以调优。
- 参数
objective (ObjectiveBase) – 主要的 AutoMLSearch 目标。
- 返回
如果管道阈值可以调优,则为 True。
- 返回类型
bool
- property classes_(self)#
获取管道的类名称。在管道 fit 之前返回 None。
- clone(self)#
使用相同的组件、参数和随机种子构造新的管道。
- 返回
此管道的新实例,具有相同的组件、参数和随机种子。
- static create_objectives(objectives)#
从字符串列表或目标类创建目标实例。
- property custom_name(self)#
管道的自定义名称。
- 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)#
构建分类模型。对于字符串和分类目标,类按 sorted(set(y)) 排序,然后映射到 0 到 n_classes-1 之间的值。
- 参数
X (pd.DataFrame or np.ndarray) – 输入训练数据,形状为 [n_samples, n_features]
y (pd.Series, np.ndarray) – 目标训练标签,长度为 [n_samples]
- 返回
self
- 引发
ValueError – 如果 y 中唯一类的数量不适合管道类型。
TypeError – 如果 dtype 为 boolean 但系列中存在 pd.NA。
Exception – 对于所有其他异常。
- fit_transform(self, X, y)#
fit 并 transform 组件图中的所有组件,前提是所有组件都是 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) – 管道的自定义超参数。
- 返回
管道中每个组件的超参数范围字典。
- 返回类型
dict
- graph(self, filepath=None)#
生成表示管道图的图像。
- 参数
filepath (str, optional) – 图形应保存到的路径。如果设置为 None(默认值),则图形不会被保存。
- 返回
可在 Jupyter 笔记本中直接显示的 Graph 对象。
- 返回类型
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(: 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)#
使用选定特征进行预测。
注意:我们首先将 y 转换为整数,以处理计算预测时可能返回的布尔值,否则如果最初是整数目标,我们将无法对其进行转换。
- 参数
X (pd.DataFrame) – 数据,形状为 [n_samples, n_features]。
objective (Object or string) – 用于进行预测的目标。
X_train (pd.DataFrame) – 训练数据。被忽略。仅用于时间序列。
y_train (pd.Series) – 训练标签。被忽略。仅用于时间序列。
- 返回
估计的标签。
- 返回类型
pd.Series
- predict_proba(self, X, X_train=None, y_train=None)#
生成标签的概率估计。
- 参数
X (pd.DataFrame or np.ndarray) – 数据,形状为 [n_samples, n_features]
X_train (pd.DataFrame or np.ndarray or None) – 训练数据。被忽略。仅用于时间序列。
y_train (pd.Series or None) – 训练标签。被忽略。仅用于时间序列。
- 返回
概率估计
- 返回类型
pd.DataFrame
- 引发
ValueError – 如果最终组件不是估算器。
- 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) – 数据,形状为 [n_samples, n_features]
y (pd.Series) – 真实标签,长度为 [n_samples]
objectives (list) – 要评分的目标列表
X_train (pd.DataFrame) – 训练数据。被忽略。仅用于时间序列。
y_train (pd.Series) – 训练标签。被忽略。仅用于时间序列。
- 返回
目标分数的有序字典。
- 返回类型
dict
- property summary(self)#
管道结构的简要摘要,描述所使用的组件列表。
示例:Logistic Regression Classifier w/ Simple Imputer + One Hot Encoder
- 返回
描述管道结构的字符串。
- 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)#
通过应用所有预处理组件来转换数据。
- 参数
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