component_graph#
Component graph for a pipeline as a directed acyclic graph (DAG).
Module Contents#
Classes Summary#
Component graph for a pipeline as a directed acyclic graph (DAG).  | 
Contents#
- class evalml.pipelines.component_graph.ComponentGraph(component_dict=None, cached_data=None, random_seed=0)[source]#
 Component graph for a pipeline as a directed acyclic graph (DAG).
- Parameters
 component_dict (dict) – A dictionary which specifies the components and edges between components that should be used to create the component graph. Defaults to None.
cached_data (dict) – A dictionary of nested cached data. If the hashes and components are in this cache, we skip fitting for these components. Expected to be of format {hash1: {component_name: trained_component, …}, hash2: {…}, …}. Defaults to None.
random_seed (int) – Seed for the random number generator. Defaults to 0.
Examples
>>> component_dict = {'Imputer': ['Imputer', 'X', 'y'], ... 'Logistic Regression': ['Logistic Regression Classifier', 'Imputer.x', 'y']} >>> component_graph = ComponentGraph(component_dict) >>> assert component_graph.compute_order == ['Imputer', 'Logistic Regression'] ... ... >>> component_dict = {'Imputer': ['Imputer', 'X', 'y'], ... 'OHE': ['One Hot Encoder', 'Imputer.x', 'y'], ... 'estimator_1': ['Random Forest Classifier', 'OHE.x', 'y'], ... 'estimator_2': ['Decision Tree Classifier', 'OHE.x', 'y'], ... 'final': ['Logistic Regression Classifier', 'estimator_1.x', 'estimator_2.x', 'y']} >>> component_graph = ComponentGraph(component_dict)
The default parameters for every component in the component graph.
>>> assert component_graph.default_parameters == { ... 'Imputer': {'categorical_impute_strategy': 'most_frequent', ... 'numeric_impute_strategy': 'mean', ... 'boolean_impute_strategy': 'most_frequent', ... 'categorical_fill_value': None, ... 'numeric_fill_value': None, ... 'boolean_fill_value': None}, ... 'One Hot Encoder': {'top_n': 10, ... 'features_to_encode': None, ... 'categories': None, ... 'drop': 'if_binary', ... 'handle_unknown': 'ignore', ... 'handle_missing': 'error'}, ... 'Random Forest Classifier': {'n_estimators': 100, ... 'max_depth': 6, ... 'n_jobs': -1}, ... 'Decision Tree Classifier': {'criterion': 'gini', ... 'max_features': 'sqrt', ... 'max_depth': 6, ... 'min_samples_split': 2, ... 'min_weight_fraction_leaf': 0.0}, ... 'Logistic Regression Classifier': {'penalty': 'l2', ... 'C': 1.0, ... 'n_jobs': -1, ... 'multi_class': 'auto', ... 'solver': 'lbfgs'}}
Methods
The order that components will be computed or called in.
The default parameter dictionary for this pipeline.
Outputs component graph details including component parameters.
Fit each component in the graph.
Fit and transform all components save the final one, usually an estimator.
Fit and transform all components in the component graph, if all components are Transformers.
Regenerated the topologically sorted order of the graph.
Retrieves a single component object from the graph.
Get the logical types that are passed to the given component.
Gets a list of all the estimator components within this graph.
Retrieves all inputs for a given component.
Retrieves the component that is computed last in the graph, usually the final estimator.
Generate an image representing the component graph.
Whether this component graph contains a DFSTransformer or not.
Instantiates all uninstantiated components within the graph using the given parameters. An error will be raised if a component is already instantiated but the parameters dict contains arguments for that component.
Apply component inverse_transform methods to estimator predictions in reverse order.
Get the logical types that are passed to the last component in the pipeline.
Make predictions using selected features.
Transform the input using the component graph.
Transform all components save the final one, and gathers the data from any number of parents to get all the information that should be fed to the final component.
- property compute_order(self)#
 The order that components will be computed or called in.
- property default_parameters(self)#
 The default parameter dictionary for this pipeline.
- Returns
 Dictionary of all component default parameters.
- Return type
 dict
- describe(self, return_dict=False)[source]#
 Outputs component graph details including component parameters.
- Parameters
 return_dict (bool) – If True, return dictionary of information about component graph. Defaults to False.
- Returns
 Dictionary of all component parameters if return_dict is True, else None
- Return type
 dict
- Raises
 ValueError – If the componentgraph is not instantiated
- fit(self, X, y)[source]#
 Fit each component in the graph.
- Parameters
 X (pd.DataFrame) – The input training data of shape [n_samples, n_features].
y (pd.Series) – The target training data of length [n_samples].
- Returns
 self
- fit_and_transform_all_but_final(self, X, y)[source]#
 Fit and transform all components save the final one, usually an estimator.
