FeaturizationConfig Класс

Определяет конфигурацию конструирования признаков для экспериментов автоматизированного машинного обучения в Машинном обучении Azure.

Используйте класс FeaturizationConfig в параметре featurization класса AutoMLConfig. Дополнительные сведения приведены в статье о настройке экспериментов автоматизированного ML.

Создайте файл FeaturizationConfig.

Наследование
builtins.object
FeaturizationConfig

Конструктор

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)

Параметры

blocked_transformers
list(str)
значение по умолчанию: None

Список имен преобразователей, блокируемых во время конструирования признаков.

column_purposes
dict
значение по умолчанию: None

Словарь имен столбцов и типов признаков, используемых для обновления назначения столбца.

transformer_params
dict
значение по умолчанию: None

Словарь преобразователей и соответствующие параметры настройки.

drop_columns
list(str)
значение по умолчанию: None

Список столбцов, которые будут игнорироваться в процессе конструирования признаков. Этот параметр не рекомендуется использовать. Перед тем как предоставить наборы данных в AutoML, удалите столбцы из наборов данных в качестве части процесса подготовки данных.

prediction_transform_type
str
значение по умолчанию: None

Str целевого типа преобразования необходимо использовать для приведения типа целевого столбца.

blocked_transformers
list(str)
Обязательно

Список имен преобразователей, блокируемых во время конструирования признаков.

column_purposes
dict
Обязательно

Словарь имен столбцов и типов признаков, используемых для обновления назначения столбца.

transformer_params
dict
Обязательно

Словарь преобразователей и соответствующие параметры настройки.

drop_columns
list(str)
Обязательно

Список столбцов, которые будут игнорироваться в процессе конструирования признаков. Этот параметр не рекомендуется использовать. Перед тем как предоставить наборы данных в AutoML, удалите столбцы из наборов данных в качестве части процесса подготовки данных.

dataset_language
str
значение по умолчанию: None

Трехсимвой код ISO 639-3 для языков, содержащихся в наборе данных. Языки, отличные от английского, поддерживаются только при использовании вычислительных ресурсов с поддержкой GPU. Если набор данных содержит несколько языков, следует использовать langugage_code "mul". Чтобы найти коды ISO 639-3 для разных языков, см. раздел https://en.wikipedia.org/wiki/List_of_ISO_639-3_codes.

prediction_transform_type
str
Обязательно

Str целевого типа преобразования необходимо использовать для приведения типа целевого столбца.

Комментарии

Настройка конструирования признаков содержит методы, позволяющие выполнять следующие задачи:

  • Добавление или удаление назначения столбца. С помощью методов add_column_purpose и remove_column_purpose можно переопределить тип признака для указанных столбцов, например, если тип признака столбца неправильно отражает его назначение. Метод добавления поддерживает добавление всех типов признаков, заданных в атрибуте FULL_SET класса FeatureType.

  • Добавление и удаление параметров преобразователя. С помощью методов add_transformer_params и remove_transformer_params можно изменять параметры настраиваемых преобразователей, таких как Imputer, HashOneHotEncoder и TfIdf. Настраиваемые преобразователи перечислены в атрибуте CUSTOMIZABLE_TRANSFORMERS класса SupportedTransformers. Используйте get_transformer_params для поиска параметров настройки.

  • Блокирование преобразователей. Блокирование преобразователей, используемых в процессе конструирования признаков с помощью метода add_blocked_transformers. Преобразователи должны быть одним из преобразователей, перечисленных в атрибуте BLOCKED_TRANSFORMERS класса SupportedTransformers.

  • Добавление столбца удаления, игнорируемого для целей конструирования признаков и обучения с помощью метода add_drop_columns. Например, можно удалить столбец, который не содержит полезной информации.

  • Добавление или удаление типа преобразования прогнозирования. С помощью add_prediction_transform_type и

методы remove_prediction_transform_type позволяют переопределить существующий тип целевого столбца. Типы преобразования прогнозирования перечислены в PredictionTransformTypes атрибуте.

В следующем примере кода показано, как настроить конструирование признаков в автоматизированном ML для прогнозирования. В примере кода показан, как удалять столбец и добавлять параметры преобразования.


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

Полный пример можно найти по адресу: 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

В следующем примере показано, как настроить конструирование признаков в задаче регрессии с помощью набора данных о производительности оборудования. В примере кода определяется заблокированный преобразователь, добавляются назначения столбцов, а также добавляются параметры преобразователя.


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

Полный пример можно найти по адресу: https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/automated-machine-learning/regression-explanation-featurization/auto-ml-regression-explanation-featurization.ipynb

FeaturizationConfig, определенную в приведенном выше примере кода, можно впоследствии использовать в конфигурации эксперимента автоматизированного ML, как показано в следующем примере кода.


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

