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
|
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
|
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
|
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_purposemétodos yremove_column_purposepuede 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_paramsmétodos yremove_transformer_paramsse 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_paramsUse 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_transformersmé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_columnsmé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_typey
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
|
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
|
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
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
|
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
|
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
|
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
|
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
|