FeaturizationConfig Classe

Define a configuração da engenharia de recursos para experiências de machine learning automatizado no Azure Machine Learning.

Use a classe FeaturizationConfig no parâmetro featurization da classe AutoMLConfig. Para obter mais informações, confira Configurar experimentos de ML automatizado.

Crie um FeaturizationConfig.

Herança
builtins.object
FeaturizationConfig

Construtor

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 padrão: None

Uma lista de nomes de transformador a serem bloqueados durante a definição de recursos.

column_purposes
dict
valor padrão: None

Um dicionário de nomes de coluna e tipos de recursos usados para atualizar a finalidade da coluna.

transformer_params
dict
valor padrão: None

Um dicionário de transformador e os parâmetros de personalização correspondentes.

drop_columns
list(str)
valor padrão: None

Uma lista de colunas a serem ignoradas no processo de definição de recursos. Essa configuração está sendo preterida. Remova as colunas de seus conjuntos de dados como parte do seu processo de preparação de dados antes de fornecer os conjuntos de dados ao ML automatizado.

prediction_transform_type
str
valor padrão: None

Uma sequência de tipo de transformação de destino a ser usada para converter o tipo de coluna de destino.

blocked_transformers
list(str)
Obrigatório

Uma lista de nomes de transformador a serem bloqueados durante a definição de recursos.

column_purposes
dict
Obrigatório

Um dicionário de nomes de coluna e tipos de recursos usados para atualizar a finalidade da coluna.

transformer_params
dict
Obrigatório

Um dicionário de transformador e os parâmetros de personalização correspondentes.

drop_columns
list(str)
Obrigatório

Uma lista de colunas a serem ignoradas no processo de definição de recursos. Essa configuração está sendo preterida. Remova as colunas de seus conjuntos de dados como parte do seu processo de preparação de dados antes de fornecer os conjuntos de dados ao ML automatizado.

dataset_language
str
valor padrão: None

Código ISO 639-3 de três caracteres para os idiomas contidos no conjunto de dados. Há suporte para idiomas diferentes do inglês se você usar a computação habilitada para GPU. O langugage_code 'mul' deve ser usado se o conjunto de dados contiver vários idiomas. Para encontrar códigos ISO 639-3 para idiomas diferentes, consulte https://en.wikipedia.org/wiki/List_of_ISO_639-3_codes.

prediction_transform_type
str
Obrigatório

Uma sequência de tipo de transformação de destino a ser usada para converter o tipo de coluna de destino.

Comentários

A personalização da definição de recursos tem métodos que permitem:

  • Adicionar ou remover a finalidade da coluna. Com os métodos add_column_purpose e remove_column_purpose, você pode substituir o tipo de recurso para colunas especificadas, por exemplo, quando o tipo de recurso de coluna não reflete corretamente a finalidade. O método add dá suporte à adição de todos os tipos de recursos determinados no atributo FULL_SET da classe FeatureType.

  • Adicionar ou remover parâmetros de transformador. Com os métodos add_transformer_params e remove_transformer_params, você pode alterar os parâmetros de transformadores personalizáveis, como Imputer, HashOneHotEncoder e TfIdf. Os transformadores personalizáveis são listados no atributo CUSTOMIZABLE_TRANSFORMERS da classe SupportedTransformers. Use o get_transformer_params para pesquisar parâmetros de personalização.

  • Bloquear os transformadores. Bloqueie os transformadores a serem usados para o processo de definição de recursos com o método add_blocked_transformers. Os transformadores precisam ser um dos transformadores listados no atributo BLOCKED_TRANSFORMERS da classe SupportedTransformers.

  • Adicionar uma remoção de coluna a ser ignorada para definição de recursos e treinamento com o método add_drop_columns. Por exemplo, você pode remover uma coluna que não contém informações úteis.

  • Adicionar ou remover tipo de transformação de previsão. Com os métodos add_prediction_transform_type e

remove_prediction_transform_type, você pode substituir o tipo de coluna de destino existente. Os tipos de transformação previsão são listados no atributo PredictionTransformTypes.

O exemplo de código a seguir mostra como personalizar a definição de recursos no ML automatizado para previsão. No código de exemplo, são mostrados a remoção de uma coluna e a adição de parâmetros de transformação.


   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"})

O exemplo completo está disponível em 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

O exemplo a seguir mostra como personalizar a definição de recursos em um problema de regressão usando o Conjunto de Dados de Desempenho de Hardware. No código de exemplo, um transformador bloqueado é definido, as finalidades da coluna são adicionadas e os parâmetros de transformador são adicionados.


   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})

O exemplo completo está disponível em https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/automated-machine-learning/regression-explanation-featurization/auto-ml-regression-explanation-featurization.ipynb

O FeaturizationConfig definido no exemplo de código acima pode ser usado na configuração de um experimento de ML automatizado, conforme mostrado no próximo exemplo de código.


   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,
   )

O exemplo completo está disponível em 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

Adiciona os transformadores a serem bloqueados.

add_column_purpose

