Condividi tramite


FeaturizationConfig Classe

Definisce la configurazione di progettazione delle funzionalità per esperimenti di Machine Learning automatizzati in Azure Machine Learning.

Usare la classe FeaturizationConfig nel featurization parametro della AutoMLConfig classe . Per altre informazioni, vedere Configurare esperimenti di Machine Learning automatizzati.

Creare un elemento FeaturizationConfig.

Costruttore

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)

Parametri

Nome Descrizione
blocked_transformers

Elenco dei nomi dei trasformatori da bloccare durante la definizione delle caratteristiche.

Valore predefinito: None
column_purposes

Dizionario di nomi di colonna e tipi di funzionalità usati per aggiornare lo scopo della colonna.

Valore predefinito: None
transformer_params

Dizionario di trasformatori e parametri di personalizzazione corrispondenti.

Valore predefinito: None
drop_columns

Elenco di colonne da ignorare nel processo di definizione delle caratteristiche. Questa impostazione è deprecata. Eliminare colonne dai set di dati come parte del processo di preparazione dei dati prima di fornire i set di dati a AutoML.

Valore predefinito: None
prediction_transform_type
str

Str di tipo trasformazione di destinazione da usare per eseguire il cast del tipo di colonna di destinazione.

Valore predefinito: None
blocked_transformers
Necessario

Elenco dei nomi dei trasformatori da bloccare durante la definizione delle caratteristiche.

column_purposes
Necessario

Dizionario di nomi di colonna e tipi di funzionalità usati per aggiornare lo scopo della colonna.

transformer_params
Necessario

Dizionario di trasformatori e parametri di personalizzazione corrispondenti.

drop_columns
Necessario

Elenco di colonne da ignorare nel processo di definizione delle caratteristiche. Questa impostazione è deprecata. Eliminare colonne dai set di dati come parte del processo di preparazione dei dati prima di fornire i set di dati a AutoML.

dataset_language
str

Codice ISO 639-3 di tre caratteri per le lingue contenute nel set di dati. Le lingue diverse dall'inglese sono supportate solo se si usano risorse di calcolo abilitate per GPU. Il langugage_code 'mul' deve essere usato se il set di dati contiene più lingue. Per trovare codici ISO 639-3 per lingue diverse, vedere https://en.wikipedia.org/wiki/List_of_ISO_639-3_codes.

Valore predefinito: None
prediction_transform_type
Necessario
str

Str di tipo trasformazione di destinazione da usare per eseguire il cast del tipo di colonna di destinazione.

Commenti

La personalizzazione delle funzionalità include metodi che consentono di:

  • Aggiungere o rimuovere lo scopo della colonna. Con i add_column_purpose metodi e remove_column_purpose è possibile eseguire l'override del tipo di funzionalità per le colonne specificate, ad esempio quando il tipo di funzionalità della colonna non riflette correttamente lo scopo. Il metodo add supporta l'aggiunta di tutti i tipi di funzionalità specificati nell'attributo FULL_SET della FeatureType classe .

  • Aggiungere o rimuovere i parametri del trasformatore. Con i add_transformer_params metodi e remove_transformer_params è possibile modificare i parametri dei trasformatori personalizzabili, ad esempio Imputer, HashOneHotEncoder e TfIdf. I trasformatori personalizzabili sono elencati nella SupportedTransformers classe CUSTOMIZABLE_TRANSFORMERS attributo . get_transformer_params Usare per cercare i parametri di personalizzazione.

  • Trasformatori a blocchi. Trasformatori a blocchi da utilizzare per il processo di definizione delle caratteristiche con il add_blocked_transformers metodo . I trasformatori devono essere uno dei trasformatori elencati nella SupportedTransformers classe BLOCKED_TRANSFORMERS attributo.

  • Aggiungere una colonna di rilascio da ignorare per la definizione delle caratteristiche e il training con il add_drop_columns metodo . Ad esempio, è possibile eliminare una colonna che non contiene informazioni utili.

  • Aggiungere o rimuovere il tipo di trasformazione della stima. Con add_prediction_transform_type e

remove_prediction_transform_type è possibile eseguire l'override del tipo di colonna di destinazione esistente. I tipi di trasformazione di stima sono elencati nell'attributo PredictionTransformTypes .

Nell'esempio di codice seguente viene illustrato come personalizzare la definizione delle funzionalità in Machine Learning automatizzato per la previsione. Nel codice di esempio viene visualizzata l'eliminazione di una colonna e l'aggiunta di parametri di trasformazione.


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

L'esempio completo è disponibile da 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

Nell'esempio seguente viene illustrata la personalizzazione delle funzionalità in un problema di regressione usando il set di dati prestazioni hardware. Nel codice di esempio viene definito un trasformatore bloccato, gli scopi delle colonne vengono aggiunti e i parametri del trasformatore vengono aggiunti.


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

L'esempio completo è disponibile da https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/automated-machine-learning/regression-explanation-featurization/auto-ml-regression-explanation-featurization.ipynb

L'elemento FeaturizationConfig definito nell'esempio di codice precedente può quindi essere usato nella configurazione di un esperimento di Machine Learning automatizzato, come illustrato nell'esempio di codice successivo.


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

L'esempio completo è disponibile da https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/automated-machine-learning/regression-explanation-featurization/auto-ml-regression-explanation-featurization.ipynb

