Compartir a través de


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 featurization parámetro de la AutoMLConfig clase . Para más información, consulte Configuración de experimentos de ML automatizados.

Cree un elemento FeaturizationConfig.

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 van a bloquear durante la caracterización.

Valor predeterminado: None
column_purposes

Diccionario de nombres de columna y tipos de características usados para actualizar el propósito de las columnas.

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. Quite 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
str

Una cadena de tipo de transformación de destino que se usará para convertir el tipo de columna de destino.

Valor predeterminado: None
blocked_transformers
Requerido

Lista de nombres de transformador que se van a bloquear durante la caracterización.

column_purposes
Requerido

Diccionario de nombres de columna y tipos de características usados para actualizar el propósito de las columnas.

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. Quite 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
str

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 se usa el proceso habilitado para GPU. El langugage_code "mul" debe usarse 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
str

Una cadena de tipo de transformación de destino que se usará para convertir el tipo de columna de destino.

Comentarios

La personalización de características tiene métodos que le permiten:

  • Agregar o quitar el propósito de la columna. Con los add_column_purpose métodos y remove_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 add admite la adición de todos los tipos de características proporcionados en el atributo FULL_SET de la FeatureType clase .

  • Agregue o quite parámetros de transformador. Con los add_transformer_params métodos y remove_transformer_params se pueden cambiar los parámetros de transformadores personalizables como Imputer, HashOneHotEncoder y TfIdf. Los transformadores personalizables se enumeran en la SupportedTransformers clase CUSTOMIZABLE_TRANSFORMERS atributo. get_transformer_params Use para buscar parámetros de personalización.

  • Transformadores de bloque. Transformadores de bloque que se usarán para el proceso de caracterización con el add_blocked_transformers método . Los transformadores deben ser uno de los transformadores enumerados en la SupportedTransformers clase BLOCKED_TRANSFORMERS atributo.

  • Agregue una columna drop para omitir la caracterización y el entrenamiento con el add_drop_columns método . Por ejemplo, puede quitar 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

remove_prediction_transform_type métodos que puede invalidar el tipo de columna de destino existente. Los tipos de transformación de predicción se enumeran en el PredictionTransformTypes atributo .

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 muestran la colocación de una columna y la adición de 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 puede usarse 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 van a bloquear.

add_column_purpose

Agregue un tipo de característica para la columna especificada.

add_drop_columns

Agregue el nombre de columna o la lista de nombres de columna que se omitirán.

add_prediction_transform_type

Agregue un tipo de transformación de predicción para la columna de destino.

PredictionTransformTypes clase. :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 de 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 de la columna de destino.

remove_transformer_params

Quite los parámetros de personalización del transformador para columnas específicas o todas las columnas.

add_blocked_transformers

Agregue transformadores que se van a bloquear.

add_blocked_transformers(transformers: str | List[str]) -> None

Parámetros

Nombre Description
transformers
Requerido
str o list[str]

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 SupportedTransformers clase .

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
str

Nombre de columna que se va a actualizar.

feature_type
Requerido

Tipo de característica que se va a usar para la columna. Los tipos de características deben ser uno dado en el atributo FULL_SET de la FeatureType clase .

add_drop_columns

Agregue el nombre de columna o la lista de nombres de columna que se omitirán.

add_drop_columns(drop_columns: str | List[str]) -> None

Parámetros

Nombre Description
drop_columns
Requerido
str o list[str]

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.

PredictionTransformTypes clase. :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 dado en el atributo FULL_SET del

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
str

Nombre del transformador. El nombre del transformador debe ser uno de los CUSTOMIZABLE_TRANSFORMERS enumerados en la SupportedTransformers clase .

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 muestran la colocación de una columna y la adición de 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
str

Nombre del transformador. El nombre del transformador debe ser uno de los CUSTOMIZABLE_TRANSFORMERS enumerados en la SupportedTransformers clase .

cols
Requerido

Nombres de columnas para los que se va a obtener información. Use una lista vacía para especificar todas las columnas.

Devoluciones

Tipo Description

Configuración del parámetro Transformer.

remove_column_purpose

Quite el tipo de característica de 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
str

Nombre de columna que se va a actualizar.

remove_prediction_transform_type

Revierta el tipo de transformación de predicción al valor predeterminado de la columna de destino.

remove_prediction_transform_type() -> None

remove_transformer_params

Quite los parámetros de personalización del transformador para columnas específicas o todas las columnas.

remove_transformer_params(transformer: str, cols: List[str] | None = None) -> None

Parámetros

Nombre Description
transformer
Requerido
str

Nombre del transformador. El nombre del transformador debe ser uno de los CUSTOMIZABLE_TRANSFORMERS enumerados en la SupportedTransformers clase .

cols

Nombres de columnas de los que se van a quitar 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

Atributos

blocked_transformers

column_purposes

dataset_language

drop_columns

prediction_transform_type

transformer_params