Adiciona o tipo de recurso para a coluna especificada.

add_drop_columns

Adiciona o nome de coluna ou a lista de nomes de coluna a serem ignorados.

add_prediction_transform_type

Adicione um tipo de transformação de previsão para coluna de destino.

classe PredictionTransformTypes. :type prediction_transform_type: str

add_transformer_params

Adiciona parâmetros de transformador personalizados à lista de parâmetros de transformador personalizados.

Aplique a todas as colunas, se a lista de colunas estiver vazia.

get_transformer_params

Recupera os parâmetros de personalização de transformador para colunas.

remove_column_purpose

Remova o tipo de recurso para a coluna especificada.

Se nenhum recurso for especificado para uma coluna, o recurso padrão detectado será usado.

remove_prediction_transform_type

Reverte o tipo de transformação de previsão para padrão para coluna de destino.

remove_transformer_params

Remove os parâmetros de personalização de transformador para colunas específicas ou para todas as colunas.

add_blocked_transformers

Adiciona os transformadores a serem bloqueados.

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

Parâmetros

transformers
str ou list[str]
Obrigatório

Um nome de transformador ou uma lista de nomes de transformador. Os nomes de transformador precisam ser um dos transformadores listados no atributo BLOCKED_TRANSFORMERS da classe SupportedTransformers.

add_column_purpose

Adiciona o tipo de recurso para a coluna especificada.

add_column_purpose(column_name: str, feature_type: str) -> None

Parâmetros

column_name
str
Obrigatório

Um nome de coluna a ser atualizado.

feature_type
FeatureType
Obrigatório

Um tipo de recurso a ser usado para a coluna. Os tipos de recurso precisam ser fornecidos no atributo FULL_SET da classe FeatureType.

add_drop_columns

Adiciona o nome de coluna ou a lista de nomes de coluna a serem ignorados.

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

Parâmetros

drop_columns
str ou list[str]
Obrigatório

Um nome de coluna ou uma lista de nomes de coluna.

add_prediction_transform_type

Adicione um tipo de transformação de previsão para coluna de destino.

classe PredictionTransformTypes. :type prediction_transform_type: str

add_prediction_transform_type(prediction_transform_type: str) -> None

Parâmetros

prediction_transform_type
Obrigatório

Tipo de transformação de previsão a ser usado para converter a coluna de destino. Os tipos de recurso precisam ser fornecidos no atributo FULL_SET da

add_transformer_params

Adiciona parâmetros de transformador personalizados à lista de parâmetros de transformador personalizados.

Aplique a todas as colunas, se a lista de colunas estiver vazia.

add_transformer_params(transformer: str, cols: List[str], params: Dict[str, Any]) -> None

Parâmetros

transformer
str
Obrigatório

O nome do transformador. O nome de transformador precisa ser um dos CUSTOMIZABLE_TRANSFORMERS listados na classe SupportedTransformers.

cols
list(str)
Obrigatório

Colunas de entrada para o transformador especificado. Alguns transformadores podem usar como entrada várias colunas especificadas em uma lista.

params
dict
Obrigatório

Um dicionário de palavras-chave e argumentos.

Comentários

O exemplo de código a seguir mostra como personalizar a definição de recursos no ML automatizado para previsão. No código de exemplo, são mostrados a remoção de uma coluna e a adição de parâmetros de transformação.


   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"})

O exemplo completo está disponível em 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

Recupera os parâmetros de personalização de transformador para colunas.

get_transformer_params(transformer: str, cols: List[str]) -> Dict[str, Any]

Parâmetros

transformer
str
Obrigatório

O nome do transformador. O nome de transformador precisa ser um dos CUSTOMIZABLE_TRANSFORMERS listados na classe SupportedTransformers.

cols
list[str]
Obrigatório

Os nomes de colunas para os quais as informações devem ser obtidas. Use uma lista vazia para especificar todas as colunas.

Retornos

Configurações de parâmetro de transformador.

Tipo de retorno

remove_column_purpose

Remova o tipo de recurso para a coluna especificada.

Se nenhum recurso for especificado para uma coluna, o recurso padrão detectado será usado.

remove_column_purpose(column_name: str) -> None

Parâmetros

column_name
str
Obrigatório

O nome de coluna a ser atualizado.

remove_prediction_transform_type

Reverte o tipo de transformação de previsão para padrão para coluna de destino.

remove_prediction_transform_type() -> None

remove_transformer_params

Remove os parâmetros de personalização de transformador para colunas específicas ou para todas as colunas.

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

Parâmetros

transformer
str
Obrigatório

O nome do transformador. O nome de transformador precisa ser um dos CUSTOMIZABLE_TRANSFORMERS listados na classe SupportedTransformers.

cols
list[str] ou None
valor padrão: None

Os nomes de coluna dos quais os parâmetros de personalização devem ser removidos. Especifique Nenhum (o padrão) para remover todos os parâmetros de personalização do transformador especificado.

Atributos

blocked_transformers

column_purposes

dataset_language

drop_columns

prediction_transform_type

transformer_params