Полный пример можно найти по адресу: https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/automated-machine-learning/regression-explanation-featurization/auto-ml-regression-explanation-featurization.ipynb

Методы

add_blocked_transformers

Добавление преобразователей для блокировки.

add_column_purpose

Добавление типа признака для указанного столбца.

add_drop_columns

Добавление имени столбца или списка имен столбцов для игнорирования.

add_prediction_transform_type

Добавление типа преобразования прогнозирования для целевого столбца.

КлассPredictionTransformTypes . :type prediction_transform_type: str

add_transformer_params

Добавление настраиваемых параметров преобразователя в список пользовательских параметров преобразователя.

Применяется ко всем столбцам, если список столбцов пуст.

get_transformer_params

Получение параметров настройки преобразователя для столбцов.

remove_column_purpose

Удаление типа признака для указанного столбца.

Если для столбца не указан ни один признак, используется выявленный признак по умолчанию.

remove_prediction_transform_type

Верните тип преобразования прогноза в значение по умолчанию для целевого столбца.

remove_transformer_params

Удаление параметров настройки преобразователя для конкретного столбца или всех столбцов.

add_blocked_transformers

Добавление преобразователей для блокировки.

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

Параметры

transformers
str или list[str]
Обязательно

Имя преобразователя или список имен преобразователей. Имена преобразователей должны быть одним из преобразователей, перечисленных в атрибуте BLOCKED_TRANSFORMERS класса SupportedTransformers.

add_column_purpose

Добавление типа признака для указанного столбца.

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

Параметры

column_name
str
Обязательно

Имя обновляемого столбца.

feature_type
FeatureType
Обязательно

Тип признака, используемый для столбца. Типы признаков должны быть заданы в атрибуте FULL_SET класса FeatureType.

add_drop_columns

Добавление имени столбца или списка имен столбцов для игнорирования.

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

Параметры

drop_columns
str или list[str]
Обязательно

Имя столбца или список имен столбцов.

add_prediction_transform_type

Добавление типа преобразования прогнозирования для целевого столбца.

КлассPredictionTransformTypes . :type prediction_transform_type: str

add_prediction_transform_type(prediction_transform_type: str) -> None

Параметры

prediction_transform_type
Обязательно

Тип преобразования прогнозирования, используемый для приведения целевого столбца. Типы признаков должны быть заданы в атрибуте FULL_SET класса

add_transformer_params

Добавление настраиваемых параметров преобразователя в список пользовательских параметров преобразователя.

Применяется ко всем столбцам, если список столбцов пуст.

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

Параметры

transformer
str
Обязательно

Имя преобразователя. Имя преобразователя должно быть одним из CUSTOMIZABLE_TRANSFORMERS, перечисленных в классе SupportedTransformers.

cols
list(str)
Обязательно

Входные столбцы для указанного преобразователя. Некоторые преобразователи могут принимать несколько столбцов в качестве входных данных, указанных в виде списка.

params
dict
Обязательно

Словарь ключевых слов и аргументов.

Комментарии

В следующем примере кода показано, как настроить конструирование признаков в автоматизированном ML для прогнозирования. В примере кода показан, как удалять столбец и добавлять параметры преобразования.


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

Полный пример можно найти по адресу: 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

Получение параметров настройки преобразователя для столбцов.

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

Параметры

transformer
str
Обязательно

Имя преобразователя. Имя преобразователя должно быть одним из CUSTOMIZABLE_TRANSFORMERS, перечисленных в классе SupportedTransformers.

cols
list[str]
Обязательно

Имена столбцов для получения информации. Используйте пустой список, чтобы указать все столбцы.

Возвращаемое значение

Параметры настройки преобразователя.

Возвращаемый тип

remove_column_purpose

Удаление типа признака для указанного столбца.

Если для столбца не указан ни один признак, используется выявленный признак по умолчанию.

remove_column_purpose(column_name: str) -> None

Параметры

column_name
str
Обязательно

Имя столбца для обновления.

remove_prediction_transform_type

Верните тип преобразования прогноза в значение по умолчанию для целевого столбца.

remove_prediction_transform_type() -> None

remove_transformer_params

Удаление параметров настройки преобразователя для конкретного столбца или всех столбцов.

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

Параметры

transformer
str
Обязательно

Имя преобразователя. Имя преобразователя должно быть одним из CUSTOMIZABLE_TRANSFORMERS, перечисленных в классе SupportedTransformers.

cols
list[str] или None
значение по умолчанию: None

Имена столбцов, из которых удаляются параметры настройки. Указание None (по умолчанию) для удаления всех параметров настройки для указанного преобразователя.

Атрибуты

blocked_transformers

column_purposes

dataset_language

drop_columns

prediction_transform_type

transformer_params