FeaturizationConfig Clase
Define la configuración de ingeniería de características para experimentos de aprendizaje automático automatizado en Azure Machine Learning.
Use la clase FeaturizationConfig en el parámetro featurization
de la clase AutoMLConfig. Para más información, consulte Configuración del entrenamiento de AutoML con Python.
Cree una clase FeaturizationConfig.
- Herencia
-
builtins.objectFeaturizationConfig
Constructor
FeaturizationConfig(blocked_transformers: List[str] | None = None, column_purposes: Dict[str, str] | None = None, transformer_params: Dict[str, List[Tuple[List[str], Dict[str, Any]]]] | None = None, drop_columns: List[str] | None = None, dataset_language: str | None = None, prediction_transform_type: str | None = None)
Parámetros
Nombre | Description |
---|---|
blocked_transformers
|
Lista de nombres de transformador que se bloquearán durante la caracterización. Valor predeterminado: None
|
column_purposes
|
Diccionario de nombres de columna y tipos de características que se usan para actualizar la finalidad de la columna. Valor predeterminado: None
|
transformer_params
|
Diccionario de transformadores y parámetros de personalización correspondientes. Valor predeterminado: None
|
drop_columns
|
Lista de columnas que se omitirán en el proceso de caracterización. Esta configuración está en desuso. Coloque las columnas de los conjuntos de datos como parte del proceso de preparación de datos antes de proporcionar los conjuntos de datos a AutoML. Valor predeterminado: None
|
prediction_transform_type
|
Estrategia del tipo de transformación de destino que se va a usar para convertir el tipo de columna de destino. Valor predeterminado: None
|
blocked_transformers
Requerido
|
Lista de nombres de transformador que se bloquearán durante la caracterización. |
column_purposes
Requerido
|
Diccionario de nombres de columna y tipos de características que se usan para actualizar la finalidad de la columna. |
transformer_params
Requerido
|
Diccionario de transformadores y parámetros de personalización correspondientes. |
drop_columns
Requerido
|
Lista de columnas que se omitirán en el proceso de caracterización. Esta configuración está en desuso. Coloque las columnas de los conjuntos de datos como parte del proceso de preparación de datos antes de proporcionar los conjuntos de datos a AutoML. |
dataset_language
|
Código ISO 639-3 de tres caracteres para los idiomas contenidos en el conjunto de datos. Los idiomas distintos del inglés solo se admiten si usa el proceso habilitado para GPU. El langugage_code "mul" se debe usar si el conjunto de datos contiene varios idiomas. Para encontrar códigos ISO 639-3 para diferentes idiomas, consulte https://en.wikipedia.org/wiki/List_of_ISO_639-3_codes. Valor predeterminado: None
|
prediction_transform_type
Requerido
|
Estrategia del tipo de transformación de destino que se va a usar para convertir el tipo de columna de destino. |
Comentarios
La personalización de caracterización tiene métodos que le permiten:
Agregar o quitar propósito de columna. Con los métodos
add_column_purpose
yremove_column_purpose
puede invalidar el tipo de característica para las columnas especificadas, por ejemplo, cuando el tipo de característica de columna no refleja correctamente su propósito. El método de adición admite la adición de todos los tipos de características especificados en el atributo FULL_SET de la clase FeatureType.Agregar o quitar parámetros de transformador. Con los métodos
add_transformer_params
yremove_transformer_params
puede cambiar los parámetros de transformadores personalizables como Imputer, HashOneHotEncoder y TfIdf. Los transformadores personalizables se enumeran en el atributo CUSTOMIZABLE_TRANSFORMERS de la clase SupportedTransformers. Useget_transformer_params
para buscar parámetros de personalización.Transformadores de bloque. Bloquee los transformadores que se usarán para el proceso de caracterización con el método
add_blocked_transformers
. Los transformadores deben ser uno de los enumerados en el atributo BLOCKED_TRANSFORMERS de la clase SupportedTransformers.Agregue una columna de anulación para omitir la caracterización y el entrenamiento con el método
add_drop_columns
. Por ejemplo, puede anular una columna que no contenga información útil.Agregue o quite el tipo de transformación de predicción. Con
add_prediction_transform_type
y .
Los métodos remove_prediction_transform_type
pueden invalidar el tipo de columna de destino existente.
Los tipos de transformación de predicción se enumeran en el atributo PredictionTransformTypes.
En el ejemplo de código siguiente se muestra cómo personalizar la caracterización en ML automatizado para la previsión. En el código de ejemplo, se muestra cómo quitar una columna y agregar parámetros de transformación.
featurization_config = FeaturizationConfig()
# Force the CPWVOL5 feature to be numeric type.
featurization_config.add_column_purpose("CPWVOL5", "Numeric")
# Fill missing values in the target column, Quantity, with zeros.
featurization_config.add_transformer_params(
"Imputer", ["Quantity"], {"strategy": "constant", "fill_value": 0}
)
# Fill missing values in the INCOME column with median value.
featurization_config.add_transformer_params(
"Imputer", ["INCOME"], {"strategy": "median"}
)
# Fill missing values in the Price column with forward fill (last value carried forward).
featurization_config.add_transformer_params("Imputer", ["Price"], {"strategy": "ffill"})
El ejemplo completo está disponible en https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/automated-machine-learning/forecasting-orange-juice-sales/auto-ml-forecasting-orange-juice-sales.ipynb.
En el ejemplo siguiente se muestra cómo personalizar la caracterización en un problema de regresión mediante el conjunto de datos de rendimiento de hardware. En el código de ejemplo, se define un transformador bloqueado, se agregan propósitos de columna y se agregan parámetros de transformador.
featurization_config = FeaturizationConfig()
featurization_config.blocked_transformers = ["LabelEncoder"]
# featurization_config.drop_columns = ['MMIN']
featurization_config.add_column_purpose("MYCT", "Numeric")
featurization_config.add_column_purpose("VendorName", "CategoricalHash")
# default strategy mean, add transformer param for for 3 columns
featurization_config.add_transformer_params("Imputer", ["CACH"], {"strategy": "median"})
featurization_config.add_transformer_params(
"Imputer", ["CHMIN"], {"strategy": "median"}
)
featurization_config.add_transformer_params(
"Imputer", ["PRP"], {"strategy": "most_frequent"}
)
# featurization_config.add_transformer_params('HashOneHotEncoder', [], {"number_of_bits": 3})
El ejemplo completo está disponible en https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/automated-machine-learning/regression-explanation-featurization/auto-ml-regression-explanation-featurization.ipynb.
El elemento FeaturizationConfig definido en el ejemplo de código anterior se puede usar en la configuración de un experimento de ML automatizado, como se muestra en el ejemplo de código siguiente.
automl_settings = {
"enable_early_stopping": True,
"experiment_timeout_hours": 0.25,
"max_concurrent_iterations": 4,
"max_cores_per_iteration": -1,
"n_cross_validations": 5,
"primary_metric": "normalized_root_mean_squared_error",
"verbosity": logging.INFO,
}
automl_config = AutoMLConfig(
task="regression",
debug_log="automl_errors.log",
compute_target=compute_target,
featurization=featurization_config,
training_data=train_data,
label_column_name=label,
**automl_settings,
)
El ejemplo completo está disponible en https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/automated-machine-learning/regression-explanation-featurization/auto-ml-regression-explanation-featurization.ipynb.
Métodos
add_blocked_transformers |
Agregue transformadores que se bloquearán. |
add_column_purpose |
Agregue un tipo de característica para la columna especificada. |
add_drop_columns |
Agregue un nombre de columna o una lista de nombres de columna que se vana ignorar. |
add_prediction_transform_type |
Agregue un tipo de transformación de predicción para la columna de destino. ClasePredictionTransformTypes . :type prediction_transform_type: str |
add_transformer_params |
Agregue parámetros de transformador personalizados a la lista de parámetros de transformador personalizados. Se aplica a todas las columnas si la lista de columnas está vacía. |
get_transformer_params |
Recupere los parámetros de personalización del transformador para las columnas. |
remove_column_purpose |
Quite el tipo de característica para la columna especificada. Si no se especifica ninguna característica para una columna, se usa la característica predeterminada detectada. |
remove_prediction_transform_type |
Revierta el tipo de transformación de predicción al valor predeterminado para la columna de destino. |
remove_transformer_params |
Quite los parámetros de personalización del transformador para una columna específica o para todas las columnas. |
add_blocked_transformers
Agregue transformadores que se bloquearán.
add_blocked_transformers(transformers: str | List[str]) -> None
Parámetros
Nombre | Description |
---|---|
transformers
Requerido
|
Nombre de transformador o lista de nombres de transformador. Los nombres de transformador deben ser uno de los transformadores enumerados en el atributo BLOCKED_TRANSFORMERS de la clase SupportedTransformers. |
add_column_purpose
Agregue un tipo de característica para la columna especificada.
add_column_purpose(column_name: str, feature_type: str) -> None
Parámetros
Nombre | Description |
---|---|
column_name
Requerido
|
Nombre de columna que se actualizará. |
feature_type
Requerido
|
Tipo de característica que se usará para la columna. Los tipos de características deben ser uno de los especificados en el atributo FULL_SET de la clase FeatureType. |
add_drop_columns
Agregue un nombre de columna o una lista de nombres de columna que se vana ignorar.
add_drop_columns(drop_columns: str | List[str]) -> None
Parámetros
Nombre | Description |
---|---|
drop_columns
Requerido
|
Nombre de columna o lista de nombres de columna. |
add_prediction_transform_type
Agregue un tipo de transformación de predicción para la columna de destino.
ClasePredictionTransformTypes . :type prediction_transform_type: str
add_prediction_transform_type(prediction_transform_type: str) -> None
Parámetros
Nombre | Description |
---|---|
prediction_transform_type
Requerido
|
Tipo de transformación de predicción que se va a usar para convertir la columna de destino. Los tipos de características deben ser uno de los especificados en el atributo FULL_SET de la |
add_transformer_params
Agregue parámetros de transformador personalizados a la lista de parámetros de transformador personalizados.
Se aplica a todas las columnas si la lista de columnas está vacía.
add_transformer_params(transformer: str, cols: List[str], params: Dict[str, Any]) -> None
Parámetros
Nombre | Description |
---|---|
transformer
Requerido
|
Nombre del transformador. El nombre del transformador debe ser uno de los atributos CUSTOMIZABLE_TRANSFORMERS enumerados en la clase SupportedTransformers. |
cols
Requerido
|
Columnas de entrada para el transformador especificado. Algunos transformadores pueden tomar varias columnas como entrada especificada como una lista. |
params
Requerido
|
Diccionario de palabras clave y argumentos. |
Comentarios
En el ejemplo de código siguiente se muestra cómo personalizar la caracterización en ML automatizado para la previsión. En el código de ejemplo, se muestra cómo quitar una columna y agregar parámetros de transformación.
featurization_config = FeaturizationConfig()
# Force the CPWVOL5 feature to be numeric type.
featurization_config.add_column_purpose("CPWVOL5", "Numeric")
# Fill missing values in the target column, Quantity, with zeros.
featurization_config.add_transformer_params(
"Imputer", ["Quantity"], {"strategy": "constant", "fill_value": 0}
)
# Fill missing values in the INCOME column with median value.
featurization_config.add_transformer_params(
"Imputer", ["INCOME"], {"strategy": "median"}
)
# Fill missing values in the Price column with forward fill (last value carried forward).
featurization_config.add_transformer_params("Imputer", ["Price"], {"strategy": "ffill"})
El ejemplo completo está disponible en https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/automated-machine-learning/forecasting-orange-juice-sales/auto-ml-forecasting-orange-juice-sales.ipynb.
get_transformer_params
Recupere los parámetros de personalización del transformador para las columnas.
get_transformer_params(transformer: str, cols: List[str]) -> Dict[str, Any]
Parámetros
Nombre | Description |
---|---|
transformer
Requerido
|
Nombre del transformador. El nombre del transformador debe ser uno de los atributos CUSTOMIZABLE_TRANSFORMERS enumerados en la clase SupportedTransformers. |
cols
Requerido
|
Nombres de columnas para los que se obtiene información. Use una lista vacía para especificar todas las columnas. |
Devoluciones
Tipo | Description |
---|---|
Configuración de parámetros del transformador. |
remove_column_purpose
Quite el tipo de característica para la columna especificada.
Si no se especifica ninguna característica para una columna, se usa la característica predeterminada detectada.
remove_column_purpose(column_name: str) -> None
Parámetros
Nombre | Description |
---|---|
column_name
Requerido
|
Nombre de columna que se actualizará. |
remove_prediction_transform_type
Revierta el tipo de transformación de predicción al valor predeterminado para la columna de destino.
remove_prediction_transform_type() -> None
remove_transformer_params
Quite los parámetros de personalización del transformador para una columna específica o para todas las columnas.
remove_transformer_params(transformer: str, cols: List[str] | None = None) -> None
Parámetros
Nombre | Description |
---|---|
transformer
Requerido
|
Nombre del transformador. El nombre del transformador debe ser uno de los atributos CUSTOMIZABLE_TRANSFORMERS enumerados en la clase SupportedTransformers. |
cols
|
Nombres de columnas de las que se quitarán los parámetros de personalización. Especifique None (valor predeterminado) para quitar todos los parámetros de personalización del transformador especificado. Valor predeterminado: None
|