Metodi

add_blocked_transformers

Aggiungere trasformatori da bloccare.

add_column_purpose

Aggiungere un tipo di funzionalità per la colonna specificata.

add_drop_columns

Aggiungere il nome o l'elenco di nomi di colonna da ignorare.

add_prediction_transform_type

Aggiungere un tipo di trasformazione di stima per la colonna di destinazione.

classe PredictionTransformTypes. :type prediction_transform_type: str

add_transformer_params

Aggiungere parametri di trasformatore personalizzati all'elenco di parametri trasformatori personalizzati.

Applicare a tutte le colonne se l'elenco di colonne è vuoto.

get_transformer_params

Recuperare i parametri di personalizzazione del trasformatore per le colonne.

remove_column_purpose

Rimuovere il tipo di funzionalità per la colonna specificata.

Se non viene specificata alcuna funzionalità per una colonna, viene usata la funzionalità predefinita rilevata.

remove_prediction_transform_type

Ripristinare il tipo di trasformazione di stima come predefinito per la colonna di destinazione.

remove_transformer_params

Rimuovere i parametri di personalizzazione del trasformatore per una colonna specifica o per tutte le colonne.

add_blocked_transformers

Aggiungere trasformatori da bloccare.

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

Parametri

Nome Descrizione
transformers
Necessario
str oppure list[str]

Nome del trasformatore o elenco dei nomi dei trasformatori. I nomi dei trasformatori devono essere uno dei trasformatori elencati nell'attributo BLOCKED_TRANSFORMERS della SupportedTransformers classe .

add_column_purpose

Aggiungere un tipo di funzionalità per la colonna specificata.

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

Parametri

Nome Descrizione
column_name
Necessario
str

Nome di colonna da aggiornare.

feature_type
Necessario

Tipo di funzionalità da utilizzare per la colonna. I tipi di funzionalità devono essere specificati nell'attributo FULL_SET della FeatureType classe .

add_drop_columns

Aggiungere il nome o l'elenco di nomi di colonna da ignorare.

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

Parametri

Nome Descrizione
drop_columns
Necessario
str oppure list[str]

Nome di colonna o elenco di nomi di colonna.

add_prediction_transform_type

Aggiungere un tipo di trasformazione di stima per la colonna di destinazione.

classe PredictionTransformTypes. :type prediction_transform_type: str

add_prediction_transform_type(prediction_transform_type: str) -> None

Parametri

Nome Descrizione
prediction_transform_type
Necessario

Tipo di trasformazione di stima da usare per il cast della colonna di destinazione. I tipi di funzionalità devono essere specificati nell'attributo FULL_SET dell'oggetto

add_transformer_params

Aggiungere parametri di trasformatore personalizzati all'elenco di parametri trasformatori personalizzati.

Applicare a tutte le colonne se l'elenco di colonne è vuoto.

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

Parametri

Nome Descrizione
transformer
Necessario
str

Nome del trasformatore. Il nome del trasformatore deve essere uno dei CUSTOMIZABLE_TRANSFORMERS elencati nella SupportedTransformers classe .

cols
Necessario

Colonne di input per il trasformatore specificato. Alcuni trasformatori possono accettare più colonne come input specificato come elenco.

params
Necessario

Dizionario di parole chiave e argomenti.

Commenti

Nell'esempio di codice seguente viene illustrato come personalizzare la definizione delle funzionalità in Machine Learning automatizzato per la previsione. Nel codice di esempio viene visualizzata l'eliminazione di una colonna e l'aggiunta di parametri di trasformazione.


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

L'esempio completo è disponibile da 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

Recuperare i parametri di personalizzazione del trasformatore per le colonne.

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

Parametri

Nome Descrizione
transformer
Necessario
str

Nome del trasformatore. Il nome del trasformatore deve essere uno dei CUSTOMIZABLE_TRANSFORMERS elencati nella SupportedTransformers classe .

cols
Necessario

Nomi delle colonne per cui ottenere informazioni. Usare un elenco vuoto per specificare tutte le colonne.

Restituisce

Tipo Descrizione

Impostazioni dei parametri del trasformatore.

remove_column_purpose

Rimuovere il tipo di funzionalità per la colonna specificata.

Se non viene specificata alcuna funzionalità per una colonna, viene usata la funzionalità predefinita rilevata.

remove_column_purpose(column_name: str) -> None

Parametri

Nome Descrizione
column_name
Necessario
str

Nome della colonna da aggiornare.

remove_prediction_transform_type

Ripristinare il tipo di trasformazione di stima come predefinito per la colonna di destinazione.

remove_prediction_transform_type() -> None

remove_transformer_params

Rimuovere i parametri di personalizzazione del trasformatore per una colonna specifica o per tutte le colonne.

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

Parametri

Nome Descrizione
transformer
Necessario
str

Nome del trasformatore. Il nome del trasformatore deve essere uno dei CUSTOMIZABLE_TRANSFORMERS elencati nella SupportedTransformers classe .

cols
list[str] oppure None

Nomi delle colonne da cui rimuovere i parametri di personalizzazione. Specificare Nessuno (impostazione predefinita) per rimuovere tutti i parametri di personalizzazione per il trasformatore specificato.

Valore predefinito: None

Attributi

blocked_transformers

column_purposes

dataset_language

drop_columns

prediction_transform_type

transformer_params