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.objectFeaturizationConfig
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
Nome | Description |
---|---|
blocked_transformers
|
Uma lista de nomes de transformador a serem bloqueados durante a definição de recursos. Valor padrão: None
|
column_purposes
|
Um dicionário de nomes de coluna e tipos de recursos usados para atualizar a finalidade da coluna. Valor padrão: None
|
transformer_params
|
Um dicionário de transformador e os parâmetros de personalização correspondentes. Valor padrão: None
|
drop_columns
|
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. Valor padrão: None
|
prediction_transform_type
|
Uma sequência de tipo de transformação de destino a ser usada para converter o tipo de coluna de destino. Valor padrão: None
|
blocked_transformers
Obrigatório
|
Uma lista de nomes de transformador a serem bloqueados durante a definição de recursos. |
column_purposes
Obrigatório
|
Um dicionário de nomes de coluna e tipos de recursos usados para atualizar a finalidade da coluna. |
transformer_params
Obrigatório
|
Um dicionário de transformador e os parâmetros de personalização correspondentes. |
drop_columns
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
|
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. Valor padrão: None
|
prediction_transform_type
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
eremove_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
eremove_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 oget_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
Nome | Description |
---|---|
transformers
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
Nome | Description |
---|---|
column_name
Obrigatório
|
Um nome de coluna a ser atualizado. |
feature_type
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
Nome | Description |
---|---|
drop_columns
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
Nome | Description |
---|---|
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
Nome | Description |
---|---|
transformer
Obrigatório
|
O nome do transformador. O nome de transformador precisa ser um dos CUSTOMIZABLE_TRANSFORMERS listados na classe SupportedTransformers. |
cols
Obrigatório
|
Colunas de entrada para o transformador especificado. Alguns transformadores podem usar como entrada várias colunas especificadas em uma lista. |
params
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
Nome | Description |
---|---|
transformer
Obrigatório
|
O nome do transformador. O nome de transformador precisa ser um dos CUSTOMIZABLE_TRANSFORMERS listados na classe SupportedTransformers. |
cols
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
Tipo | Description |
---|---|
Configurações de parâmetro de transformador. |
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
Nome | Description |
---|---|
column_name
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
Nome | Description |
---|---|
transformer
Obrigatório
|
O nome do transformador. O nome de transformador precisa ser um dos CUSTOMIZABLE_TRANSFORMERS listados na classe SupportedTransformers. |
cols
|
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. Valor padrão: None
|