FeaturizationConfig Класс
Определяет конфигурацию конструирования признаков для экспериментов автоматизированного машинного обучения в Машинном обучении Azure.
Используйте класс FeaturizationConfig в параметре featurization
класса AutoMLConfig. Дополнительные сведения приведены в статье о настройке экспериментов автоматизированного ML.
Создайте файл FeaturizationConfig.
- Наследование
-
builtins.objectFeaturizationConfig
Конструктор
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
|
Список имен преобразователей, блокируемых во время конструирования признаков. Default value: None
|
column_purposes
|
Словарь имен столбцов и типов признаков, используемых для обновления назначения столбца. Default value: None
|
transformer_params
|
Словарь преобразователей и соответствующие параметры настройки. Default value: None
|
drop_columns
|
Список столбцов, которые будут игнорироваться в процессе конструирования признаков. Этот параметр не рекомендуется использовать. Перед тем как предоставить наборы данных в AutoML, удалите столбцы из наборов данных в качестве части процесса подготовки данных. Default value: None
|
prediction_transform_type
|
Str целевого типа преобразования необходимо использовать для приведения типа целевого столбца. Default value: None
|
blocked_transformers
Обязательно
|
Список имен преобразователей, блокируемых во время конструирования признаков. |
column_purposes
Обязательно
|
Словарь имен столбцов и типов признаков, используемых для обновления назначения столбца. |
transformer_params
Обязательно
|
Словарь преобразователей и соответствующие параметры настройки. |
drop_columns
Обязательно
|
Список столбцов, которые будут игнорироваться в процессе конструирования признаков. Этот параметр не рекомендуется использовать. Перед тем как предоставить наборы данных в AutoML, удалите столбцы из наборов данных в качестве части процесса подготовки данных. |
dataset_language
|
Трехсимвой код ISO 639-3 для языков, содержащихся в наборе данных. Языки, отличные от английского, поддерживаются только при использовании вычислительных ресурсов с поддержкой GPU. Если набор данных содержит несколько языков, следует использовать langugage_code "mul". Чтобы найти коды ISO 639-3 для разных языков, см. раздел https://en.wikipedia.org/wiki/List_of_ISO_639-3_codes. Default value: None
|
prediction_transform_type
Обязательно
|
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
Обязательно
|
Имя преобразователя или список имен преобразователей. Имена преобразователей должны быть одним из преобразователей, перечисленных в атрибуте BLOCKED_TRANSFORMERS класса SupportedTransformers. |
add_column_purpose
Добавление типа признака для указанного столбца.
add_column_purpose(column_name: str, feature_type: str) -> None
Параметры
Имя | Описание |
---|---|
column_name
Обязательно
|
Имя обновляемого столбца. |
feature_type
Обязательно
|
Тип признака, используемый для столбца. Типы признаков должны быть заданы в атрибуте FULL_SET класса FeatureType. |
add_drop_columns
Добавление имени столбца или списка имен столбцов для игнорирования.
add_drop_columns(drop_columns: str | List[str]) -> None
Параметры
Имя | Описание |
---|---|
drop_columns
Обязательно
|
Имя столбца или список имен столбцов. |
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
Обязательно
|
Имя преобразователя. Имя преобразователя должно быть одним из CUSTOMIZABLE_TRANSFORMERS, перечисленных в классе SupportedTransformers. |
cols
Обязательно
|
Входные столбцы для указанного преобразователя. Некоторые преобразователи могут принимать несколько столбцов в качестве входных данных, указанных в виде списка. |
params
Обязательно
|
Словарь ключевых слов и аргументов. |
Комментарии
В следующем примере кода показано, как настроить конструирование признаков в автоматизированном 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
Обязательно
|
Имя преобразователя. Имя преобразователя должно быть одним из CUSTOMIZABLE_TRANSFORMERS, перечисленных в классе SupportedTransformers. |
cols
Обязательно
|
Имена столбцов для получения информации. Используйте пустой список, чтобы указать все столбцы. |
Возвращаемое значение
Тип | Описание |
---|---|
Параметры настройки преобразователя. |
remove_column_purpose
Удаление типа признака для указанного столбца.
Если для столбца не указан ни один признак, используется выявленный признак по умолчанию.
remove_column_purpose(column_name: str) -> None
Параметры
Имя | Описание |
---|---|
column_name
Обязательно
|
Имя столбца для обновления. |
remove_prediction_transform_type
Верните тип преобразования прогноза в значение по умолчанию для целевого столбца.
remove_prediction_transform_type() -> None
remove_transformer_params
Удаление параметров настройки преобразователя для конкретного столбца или всех столбцов.
remove_transformer_params(transformer: str, cols: List[str] | None = None) -> None
Параметры
Имя | Описание |
---|---|
transformer
Обязательно
|
Имя преобразователя. Имя преобразователя должно быть одним из CUSTOMIZABLE_TRANSFORMERS, перечисленных в классе SupportedTransformers. |
cols
|
Имена столбцов, из которых удаляются параметры настройки. Указание None (по умолчанию) для удаления всех параметров настройки для указанного преобразователя. Default value: None
|