preprocessing#
Preprocessing transformer components.
Submodules#
Package Contents#
Classes Summary#
Transformer that can automatically extract features from datetime columns. |
|
Featuretools DFS component that generates features for the input features. |
|
Transformer to drop rows with NaN values. |
|
Transformer to drop features whose percentage of NaN values exceeds a specified threshold. |
|
Transformer to drop rows specified by row indices. |
|
Transformer that can automatically extract features from emails. |
|
Applies a log transformation to the target data. |
|
Transformer to calculate the Latent Semantic Analysis Values of text input. |
|
Transformer that can automatically featurize text columns using featuretools' nlp_primitives. |
|
Removes trends from time series by fitting a polynomial to the data. |
|
Transformer to replace features with the new nullable dtypes with a dtype that is compatible in EvalML. |
|
Base class for all transformers working with text features. |
|
Transformer that delays input features and target variable for time series problems. |
|
Transformer that regularizes an inconsistently spaced datetime column. |
|
Transformer that can automatically extract features from URL. |
Contents#
- class evalml.pipelines.components.transformers.preprocessing.DateTimeFeaturizer(features_to_extract=None, encode_as_categories=False, time_index=None, random_seed=0, **kwargs)[source]#
Transformer that can automatically extract features from datetime columns.
- Parameters
features_to_extract (list) – List of features to extract. Valid options include “year”, “month”, “day_of_week”, “hour”. Defaults to None.
encode_as_categories (bool) – Whether day-of-week and month features should be encoded as pandas “category” dtype. This allows OneHotEncoders to encode these features. Defaults to False.
time_index (str) – Name of the column containing the datetime information used to order the data. Ignored.
random_seed (int) – Seed for the random number generator. Defaults to 0.
Attributes
hyperparameter_ranges
{}
modifies_features
True
modifies_target
False
name
DateTime Featurizer
training_only
False
Methods
Constructs a new component with the same parameters and random state.
Returns the default parameters for this component.
Describe a component and its parameters.
Fit the datetime featurizer component.
Fits on X and transforms X.
Gets the categories of each datetime feature.
Loads component at file path.
Returns boolean determining if component needs fitting before calling predict, predict_proba, transform, or feature_importances.
Returns the parameters which were used to initialize the component.
Saves component at file path.
Transforms data X by creating new features using existing DateTime columns, and then dropping those DateTime columns.
- clone(self)#
Constructs a new component with the same parameters and random state.
- Returns
A new instance of this component with identical parameters and random state.
- default_parameters(cls)#
Returns the default parameters for this component.
Our convention is that Component.default_parameters == Component().parameters.
- Returns
Default parameters for this component.
- Return type
dict
- describe(self, print_name=False, return_dict=False)#
Describe a component and its parameters.
- Parameters
print_name (bool, optional) – whether to print name of component
return_dict (bool, optional) – whether to return description as dictionary in the format {“name”: name, “parameters”: parameters}
- Returns
Returns dictionary if return_dict is True, else None.
- Return type
None or dict
- fit(self, X, y=None)[source]#
Fit the datetime featurizer component.
- Parameters
X (pd.DataFrame) – Input features.
y (pd.Series, optional) – Target data. Ignored.
- Returns
self
- fit_transform(self, X, y=None)#
Fits on X and transforms X.
- Parameters
X (pd.DataFrame) – Data to fit and transform.
y (pd.Series) – Target data.
- Returns
Transformed X.
- Return type
pd.DataFrame
- Raises
MethodPropertyNotFoundError – If transformer does not have a transform method or a component_obj that implements transform.
- get_feature_names(self)[source]#
Gets the categories of each datetime feature.
- Returns
- Dictionary, where each key-value pair is a column name and a dictionary
mapping the unique feature values to their integer encoding.
- Return type
dict
- static load(file_path)#
Loads component at file path.
- Parameters
file_path (str) – Location to load file.
- Returns
ComponentBase object
- needs_fitting(self)#
Returns boolean determining if component needs fitting before calling predict, predict_proba, transform, or feature_importances.
This can be overridden to False for components that do not need to be fit or whose fit methods do nothing.
- Returns
True.
- property parameters(self)#
Returns the parameters which were used to initialize the component.
- save(self, file_path, pickle_protocol=cloudpickle.DEFAULT_PROTOCOL)#
Saves component at file path.
- Parameters
file_path (str) – Location to save file.
pickle_protocol (int) – The pickle data stream format.
- class evalml.pipelines.components.transformers.preprocessing.DFSTransformer(index='index', features=None, random_seed=0, **kwargs)[source]#
Featuretools DFS component that generates features for the input features.
- Parameters
index (string) – The name of the column that contains the indices. If no column with this name exists, then featuretools.EntitySet() creates a column with this name to serve as the index column. Defaults to ‘index’.
random_seed (int) – Seed for the random number generator. Defaults to 0.
features (list) – List of features to run DFS on. Defaults to None. Features will only be computed if the columns used by the feature exist in the input and if the feature itself is not in input.
Attributes
hyperparameter_ranges
{}
modifies_features
True
modifies_target
False
name
DFS Transformer
training_only
False
Methods
Constructs a new component with the same parameters and random state.
Returns the default parameters for this component.
Describe a component and its parameters.
Fits the DFSTransformer Transformer component.
Fits on X and transforms X.
Loads component at file path.
Returns boolean determining if component needs fitting before calling predict, predict_proba, transform, or feature_importances.
Returns the parameters which were used to initialize the component.
Saves component at file path.
Computes the feature matrix for the input X using featuretools' dfs algorithm.
- clone(self)#
Constructs a new component with the same parameters and random state.
- Returns
A new instance of this component with identical parameters and random state.
- default_parameters(cls)#
Returns the default parameters for this component.
Our convention is that Component.default_parameters == Component().parameters.
- Returns
Default parameters for this component.
- Return type
dict
- describe(self, print_name=False, return_dict=False)#
Describe a component and its parameters.
- Parameters
print_name (bool, optional) – whether to print name of component
return_dict (bool, optional) – whether to return description as dictionary in the format {“name”: name, “parameters”: parameters}
- Returns
Returns dictionary if return_dict is True, else None.
- Return type
None or dict
- fit(self, X, y=None)[source]#
Fits the DFSTransformer Transformer component.
- Parameters
X (pd.DataFrame, np.array) – The input data to transform, of shape [n_samples, n_features].
y (pd.Series) – The target training data of length [n_samples].
- Returns
self
- fit_transform(self, X, y=None)#
Fits on X and transforms X.
- Parameters
X (pd.DataFrame) – Data to fit and transform.
y (pd.Series) – Target data.
- Returns
Transformed X.
- Return type
pd.DataFrame
- Raises
MethodPropertyNotFoundError – If transformer does not have a transform method or a component_obj that implements transform.
- static load(file_path)#
Loads component at file path.
- Parameters
file_path (str) – Location to load file.
- Returns
ComponentBase object
- needs_fitting(self)#
Returns boolean determining if component needs fitting before calling predict, predict_proba, transform, or feature_importances.
This can be overridden to False for components that do not need to be fit or whose fit methods do nothing.
- Returns
True.
- property parameters(self)#
Returns the parameters which were used to initialize the component.
- save(self, file_path, pickle_protocol=cloudpickle.DEFAULT_PROTOCOL)#
Saves component at file path.
- Parameters
file_path (str) – Location to save file.
pickle_protocol (int) – The pickle data stream format.
- transform(self, X, y=None)[source]#
Computes the feature matrix for the input X using featuretools’ dfs algorithm.
- Parameters
X (pd.DataFrame or np.ndarray) – The input training data to transform. Has shape [n_samples, n_features]
y (pd.Series, optional) – Ignored.
- Returns
Feature matrix
- Return type
pd.DataFrame
- class evalml.pipelines.components.transformers.preprocessing.DropNaNRowsTransformer(parameters=None, component_obj=None, random_seed=0, **kwargs)[source]#
Transformer to drop rows with NaN values.
- Parameters
random_seed (int) – Seed for the random number generator. Is not used by this component. Defaults to 0.
Attributes
hyperparameter_ranges
{}
modifies_features
True
modifies_target
True
name
Drop NaN Rows Transformer
training_only
False
Methods
Constructs a new component with the same parameters and random state.
Returns the default parameters for this component.
Describe a component and its parameters.
Fits component to data.
Fits on X and transforms X.
Loads component at file path.
Returns boolean determining if component needs fitting before calling predict, predict_proba, transform, or feature_importances.
Returns the parameters which were used to initialize the component.
Saves component at file path.
Transforms data using fitted component.
- clone(self)#
Constructs a new component with the same parameters and random state.
- Returns
A new instance of this component with identical parameters and random state.
- default_parameters(cls)#
Returns the default parameters for this component.
Our convention is that Component.default_parameters == Component().parameters.
- Returns
Default parameters for this component.
- Return type
dict
- describe(self, print_name=False, return_dict=False)#
Describe a component and its parameters.
- Parameters
print_name (bool, optional) – whether to print name of component
return_dict (bool, optional) – whether to return description as dictionary in the format {“name”: name, “parameters”: parameters}
- Returns
Returns dictionary if return_dict is True, else None.
- Return type
None or dict
- fit(self, X, y=None)[source]#
Fits component to data.
- Parameters
X (pd.DataFrame) – The input training data of shape [n_samples, n_features].
y (pd.Series, optional) – The target training data of length [n_samples].
- Returns
self
- fit_transform(self, X, y=None)#
Fits on X and transforms X.
- Parameters
X (pd.DataFrame) – Data to fit and transform.
y (pd.Series) – Target data.
- Returns
Transformed X.
- Return type
pd.DataFrame
- Raises
MethodPropertyNotFoundError – If transformer does not have a transform method or a component_obj that implements transform.
- static load(file_path)#
Loads component at file path.
- Parameters
file_path (str) – Location to load file.
- Returns
ComponentBase object
- needs_fitting(self)#
Returns boolean determining if component needs fitting before calling predict, predict_proba, transform, or feature_importances.
This can be overridden to False for components that do not need to be fit or whose fit methods do nothing.
- Returns
True.
- property parameters(self)#
Returns the parameters which were used to initialize the component.
- save(self, file_path, pickle_protocol=cloudpickle.DEFAULT_PROTOCOL)#
Saves component at file path.
- Parameters
file_path (str) – Location to save file.
pickle_protocol (int) – The pickle data stream format.
- class evalml.pipelines.components.transformers.preprocessing.DropNullColumns(pct_null_threshold=1.0, random_seed=0, **kwargs)[source]#
Transformer to drop features whose percentage of NaN values exceeds a specified threshold.
- Parameters
pct_null_threshold (float) – The percentage of NaN values in an input feature to drop. Must be a value between [0, 1] inclusive. If equal to 0.0, will drop columns with any null values. If equal to 1.0, will drop columns with all null values. Defaults to 0.95.
random_seed (int) – Seed for the random number generator. Defaults to 0.
Attributes
hyperparameter_ranges
{}
modifies_features
True
modifies_target
False
name
Drop Null Columns Transformer
training_only
False
Methods
Constructs a new component with the same parameters and random state.
Returns the default parameters for this component.
Describe a component and its parameters.
Fits component to data.
Fits on X and transforms X.
Loads component at file path.
Returns boolean determining if component needs fitting before calling predict, predict_proba, transform, or feature_importances.
Returns the parameters which were used to initialize the component.
Saves component at file path.
Transforms data X by dropping columns that exceed the threshold of null values.
- clone(self)#
Constructs a new component with the same parameters and random state.
- Returns
A new instance of this component with identical parameters and random state.
- default_parameters(cls)#
Returns the default parameters for this component.
Our convention is that Component.default_parameters == Component().parameters.
- Returns
Default parameters for this component.
- Return type
dict
- describe(self, print_name=False, return_dict=False)#
Describe a component and its parameters.
- Parameters
print_name (bool, optional) – whether to print name of component
return_dict (bool, optional) – whether to return description as dictionary in the format {“name”: name, “parameters”: parameters}
- Returns
Returns dictionary if return_dict is True, else None.
- Return type
None or dict
- fit(self, X, y=None)[source]#
Fits component to data.
- Parameters
X (pd.DataFrame) – The input training data of shape [n_samples, n_features].
y (pd.Series, optional) – The target training data of length [n_samples].
- Returns
self
- fit_transform(self, X, y=None)#
Fits on X and transforms X.
- Parameters
X (pd.DataFrame) – Data to fit and transform.
y (pd.Series) – Target data.
- Returns
Transformed X.
- Return type
pd.DataFrame
- Raises
MethodPropertyNotFoundError – If transformer does not have a transform method or a component_obj that implements transform.
- static load(file_path)#
Loads component at file path.
- Parameters
file_path (str) – Location to load file.
- Returns
ComponentBase object
- needs_fitting(self)#
Returns boolean determining if component needs fitting before calling predict, predict_proba, transform, or feature_importances.
This can be overridden to False for components that do not need to be fit or whose fit methods do nothing.
- Returns
True.
- property parameters(self)#
Returns the parameters which were used to initialize the component.
- save(self, file_path, pickle_protocol=cloudpickle.DEFAULT_PROTOCOL)#
Saves component at file path.
- Parameters
file_path (str) – Location to save file.
pickle_protocol (int) – The pickle data stream format.
- class evalml.pipelines.components.transformers.preprocessing.DropRowsTransformer(indices_to_drop=None, random_seed=0)[source]#
Transformer to drop rows specified by row indices.
- Parameters
indices_to_drop (list) – List of indices to drop in the input data. Defaults to None.
random_seed (int) – Seed for the random number generator. Is not used by this component. Defaults to 0.
Attributes
hyperparameter_ranges
{}
modifies_features
True
modifies_target
True
name
Drop Rows Transformer
training_only
True
Methods
Constructs a new component with the same parameters and random state.
Returns the default parameters for this component.
Describe a component and its parameters.
Fits component to data.
Fits on X and transforms X.
Loads component at file path.
Returns boolean determining if component needs fitting before calling predict, predict_proba, transform, or feature_importances.
Returns the parameters which were used to initialize the component.
Saves component at file path.
Transforms data using fitted component.
- clone(self)#
Constructs a new component with the same parameters and random state.
- Returns
A new instance of this component with identical parameters and random state.
- default_parameters(cls)#
Returns the default parameters for this component.
Our convention is that Component.default_parameters == Component().parameters.
- Returns
Default parameters for this component.
- Return type
dict
- describe(self, print_name=False, return_dict=False)#
Describe a component and its parameters.
- Parameters
print_name (bool, optional) – whether to print name of component
return_dict (bool, optional) – whether to return description as dictionary in the format {“name”: name, “parameters”: parameters}
- Returns
Returns dictionary if return_dict is True, else None.
- Return type
None or dict
- fit(self, X, y=None)[source]#
Fits component to data.
- Parameters
X (pd.DataFrame) – The input training data of shape [n_samples, n_features].
y (pd.Series, optional) – The target training data of length [n_samples].
- Returns
self
- Raises
ValueError – If indices to drop do not exist in input features or target.
- fit_transform(self, X, y=None)#
Fits on X and transforms X.
- Parameters
X (pd.DataFrame) – Data to fit and transform.
y (pd.Series) – Target data.
- Returns
Transformed X.
- Return type
pd.DataFrame
- Raises
MethodPropertyNotFoundError – If transformer does not have a transform method or a component_obj that implements transform.
- static load(file_path)#
Loads component at file path.
- Parameters
file_path (str) – Location to load file.
- Returns
ComponentBase object
- needs_fitting(self)#
Returns boolean determining if component needs fitting before calling predict, predict_proba, transform, or feature_importances.
This can be overridden to False for components that do not need to be fit or whose fit methods do nothing.
- Returns
True.
- property parameters(self)#
Returns the parameters which were used to initialize the component.
- save(self, file_path, pickle_protocol=cloudpickle.DEFAULT_PROTOCOL)#
Saves component at file path.
- Parameters
file_path (str) – Location to save file.
pickle_protocol (int) – The pickle data stream format.
- class evalml.pipelines.components.transformers.preprocessing.EmailFeaturizer(random_seed=0, **kwargs)[source]#
Transformer that can automatically extract features from emails.
- Parameters
random_seed (int) – Seed for the random number generator. Defaults to 0.
Attributes
hyperparameter_ranges
{}
modifies_features
True
modifies_target
False
name
Email Featurizer
training_only
False
Methods
Constructs a new component with the same parameters and random state.
Returns the default parameters for this component.
Describe a component and its parameters.
Fits component to data.
Fits on X and transforms X.
Loads component at file path.
Returns boolean determining if component needs fitting before calling predict, predict_proba, transform, or feature_importances.
Returns the parameters which were used to initialize the component.
Saves component at file path.
Transforms data X.
- clone(self)#
Constructs a new component with the same parameters and random state.
- Returns
A new instance of this component with identical parameters and random state.
- default_parameters(cls)#
Returns the default parameters for this component.
Our convention is that Component.default_parameters == Component().parameters.
- Returns
Default parameters for this component.
- Return type
dict
- describe(self, print_name=False, return_dict=False)#
Describe a component and its parameters.
- Parameters
print_name (bool, optional) – whether to print name of component
return_dict (bool, optional) – whether to return description as dictionary in the format {“name”: name, “parameters”: parameters}
- Returns
Returns dictionary if return_dict is True, else None.
- Return type
None or dict
- fit(self, X, y=None)#
Fits component to data.
- Parameters
X (pd.DataFrame) – The input training data of shape [n_samples, n_features]
y (pd.Series, optional) – The target training data of length [n_samples]
- Returns
self
- Raises
MethodPropertyNotFoundError – If component does not have a fit method or a component_obj that implements fit.
- fit_transform(self, X, y=None)#
Fits on X and transforms X.
- Parameters
X (pd.DataFrame) – Data to fit and transform.
y (pd.Series) – Target data.
- Returns
Transformed X.
- Return type
pd.DataFrame
- Raises
MethodPropertyNotFoundError – If transformer does not have a transform method or a component_obj that implements transform.
- static load(file_path)#
Loads component at file path.
- Parameters
file_path (str) – Location to load file.
- Returns
ComponentBase object
- needs_fitting(self)#
Returns boolean determining if component needs fitting before calling predict, predict_proba, transform, or feature_importances.
This can be overridden to False for components that do not need to be fit or whose fit methods do nothing.
- Returns
True.
- property parameters(self)#
Returns the parameters which were used to initialize the component.
- save(self, file_path, pickle_protocol=cloudpickle.DEFAULT_PROTOCOL)#
Saves component at file path.
- Parameters
file_path (str) – Location to save file.
pickle_protocol (int) – The pickle data stream format.
- transform(self, X, y=None)#
Transforms data X.
- Parameters
X (pd.DataFrame) – Data to transform.
y (pd.Series, optional) – Target data.
- Returns
Transformed X
- Return type
pd.DataFrame
- Raises
MethodPropertyNotFoundError – If transformer does not have a transform method or a component_obj that implements transform.
- class evalml.pipelines.components.transformers.preprocessing.LogTransformer(random_seed=0)[source]#
Applies a log transformation to the target data.
Attributes
hyperparameter_ranges
{}
modifies_features
False
modifies_target
True
name
Log Transformer
training_only
False
Methods
Constructs a new component with the same parameters and random state.
Returns the default parameters for this component.
Describe a component and its parameters.
Fits the LogTransformer.
Log transforms the target variable.
Apply exponential to target data.
Loads component at file path.
Returns boolean determining if component needs fitting before calling predict, predict_proba, transform, or feature_importances.
Returns the parameters which were used to initialize the component.
Saves component at file path.
Log transforms the target variable.
- clone(self)#
Constructs a new component with the same parameters and random state.
- Returns
A new instance of this component with identical parameters and random state.
- default_parameters(cls)#
Returns the default parameters for this component.
Our convention is that Component.default_parameters == Component().parameters.
- Returns
Default parameters for this component.
- Return type
dict
- describe(self, print_name=False, return_dict=False)#
Describe a component and its parameters.
- Parameters
print_name (bool, optional) – whether to print name of component
return_dict (bool, optional) – whether to return description as dictionary in the format {“name”: name, “parameters”: parameters}
- Returns
Returns dictionary if return_dict is True, else None.
- Return type
None or dict
- fit(self, X, y=None)[source]#
Fits the LogTransformer.
- Parameters
X (pd.DataFrame or np.ndarray) – Ignored.
y (pd.Series, optional) – Ignored.
- Returns
self
- fit_transform(self, X, y=None)[source]#
Log transforms the target variable.
- Parameters
X (pd.DataFrame, optional) – Ignored.
y (pd.Series) – Target variable to log transform.
- Returns
- The input features are returned without modification. The target
variable y is log transformed.
- Return type
tuple of pd.DataFrame, pd.Series
- inverse_transform(self, y)[source]#
Apply exponential to target data.
- Parameters
y (pd.Series) – Target variable.
- Returns
Target with exponential applied.
- Return type
pd.Series
- static load(file_path)#
Loads component at file path.
- Parameters
file_path (str) – Location to load file.
- Returns
ComponentBase object
- needs_fitting(self)#
Returns boolean determining if component needs fitting before calling predict, predict_proba, transform, or feature_importances.
This can be overridden to False for components that do not need to be fit or whose fit methods do nothing.
- Returns
True.
- property parameters(self)#
Returns the parameters which were used to initialize the component.
- save(self, file_path, pickle_protocol=cloudpickle.DEFAULT_PROTOCOL)#
Saves component at file path.
- Parameters
file_path (str) – Location to save file.
pickle_protocol (int) – The pickle data stream format.
- transform(self, X, y=None)[source]#
Log transforms the target variable.
- Parameters
X (pd.DataFrame, optional) – Ignored.
y (pd.Series) – Target data to log transform.
- Returns
- The input features are returned without modification. The target
variable y is log transformed.
- Return type
tuple of pd.DataFrame, pd.Series
- class evalml.pipelines.components.transformers.preprocessing.LSA(random_seed=0, **kwargs)[source]#
Transformer to calculate the Latent Semantic Analysis Values of text input.
- Parameters
random_seed (int) – Seed for the random number generator. Defaults to 0.
Attributes
hyperparameter_ranges
{}
modifies_features
True
modifies_target
False
name
LSA Transformer
training_only
False
Methods
Constructs a new component with the same parameters and random state.
Returns the default parameters for this component.
Describe a component and its parameters.
Fits the input data.
Fits on X and transforms X.
Loads component at file path.
Returns boolean determining if component needs fitting before calling predict, predict_proba, transform, or feature_importances.
Returns the parameters which were used to initialize the component.
Saves component at file path.
Transforms data X by applying the LSA pipeline.
- clone(self)#
Constructs a new component with the same parameters and random state.
- Returns
A new instance of this component with identical parameters and random state.
- default_parameters(cls)#
Returns the default parameters for this component.
Our convention is that Component.default_parameters == Component().parameters.
- Returns
Default parameters for this component.
- Return type
dict
- describe(self, print_name=False, return_dict=False)#
Describe a component and its parameters.
- Parameters
print_name (bool, optional) – whether to print name of component
return_dict (bool, optional) – whether to return description as dictionary in the format {“name”: name, “parameters”: parameters}
- Returns
Returns dictionary if return_dict is True, else None.
- Return type
None or dict
- fit(self, X, y=None)[source]#
Fits the input data.
- Parameters
X (pd.DataFrame) – The data to transform.
y (pd.Series, optional) – Ignored.
- Returns
self
- fit_transform(self, X, y=None)#
Fits on X and transforms X.
- Parameters
X (pd.DataFrame) – Data to fit and transform.
y (pd.Series) – Target data.
- Returns
Transformed X.
- Return type
pd.DataFrame
- Raises
MethodPropertyNotFoundError – If transformer does not have a transform method or a component_obj that implements transform.
- static load(file_path)#
Loads component at file path.
- Parameters
file_path (str) – Location to load file.
- Returns
ComponentBase object
- needs_fitting(self)#
Returns boolean determining if component needs fitting before calling predict, predict_proba, transform, or feature_importances.
This can be overridden to False for components that do not need to be fit or whose fit methods do nothing.
- Returns
True.
- property parameters(self)#
Returns the parameters which were used to initialize the component.
- save(self, file_path, pickle_protocol=cloudpickle.DEFAULT_PROTOCOL)#
Saves component at file path.
- Parameters
file_path (str) – Location to save file.
pickle_protocol (int) – The pickle data stream format.
- transform(self, X, y=None)[source]#
Transforms data X by applying the LSA pipeline.
- Parameters
X (pd.DataFrame) – The data to transform.
y (pd.Series, optional) – Ignored.
- Returns
- Transformed X. The original column is removed and replaced with two columns of the
format LSA(original_column_name)[feature_number], where feature_number is 0 or 1.
- Return type
pd.DataFrame
- class evalml.pipelines.components.transformers.preprocessing.NaturalLanguageFeaturizer(random_seed=0, **kwargs)[source]#
Transformer that can automatically featurize text columns using featuretools’ nlp_primitives.
Since models cannot handle non-numeric data, any text must be broken down into features that provide useful information about that text. This component splits each text column into several informative features: Diversity Score, Mean Characters per Word, Polarity Score, LSA (Latent Semantic Analysis), Number of Characters, and Number of Words. Calling transform on this component will replace any text columns in the given dataset with these numeric columns.
- Parameters
random_seed (int) – Seed for the random number generator. Defaults to 0.
Attributes
hyperparameter_ranges
{}
modifies_features
True
modifies_target
False
name
Natural Language Featurizer
training_only
False
Methods
Constructs a new component with the same parameters and random state.
Returns the default parameters for this component.
Describe a component and its parameters.
Fits component to data.
Fits on X and transforms X.
Loads component at file path.
Returns boolean determining if component needs fitting before calling predict, predict_proba, transform, or feature_importances.
Returns the parameters which were used to initialize the component.
Saves component at file path.
Transforms data X by creating new features using existing text columns.
- clone(self)#
Constructs a new component with the same parameters and random state.
- Returns
A new instance of this component with identical parameters and random state.
- default_parameters(cls)#
Returns the default parameters for this component.
Our convention is that Component.default_parameters == Component().parameters.
- Returns
Default parameters for this component.
- Return type
dict
- describe(self, print_name=False, return_dict=False)#
Describe a component and its parameters.
- Parameters
print_name (bool, optional) – whether to print name of component
return_dict (bool, optional) – whether to return description as dictionary in the format {“name”: name, “parameters”: parameters}
- Returns
Returns dictionary if return_dict is True, else None.
- Return type
None or dict
- fit(self, X, y=None)[source]#
Fits component to data.
- Parameters
X (pd.DataFrame or np.ndarray) – The input training data of shape [n_samples, n_features]
y (pd.Series) – The target training data of length [n_samples]
- Returns
self
- fit_transform(self, X, y=None)#
Fits on X and transforms X.
- Parameters
X (pd.DataFrame) – Data to fit and transform.
y (pd.Series) – Target data.
- Returns
Transformed X.
- Return type
pd.DataFrame
- Raises
MethodPropertyNotFoundError – If transformer does not have a transform method or a component_obj that implements transform.
- static load(file_path)#
Loads component at file path.
- Parameters
file_path (str) – Location to load file.
- Returns
ComponentBase object
- needs_fitting(self)#
Returns boolean determining if component needs fitting before calling predict, predict_proba, transform, or feature_importances.
This can be overridden to False for components that do not need to be fit or whose fit methods do nothing.
- Returns
True.
- property parameters(self)#
Returns the parameters which were used to initialize the component.
- save(self, file_path, pickle_protocol=cloudpickle.DEFAULT_PROTOCOL)#
Saves component at file path.
- Parameters
file_path (str) – Location to save file.
pickle_protocol (int) – The pickle data stream format.
- class evalml.pipelines.components.transformers.preprocessing.PolynomialDetrender(degree=1, random_seed=0, **kwargs)[source]#
Removes trends from time series by fitting a polynomial to the data.
- Parameters
degree (int) – Degree for the polynomial. If 1, linear model is fit to the data. If 2, quadratic model is fit, etc. Defaults to 1.
random_seed (int) – Seed for the random number generator. Defaults to 0.
Attributes
hyperparameter_ranges
{ “degree”: Integer(1, 3)}
modifies_features
False
modifies_target
True
name
Polynomial Detrender
training_only
False
Methods
Constructs a new component with the same parameters and random state.
Returns the default parameters for this component.
Describe a component and its parameters.
Fits the PolynomialDetrender.
Removes fitted trend from target variable.
Adds back fitted trend to target variable.
Loads component at file path.
Returns boolean determining if component needs fitting before calling predict, predict_proba, transform, or feature_importances.
Returns the parameters which were used to initialize the component.
Saves component at file path.
Removes fitted trend from target variable.
- clone(self)#
Constructs a new component with the same parameters and random state.
- Returns
A new instance of this component with identical parameters and random state.
- default_parameters(cls)#
Returns the default parameters for this component.
Our convention is that Component.default_parameters == Component().parameters.
- Returns
Default parameters for this component.
- Return type
dict
- describe(self, print_name=False, return_dict=False)#
Describe a component and its parameters.
- Parameters
print_name (bool, optional) – whether to print name of component
return_dict (bool, optional) – whether to return description as dictionary in the format {“name”: name, “parameters”: parameters}
- Returns
Returns dictionary if return_dict is True, else None.
- Return type
None or dict
- fit(self, X, y=None)[source]#
Fits the PolynomialDetrender.
- Parameters
X (pd.DataFrame, optional) – Ignored.
y (pd.Series) – Target variable to detrend.
- Returns
self
- Raises
ValueError – If y is None.
- fit_transform(self, X, y=None)[source]#
Removes fitted trend from target variable.
- Parameters
X (pd.DataFrame, optional) – Ignored.
y (pd.Series) – Target variable to detrend.
- Returns
- The first element are the input features returned without modification.
The second element is the target variable y with the fitted trend removed.
- Return type
tuple of pd.DataFrame, pd.Series
- inverse_transform(self, y)[source]#
Adds back fitted trend to target variable.
- Parameters
y (pd.Series) – Target variable.
- Returns
- The first element are the input features returned without modification.
The second element is the target variable y with the trend added back.
- Return type
tuple of pd.DataFrame, pd.Series
- Raises
ValueError – If y is None.
- static load(file_path)#
Loads component at file path.
- Parameters
file_path (str) – Location to load file.
- Returns
ComponentBase object
- needs_fitting(self)#
Returns boolean determining if component needs fitting before calling predict, predict_proba, transform, or feature_importances.
This can be overridden to False for components that do not need to be fit or whose fit methods do nothing.
- Returns
True.
- property parameters(self)#
Returns the parameters which were used to initialize the component.
- save(self, file_path, pickle_protocol=cloudpickle.DEFAULT_PROTOCOL)#
Saves component at file path.
- Parameters
file_path (str) – Location to save file.
pickle_protocol (int) – The pickle data stream format.
- transform(self, X, y=None)[source]#
Removes fitted trend from target variable.
- Parameters
X (pd.DataFrame, optional) – Ignored.
y (pd.Series) – Target variable to detrend.
- Returns
- The input features are returned without modification. The target
variable y is detrended
- Return type
tuple of pd.DataFrame, pd.Series
- class evalml.pipelines.components.transformers.preprocessing.ReplaceNullableTypes(random_seed=0, **kwargs)[source]#
Transformer to replace features with the new nullable dtypes with a dtype that is compatible in EvalML.
Attributes
hyperparameter_ranges
None
modifies_features
True
modifies_target
{}
name
Replace Nullable Types Transformer
training_only
False
Methods
Constructs a new component with the same parameters and random state.
Returns the default parameters for this component.
Describe a component and its parameters.
Fits component to data.
Substitutes non-nullable types for the new pandas nullable types in the data and target data.
Loads component at file path.
Returns boolean determining if component needs fitting before calling predict, predict_proba, transform, or feature_importances.
Returns the parameters which were used to initialize the component.
Saves component at file path.
Transforms data by replacing columns that contain nullable types with the appropriate replacement type.
- clone(self)#
Constructs a new component with the same parameters and random state.
- Returns
A new instance of this component with identical parameters and random state.
- default_parameters(cls)#
Returns the default parameters for this component.
Our convention is that Component.default_parameters == Component().parameters.
- Returns
Default parameters for this component.
- Return type
dict
- describe(self, print_name=False, return_dict=False)#
Describe a component and its parameters.
- Parameters
print_name (bool, optional) – whether to print name of component
return_dict (bool, optional) – whether to return description as dictionary in the format {“name”: name, “parameters”: parameters}
- Returns
Returns dictionary if return_dict is True, else None.
- Return type
None or dict
- fit(self, X, y=None)[source]#
Fits component to data.
- Parameters
X (pd.DataFrame) – The input training data of shape [n_samples, n_features].
y (pd.Series, optional) – The target training data of length [n_samples].
- Returns
self
- fit_transform(self, X, y=None)[source]#
Substitutes non-nullable types for the new pandas nullable types in the data and target data.
- Parameters
X (pd.DataFrame, optional) – Input features.
y (pd.Series) – Target data.
- Returns
The input features and target data with the non-nullable types set.
- Return type
tuple of pd.DataFrame, pd.Series
- static load(file_path)#
Loads component at file path.
- Parameters
file_path (str) – Location to load file.
- Returns
ComponentBase object
- needs_fitting(self)#
Returns boolean determining if component needs fitting before calling predict, predict_proba, transform, or feature_importances.
This can be overridden to False for components that do not need to be fit or whose fit methods do nothing.
- Returns
True.
- property parameters(self)#
Returns the parameters which were used to initialize the component.
- save(self, file_path, pickle_protocol=cloudpickle.DEFAULT_PROTOCOL)#
Saves component at file path.
- Parameters
file_path (str) – Location to save file.
pickle_protocol (int) – The pickle data stream format.
- transform(self, X, y=None)[source]#
Transforms data by replacing columns that contain nullable types with the appropriate replacement type.
“float64” for nullable integers and “category” for nullable booleans.
- Parameters
X (pd.DataFrame) – Data to transform
y (pd.Series, optional) – Target data to transform
- Returns
Transformed X pd.Series: Transformed y
- Return type
pd.DataFrame
- class evalml.pipelines.components.transformers.preprocessing.TextTransformer(component_obj=None, random_seed=0, **kwargs)[source]#
Base class for all transformers working with text features.
- Parameters
component_obj (obj) – Third-party objects useful in component implementation. Defaults to None.
random_seed (int) – Seed for the random number generator. Defaults to 0.
Attributes
modifies_features
True
modifies_target
False
training_only
False
Methods
Constructs a new component with the same parameters and random state.
Returns the default parameters for this component.
Describe a component and its parameters.
Fits component to data.
Fits on X and transforms X.
Loads component at file path.
Returns string name of this component.
Returns boolean determining if component needs fitting before calling predict, predict_proba, transform, or feature_importances.
Returns the parameters which were used to initialize the component.
Saves component at file path.
Transforms data X.
- clone(self)#
Constructs a new component with the same parameters and random state.
- Returns
A new instance of this component with identical parameters and random state.
- default_parameters(cls)#
Returns the default parameters for this component.
Our convention is that Component.default_parameters == Component().parameters.
- Returns
Default parameters for this component.
- Return type
dict
- describe(self, print_name=False, return_dict=False)#
Describe a component and its parameters.
- Parameters
print_name (bool, optional) – whether to print name of component
return_dict (bool, optional) – whether to return description as dictionary in the format {“name”: name, “parameters”: parameters}
- Returns
Returns dictionary if return_dict is True, else None.
- Return type
None or dict
- fit(self, X, y=None)#
Fits component to data.
- Parameters
X (pd.DataFrame) – The input training data of shape [n_samples, n_features]
y (pd.Series, optional) – The target training data of length [n_samples]
- Returns
self
- Raises
MethodPropertyNotFoundError – If component does not have a fit method or a component_obj that implements fit.
- fit_transform(self, X, y=None)#
Fits on X and transforms X.
- Parameters
X (pd.DataFrame) – Data to fit and transform.
y (pd.Series) – Target data.
- Returns
Transformed X.
- Return type
pd.DataFrame
- Raises
MethodPropertyNotFoundError – If transformer does not have a transform method or a component_obj that implements transform.
- static load(file_path)#
Loads component at file path.
- Parameters
file_path (str) – Location to load file.
- Returns
ComponentBase object
- property name(cls)#
Returns string name of this component.
- needs_fitting(self)#
Returns boolean determining if component needs fitting before calling predict, predict_proba, transform, or feature_importances.
This can be overridden to False for components that do not need to be fit or whose fit methods do nothing.
- Returns
True.
- property parameters(self)#
Returns the parameters which were used to initialize the component.
- save(self, file_path, pickle_protocol=cloudpickle.DEFAULT_PROTOCOL)#
Saves component at file path.
- Parameters
file_path (str) – Location to save file.
pickle_protocol (int) – The pickle data stream format.
- abstract transform(self, X, y=None)#
Transforms data X.
- Parameters
X (pd.DataFrame) – Data to transform.
y (pd.Series, optional) – Target data.
- Returns
Transformed X
- Return type
pd.DataFrame
- Raises
MethodPropertyNotFoundError – If transformer does not have a transform method or a component_obj that implements transform.
- class evalml.pipelines.components.transformers.preprocessing.TimeSeriesFeaturizer(time_index=None, max_delay=2, gap=0, forecast_horizon=1, conf_level=0.05, rolling_window_size=0.25, delay_features=True, delay_target=True, random_seed=0, **kwargs)[source]#
Transformer that delays input features and target variable for time series problems.
This component uses an algorithm based on the autocorrelation values of the target variable to determine which lags to select from the set of all possible lags.
The algorithm is based on the idea that the local maxima of the autocorrelation function indicate the lags that have the most impact on the present time.
The algorithm computes the autocorrelation values and finds the local maxima, called “peaks”, that are significant at the given conf_level. Since lags in the range [0, 10] tend to be predictive but not local maxima, the union of the peaks is taken with the significant lags in the range [0, 10]. At the end, only selected lags in the range [0, max_delay] are used.
Parametrizing the algorithm by conf_level lets the AutoMLAlgorithm tune the set of lags chosen so that the chances of finding a good set of lags is higher.
Using conf_level value of 1 selects all possible lags.
- Parameters
time_index (str) – Name of the column containing the datetime information used to order the data. Ignored.
max_delay (int) – Maximum number of time units to delay each feature. Defaults to 2.
forecast_horizon (int) – The number of time periods the pipeline is expected to forecast.
conf_level (float) – Float in range (0, 1] that determines the confidence interval size used to select which lags to compute from the set of [1, max_delay]. A delay of 1 will always be computed. If 1, selects all possible lags in the set of [1, max_delay], inclusive.
rolling_window_size (float) – Float in range (0, 1] that determines the size of the window used for rolling features. Size is computed as rolling_window_size * max_delay.
delay_features (bool) – Whether to delay the input features. Defaults to True.
delay_target (bool) – Whether to delay the target. Defaults to True.
gap (int) – The number of time units between when the features are collected and when the target is collected. For example, if you are predicting the next time step’s target, gap=1. This is only needed because when gap=0, we need to be sure to start the lagging of the target variable at 1. Defaults to 1.
random_seed (int) – Seed for the random number generator. This transformer performs the same regardless of the random seed provided.
Attributes
hyperparameter_ranges
Real(0.001, 1.0), “rolling_window_size”: Real(0.001, 1.0)}:type: {“conf_level”
modifies_features
True
modifies_target
False
name
Time Series Featurizer
needs_fitting
True
target_colname_prefix
target_delay_{}
training_only
False
Methods
Constructs a new component with the same parameters and random state.
Returns the default parameters for this component.
Describe a component and its parameters.
Fits the DelayFeatureTransformer.
Fit the component and transform the input data.
Loads component at file path.
Returns the parameters which were used to initialize the component.
Saves component at file path.
Computes the delayed values and rolling means for X and y.
- clone(self)#
Constructs a new component with the same parameters and random state.
- Returns
A new instance of this component with identical parameters and random state.
- default_parameters(cls)#
Returns the default parameters for this component.
Our convention is that Component.default_parameters == Component().parameters.
- Returns
Default parameters for this component.
- Return type
dict
- describe(self, print_name=False, return_dict=False)#
Describe a component and its parameters.
- Parameters
print_name (bool, optional) – whether to print name of component
return_dict (bool, optional) – whether to return description as dictionary in the format {“name”: name, “parameters”: parameters}
- Returns
Returns dictionary if return_dict is True, else None.
- Return type
None or dict
- fit(self, X, y=None)[source]#
Fits the DelayFeatureTransformer.
- Parameters
X (pd.DataFrame or np.ndarray) – The input training data of shape [n_samples, n_features]
y (pd.Series, optional) – The target training data of length [n_samples]
- Returns
self
- Raises
ValueError – if self.time_index is None
- fit_transform(self, X, y=None)[source]#
Fit the component and transform the input data.
- Parameters
X (pd.DataFrame) – Data to transform.
y (pd.Series, or None) – Target.
- Returns
Transformed X.
- Return type
pd.DataFrame
- static load(file_path)#
Loads component at file path.
- Parameters
file_path (str) – Location to load file.
- Returns
ComponentBase object
- property parameters(self)#
Returns the parameters which were used to initialize the component.
- save(self, file_path, pickle_protocol=cloudpickle.DEFAULT_PROTOCOL)#
Saves component at file path.
- Parameters
file_path (str) – Location to save file.
pickle_protocol (int) – The pickle data stream format.
- transform(self, X, y=None)[source]#
Computes the delayed values and rolling means for X and y.
The chosen delays are determined by the autocorrelation function of the target variable. See the class docstring for more information on how they are chosen. If y is None, all possible lags are chosen.
If y is not None, it will also compute the delayed values for the target variable.
The rolling means for all numeric features in X and y, if y is numeric, are also returned.
- Parameters
X (pd.DataFrame or None) – Data to transform. None is expected when only the target variable is being used.
y (pd.Series, or None) – Target.
- Returns
Transformed X. No original features are returned.
- Return type
pd.DataFrame
- class evalml.pipelines.components.transformers.preprocessing.TimeSeriesRegularizer(time_index=None, frequency_payload=None, window_length=4, threshold=0.4, random_seed=0, **kwargs)[source]#
Transformer that regularizes an inconsistently spaced datetime column.
If X is passed in to fit/transform, the column time_index will be checked for an inferrable offset frequency. If the time_index column is perfectly inferrable then this Transformer will do nothing and return the original X and y.
If X does not have a perfectly inferrable frequency but one can be estimated, then X and y will be reformatted based on the estimated frequency for time_index. In the original X and y passed: - Missing datetime values will be added and will have their corresponding columns in X and y set to None. - Duplicate datetime values will be dropped. - Extra datetime values will be dropped. - If it can be determined that a duplicate or extra value is misaligned, then it will be repositioned to take the place of a missing value.
This Transformer should be used before the TimeSeriesImputer in order to impute the missing values that were added to X and y (if passed).
- Parameters
time_index (string) – Name of the column containing the datetime information used to order the data, required. Defaults to None.
frequency_payload (tuple) – Payload returned from Woodwork’s infer_frequency function where debug is True. Defaults to None.
window_length (int) – The size of the rolling window over which inference is conducted to determine the prevalence of uninferrable frequencies.
5. (Lower values make this component more sensitive to recognizing numerous faulty datetime values. Defaults to) –
threshold (float) – The minimum percentage of windows that need to have been able to infer a frequency. Lower values make this component more
0.8. (sensitive to recognizing numerous faulty datetime values. Defaults to) –
random_seed (int) – Seed for the random number generator. This transformer performs the same regardless of the random seed provided.
0. (Defaults to) –
- Raises
ValueError – if the frequency_payload parameter has not been passed a tuple
Attributes
hyperparameter_ranges
{}
modifies_features
True
modifies_target
True
name
Time Series Regularizer
training_only
True
Methods
Constructs a new component with the same parameters and random state.
Returns the default parameters for this component.
Describe a component and its parameters.
Fits the TimeSeriesRegularizer.
Fits on X and transforms X.
Loads component at file path.
Returns boolean determining if component needs fitting before calling predict, predict_proba, transform, or feature_importances.
Returns the parameters which were used to initialize the component.
Saves component at file path.
Regularizes a dataframe and target data to an inferrable offset frequency.
- clone(self)#
Constructs a new component with the same parameters and random state.
- Returns
A new instance of this component with identical parameters and random state.
- default_parameters(cls)#
Returns the default parameters for this component.
Our convention is that Component.default_parameters == Component().parameters.
- Returns
Default parameters for this component.
- Return type
dict
- describe(self, print_name=False, return_dict=False)#
Describe a component and its parameters.
- Parameters
print_name (bool, optional) – whether to print name of component
return_dict (bool, optional) – whether to return description as dictionary in the format {“name”: name, “parameters”: parameters}
- Returns
Returns dictionary if return_dict is True, else None.
- Return type
None or dict
- fit(self, X, y=None)[source]#
Fits the TimeSeriesRegularizer.
- Parameters
X (pd.DataFrame) – The input training data of shape [n_samples, n_features].
y (pd.Series, optional) – The target training data of length [n_samples].
- Returns
self
- Raises
ValueError – if self.time_index is None, if X and y have different lengths, if time_index in X does not have an offset frequency that can be estimated
TypeError – if the time_index column is not of type Datetime
KeyError – if the time_index column doesn’t exist
- fit_transform(self, X, y=None)#
Fits on X and transforms X.
- Parameters
X (pd.DataFrame) – Data to fit and transform.
y (pd.Series) – Target data.
- Returns
Transformed X.
- Return type
pd.DataFrame
- Raises
MethodPropertyNotFoundError – If transformer does not have a transform method or a component_obj that implements transform.
- static load(file_path)#
Loads component at file path.
- Parameters
file_path (str) – Location to load file.
- Returns
ComponentBase object
- needs_fitting(self)#
Returns boolean determining if component needs fitting before calling predict, predict_proba, transform, or feature_importances.
This can be overridden to False for components that do not need to be fit or whose fit methods do nothing.
- Returns
True.
- property parameters(self)#
Returns the parameters which were used to initialize the component.
- save(self, file_path, pickle_protocol=cloudpickle.DEFAULT_PROTOCOL)#
Saves component at file path.
- Parameters
file_path (str) – Location to save file.
pickle_protocol (int) – The pickle data stream format.
- transform(self, X, y=None)[source]#
Regularizes a dataframe and target data to an inferrable offset frequency.
A ‘clean’ X and y (if y was passed in) are created based on an inferrable offset frequency and matching datetime values with the original X and y are imputed into the clean X and y. Datetime values identified as misaligned are shifted into their appropriate position.
- Parameters
X (pd.DataFrame) – The input training data of shape [n_samples, n_features].
y (pd.Series, optional) – The target training data of length [n_samples].
- Returns
Data with an inferrable time_index offset frequency.
- Return type
(pd.DataFrame, pd.Series)
- class evalml.pipelines.components.transformers.preprocessing.URLFeaturizer(random_seed=0, **kwargs)[source]#
Transformer that can automatically extract features from URL.
- Parameters
random_seed (int) – Seed for the random number generator. Defaults to 0.
Attributes
hyperparameter_ranges
{}
modifies_features
True
modifies_target
False
name
URL Featurizer
training_only
False
Methods
Constructs a new component with the same parameters and random state.
Returns the default parameters for this component.
Describe a component and its parameters.
Fits component to data.
Fits on X and transforms X.
Loads component at file path.
Returns boolean determining if component needs fitting before calling predict, predict_proba, transform, or feature_importances.
Returns the parameters which were used to initialize the component.
Saves component at file path.
Transforms data X.
- clone(self)#
Constructs a new component with the same parameters and random state.
- Returns
A new instance of this component with identical parameters and random state.
- default_parameters(cls)#
Returns the default parameters for this component.
Our convention is that Component.default_parameters == Component().parameters.
- Returns
Default parameters for this component.
- Return type
dict
- describe(self, print_name=False, return_dict=False)#
Describe a component and its parameters.
- Parameters
print_name (bool, optional) – whether to print name of component
return_dict (bool, optional) – whether to return description as dictionary in the format {“name”: name, “parameters”: parameters}
- Returns
Returns dictionary if return_dict is True, else None.
- Return type
None or dict
- fit(self, X, y=None)#
Fits component to data.
- Parameters
X (pd.DataFrame) – The input training data of shape [n_samples, n_features]
y (pd.Series, optional) – The target training data of length [n_samples]
- Returns
self
- Raises
MethodPropertyNotFoundError – If component does not have a fit method or a component_obj that implements fit.
- fit_transform(self, X, y=None)#
Fits on X and transforms X.
- Parameters
X (pd.DataFrame) – Data to fit and transform.
y (pd.Series) – Target data.
- Returns
Transformed X.
- Return type
pd.DataFrame
- Raises
MethodPropertyNotFoundError – If transformer does not have a transform method or a component_obj that implements transform.
- static load(file_path)#
Loads component at file path.
- Parameters
file_path (str) – Location to load file.
- Returns
ComponentBase object
- needs_fitting(self)#
Returns boolean determining if component needs fitting before calling predict, predict_proba, transform, or feature_importances.
This can be overridden to False for components that do not need to be fit or whose fit methods do nothing.
- Returns
True.
- property parameters(self)#
Returns the parameters which were used to initialize the component.
- save(self, file_path, pickle_protocol=cloudpickle.DEFAULT_PROTOCOL)#
Saves component at file path.
- Parameters
file_path (str) – Location to save file.
pickle_protocol (int) – The pickle data stream format.
- transform(self, X, y=None)#
Transforms data X.
- Parameters
X (pd.DataFrame) – Data to transform.
y (pd.Series, optional) – Target data.
- Returns
Transformed X
- Return type
pd.DataFrame
- Raises
MethodPropertyNotFoundError – If transformer does not have a transform method or a component_obj that implements transform.