- Parameters
 X (pd.DataFrame) – The input training data of shape [n_samples, n_features].
y (pd.Series) – The target training data of length [n_samples].
- Returns
 Transformed features and target.
- Return type
 Tuple (pd.DataFrame, pd.Series)
- fit_transform(self, X, y)[source]#
 Fit and transform all components in the component graph, if all components are Transformers.
- Parameters
 X (pd.DataFrame) – Input features of shape [n_samples, n_features].
y (pd.Series) – The target data of length [n_samples].
- Returns
 Transformed output.
- Return type
 pd.DataFrame
- Raises
 ValueError – If final component is an Estimator.
- classmethod generate_order(cls, component_dict)[source]#
 Regenerated the topologically sorted order of the graph.
- get_component(self, component_name)[source]#
 Retrieves a single component object from the graph.
- Parameters
 component_name (str) – Name of the component to retrieve
- Returns
 ComponentBase object
- Raises
 ValueError – If the component is not in the graph.
- get_component_input_logical_types(self, component_name)[source]#
 Get the logical types that are passed to the given component.
- Parameters
 component_name (str) – Name of component in the graph
- Returns
 Dict - Mapping feature name to logical type instance.
- Raises
 ValueError – If the component is not in the graph.
ValueError – If the component graph as not been fitted
- get_estimators(self)[source]#
 Gets a list of all the estimator components within this graph.
- Returns
 All estimator objects within the graph.
- Return type
 list
- Raises
 ValueError – If the component graph is not yet instantiated.
- get_inputs(self, component_name)[source]#
 Retrieves all inputs for a given component.
- Parameters
 component_name (str) – Name of the component to look up.
- Returns
 List of inputs for the component to use.
- Return type
 list[str]
- Raises
 ValueError – If the component is not in the graph.
- get_last_component(self)[source]#
 Retrieves the component that is computed last in the graph, usually the final estimator.
- Returns
 ComponentBase object
- Raises
 ValueError – If the component graph has no edges.
- graph(self, name=None, graph_format=None)[source]#
 Generate an image representing the component graph.
- Parameters
 name (str) – Name of the graph. Defaults to None.
graph_format (str) – file format to save the graph in. Defaults to None.
- Returns
 Graph object that can be directly displayed in Jupyter notebooks.
- Return type
 graphviz.Digraph
- Raises
 RuntimeError – If graphviz is not installed.
- property has_dfs(self)#
 Whether this component graph contains a DFSTransformer or not.
- instantiate(self, parameters=None)[source]#
 Instantiates all uninstantiated components within the graph using the given parameters. An error will be raised if a component is already instantiated but the parameters dict contains arguments for that component.
- Parameters
 parameters (dict) – Dictionary with component names as keys and dictionary of that component’s parameters as values. An empty dictionary {} or None implies using all default values for component parameters. If a component in the component graph is already instantiated, it will not use any of its parameters defined in this dictionary. Defaults to None.
- Returns
 self
- Raises
 ValueError – If component graph is already instantiated or if a component errored while instantiating.
- inverse_transform(self, y)[source]#
 Apply component inverse_transform methods to estimator predictions in reverse order.
Components that implement inverse_transform are PolynomialDecomposer, LogTransformer, LabelEncoder (tbd).
- Parameters
 y – (pd.Series): Final component features.
- Returns
 The target with inverse transformation applied.
- Return type
 pd.Series
- property last_component_input_logical_types(self)#
 Get the logical types that are passed to the last component in the pipeline.
- Returns
 Dict - Mapping feature name to logical type instance.
- Raises
 ValueError – If the component is not in the graph.
ValueError – If the component graph as not been fitted
- predict(self, X)[source]#
 Make predictions using selected features.
- Parameters
 X (pd.DataFrame) – Input features of shape [n_samples, n_features].
- Returns
 Predicted values.
- Return type
 pd.Series
- Raises
 ValueError – If final component is not an Estimator.
- transform(self, X, y=None)[source]#
 Transform the input using the component graph.
- Parameters
 X (pd.DataFrame) – Input features of shape [n_samples, n_features].
y (pd.Series) – The target data of length [n_samples]. Defaults to None.
- Returns
 Transformed output.
- Return type
 pd.DataFrame
- Raises
 ValueError – If final component is not a Transformer.
- transform_all_but_final(self, X, y=None)[source]#
 Transform all components save the final one, and gathers the data from any number of parents to get all the information that should be fed to the final component.
- Parameters
 X (pd.DataFrame) – Data of shape [n_samples, n_features].
y (pd.Series) – The target training data of length [n_samples]. Defaults to None.
- Returns
 Transformed values.
- Return type
 pd.DataFrame
- evalml.pipelines.component_graph.logger#