FeaturizationConfig Classe

Définit la configuration de l’ingénierie des caractéristiques pour les expériences de Machine Learning automatisées dans Azure Machine Learning.

Utilisez la classe FeaturizationConfig dans le paramètre featurization de la classe AutoMLConfig. Pour plus d’informations, consultez Configurer des expériences de Machine Learning automatisé.

Créez un featurizationConfig.

Héritage
builtins.object
FeaturizationConfig

Constructeur

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)

Paramètres

blocked_transformers
list(str)
valeur par défaut: None

Liste des noms de transformateur à bloquer pendant l’ingénierie de caractéristiques.

column_purposes
dict
valeur par défaut: None

Dictionnaire des noms de colonnes et des types de caractéristiques utilisés pour mettre à jour l’objet de la colonne.

transformer_params
dict
valeur par défaut: None

Dictionnaire du transformateur et des paramètres de personnalisation correspondants.

drop_columns
list(str)
valeur par défaut: None

Liste des colonnes à ignorer dans le processus d’ingénierie de caractéristiques. Ce paramètre est déconseillé. Supprimez les colonnes de vos jeux de données dans le cadre de votre processus de préparation des données avant de fournir les jeux de données au Machine Learning automatisé.

prediction_transform_type
str
valeur par défaut: None

Chaîne de type de transformation cible à utiliser pour caster le type de colonne cible.

blocked_transformers
list(str)
Obligatoire

Liste des noms de transformateur à bloquer pendant l’ingénierie de caractéristiques.

column_purposes
dict
Obligatoire

Dictionnaire des noms de colonnes et des types de caractéristiques utilisés pour mettre à jour l’objet de la colonne.

transformer_params
dict
Obligatoire

Dictionnaire du transformateur et des paramètres de personnalisation correspondants.

drop_columns
list(str)
Obligatoire

Liste des colonnes à ignorer dans le processus d’ingénierie de caractéristiques. Ce paramètre est déconseillé. Supprimez les colonnes de vos jeux de données dans le cadre de votre processus de préparation des données avant de fournir les jeux de données au Machine Learning automatisé.

dataset_language
str
valeur par défaut: None

Code ISO 639-3 à trois caractères pour les langues contenues dans le jeu de données. Les langues autres que l’anglais ne sont prises en charge que si vous utilisez le calcul avec GPU. Le langugage_code « mul » doit être utilisé si le jeu de données contient plusieurs langues. Pour trouver des codes ISO 639-3 pour différentes langues, reportez-vous à https://en.wikipedia.org/wiki/List_of_ISO_639-3_codes.

prediction_transform_type
str
Obligatoire

Chaîne de type de transformation cible à utiliser pour caster le type de colonne cible.

Remarques

La personnalisation de l’ingénierie de caractéristiques a des méthodes qui vous permettent d’effectuer les opérations suivantes :

  • Ajouter ou supprimer l’objet de la colonne. Avec les méthodes add_column_purpose et remove_column_purpose, vous pouvez remplacer le type de caractéristique pour les colonnes spécifiées, par exemple, lorsque le type de caractéristique de colonne ne reflète pas correctement son objectif. La méthode d’ajout prend en charge l’ajout de tous les types de caractéristiques fournis dans l’attribut FULL_SET de la classe FeatureType.

  • Ajouter ou supprimer des paramètres du transformateur. Avec les méthodes add_transformer_params et remove_transformer_params, vous pouvez modifier les paramètres des transformateurs personnalisables tels qu’Imputer, HashOneHotEncoder et TfIdf. Les transformateurs personnalisables sont répertoriés dans l’attribut CUSTOMIZABLE_TRANSFORMERS de la classe SupportedTransformers. Utilisez get_transformer_params pour rechercher les paramètres de personnalisation.

  • Transformateurs de blocs. Transformateurs de blocs à utiliser pour le processus d’ingénierie de caractéristiques avec la méthode add_blocked_transformers. Les transformateurs doivent correspondre à l’un des transformateurs figurant dans l’attribut BLOCKED_TRANSFORMERS de la classe SupportedTransformers.

  • Ajoutez une colonne de dépôt à ignorer pour l’ingénierie de caractéristiques et la formation avec la méthode add_drop_columns. Par exemple, vous pouvez supprimer une colonne qui ne contient pas d’informations utiles.

  • Ajoutez ou supprimez un type de transformation de prédiction. Avec les méthodes add_prediction_transform_type et

remove_prediction_transform_type, vous pouvez remplacer le type de colonne cible existant. Les types de transformation de prédiction sont répertoriés dans l’attribut PredictionTransformTypes.

L’exemple de code suivant montre comment personnaliser l’ingénierie de caractéristiques dans le Machine Learning automatisé pour les prévisions. Dans l’exemple de code, la suppression d’une colonne et l’ajout de paramètres de transformation sont affichés.


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

Un exemple complet est disponible sur 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

L’exemple suivant illustre la personnalisation d’ingénierie de caractéristiques dans un problème de régression à l’aide du jeu de données de performances matérielles. Dans l’exemple de code, un transformateur bloqué est défini, des objectifs de colonne sont ajoutés et des paramètres de transformateur sont ajoutés.


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

Un exemple complet est disponible sur https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/automated-machine-learning/regression-explanation-featurization/auto-ml-regression-explanation-featurization.ipynb

L’objet FeaturizationConfig défini dans l’exemple de code ci-dessus peut ensuite être utilisé dans la configuration d’une expérience de ML automatisé, comme indiqué dans l’exemple de code suivant.


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

