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.object
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

blocked_transformers
list(str)
valor predeterminado: None

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

column_purposes
dict
valor predeterminado: None

Diccionario de nombres de columna y tipos de características que se usan para actualizar la finalidad de la columna.

transformer_params
dict
valor predeterminado: None

Diccionario de transformadores y parámetros de personalización correspondientes.

drop_columns
list(str)
valor predeterminado: None

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.

prediction_transform_type
str
valor predeterminado: None

Estrategia del tipo de transformación de destino que se va a usar para convertir el tipo de columna de destino.

blocked_transformers
list(str)
Requerido

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

column_purposes
dict
Requerido

Diccionario de nombres de columna y tipos de características que se usan para actualizar la finalidad de la columna.

transformer_params
dict
Requerido

Diccionario de transformadores y parámetros de personalización correspondientes.

drop_columns
list(str)
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
str
valor predeterminado: None

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.

prediction_transform_type
str
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 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 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 y remove_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. Use get_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

transformers
str o list[str]
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

column_name
str
Requerido

Nombre de columna que se actualizará.

feature_type
FeatureType
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

drop_columns
str o list[str]
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

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

transformer
str
Requerido

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

cols
list(str)
Requerido

Columnas de entrada para el transformador especificado. Algunos transformadores pueden tomar varias columnas como entrada especificada como una lista.

params
dict
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

transformer
str
Requerido

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

cols
list[str]
Requerido

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

Devoluciones

Configuración de parámetros del transformador.

Tipo de valor devuelto

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

column_name
str
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

transformer
str
Requerido

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

cols
list[str] o None
valor predeterminado: None

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.

Atributos

blocked_transformers

column_purposes

dataset_language

drop_columns

prediction_transform_type

transformer_params