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 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
|
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 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 eremove_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 eremove_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
|
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
|
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
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
|
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
|
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
|
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
|
Nome del trasformatore. Il nome del trasformatore deve essere uno dei CUSTOMIZABLE_TRANSFORMERS elencati nella SupportedTransformers classe . |
cols
|
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
|