Un exemple complet est disponible sur https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/automated-machine-learning/regression-explanation-featurization/auto-ml-regression-explanation-featurization.ipynb

Méthodes

add_blocked_transformers

Ajoutez des transformateurs à bloquer.

add_column_purpose

Ajoutez un type de caractéristique pour la colonne spécifiée.

add_drop_columns

Ajoutez un nom de colonne ou une liste de noms de colonnes à ignorer.

add_prediction_transform_type

Ajoutez un type de transformation de prédiction pour la colonne cible.

ClassePredictionTransformTypes . :type prediction_transform_type: str

add_transformer_params

Ajoutez des paramètres de transformateur personnalisés à la liste des paramètres de transformateur personnalisés.

Appliquez à toutes les colonnes si la liste des colonnes est vide.

get_transformer_params

Récupérez les paramètres de personnalisation du transformateur pour les colonnes.

remove_column_purpose

Supprimez le type de caractéristique pour la colonne spécifiée.

Si aucune caractéristique n’est spécifiée pour une colonne, la caractéristique par défaut détectée est utilisée.

remove_prediction_transform_type

Rétablissez le type de transformation de prédiction par défaut pour la colonne cible.

remove_transformer_params

Supprimez les paramètres de personnalisation de transformateur pour une colonne spécifique ou toutes les colonnes.

add_blocked_transformers

Ajoutez des transformateurs à bloquer.

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

Paramètres

transformers
str ou list[str]
Obligatoire

Nom de transformateur ou liste de noms de transformateurs. Les noms de transformateurs doivent correspondre à l’un des transformateurs figurant dans l’attribut BLOCKED_TRANSFORMERS de la classe SupportedTransformers.

add_column_purpose

Ajoutez un type de caractéristique pour la colonne spécifiée.

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

Paramètres

column_name
str
Obligatoire

Nom de colonne à mettre à jour.

feature_type
FeatureType
Obligatoire

Type de caractéristique à utiliser pour la colonne. Les types de caractéristiques doivent figurer dans l’attribut FULL_SET de la classe FeatureType.

add_drop_columns

Ajoutez un nom de colonne ou une liste de noms de colonnes à ignorer.

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

Paramètres

drop_columns
str ou list[str]
Obligatoire

Nom de colonne ou liste de noms de colonnes.

add_prediction_transform_type

Ajoutez un type de transformation de prédiction pour la colonne cible.

ClassePredictionTransformTypes . :type prediction_transform_type: str

add_prediction_transform_type(prediction_transform_type: str) -> None

Paramètres

prediction_transform_type
Obligatoire

Type de transformation de prédiction à utiliser pour caster la colonne cible. Les types de caractéristiques doivent figurer dans l’attribut FULL_SET de la

add_transformer_params

Ajoutez des paramètres de transformateur personnalisés à la liste des paramètres de transformateur personnalisés.

Appliquez à toutes les colonnes si la liste des colonnes est vide.

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

Paramètres

transformer
str
Obligatoire

Nom du transformateur. Le nom du transformateur doit être l’un des CUSTOMIZABLE_TRANSFORMERS listés dans la classe SupportedTransformers.

cols
list(str)
Obligatoire

Colonnes d’entrée pour le transformateur spécifié. Certains transformateurs peuvent prendre plusieurs colonnes comme entrées spécifiées sous forme de liste.

params
dict
Obligatoire

Dictionnaire de mots clés et d’arguments.

Remarques

L’exemple de code suivant montre comment personnaliser caractérisation dans le Machine Learning automatisé pour les prévisions. Dans l’exemple de code, la suppression d’une colonne et l’ajout de paramètres de transformation sont affichés.


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

Un exemple complet est disponible sur 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

Récupérez les paramètres de personnalisation du transformateur pour les colonnes.

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

Paramètres

transformer
str
Obligatoire

Nom du transformateur. Le nom du transformateur doit être l’un des CUSTOMIZABLE_TRANSFORMERS listés dans la classe SupportedTransformers.

cols
list[str]
Obligatoire

Noms des colonnes pour lesquelles obtenir des informations. Utilisez une liste vide pour spécifier toutes les colonnes.

Retours

Paramètres du transformateur.

Type de retour

remove_column_purpose

Supprimez le type de caractéristique pour la colonne spécifiée.

Si aucune caractéristique n’est spécifiée pour une colonne, la caractéristique par défaut détectée est utilisée.

remove_column_purpose(column_name: str) -> None

Paramètres

column_name
str
Obligatoire

Nom de colonne à mettre à jour.

remove_prediction_transform_type

Rétablissez le type de transformation de prédiction par défaut pour la colonne cible.

remove_prediction_transform_type() -> None

remove_transformer_params

Supprimez les paramètres de personnalisation de transformateur pour une colonne spécifique ou toutes les colonnes.

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

Paramètres

transformer
str
Obligatoire

Nom du transformateur. Le nom du transformateur doit être l’un des CUSTOMIZABLE_TRANSFORMERS listés dans la classe SupportedTransformers.

cols
list[str] ou None
valeur par défaut: None

Noms des colonnes à partir desquels supprimer les paramètres de personnalisation. Spécifiez None (valeur par défaut) pour supprimer tous les paramètres de personnalisation pour le transformateur spécifié.

Attributs

blocked_transformers

column_purposes

dataset_language

drop_columns

prediction_transform_type

transformer_params