FeaturizationConfig 類別

定義 Azure Machine Learning 中自動化機器學習實驗的功能工程組態。

在 類別的 AutoMLConfig 參數中使用 featurization FeaturizationConfig 類別。 如需詳細資訊,請參閱 設定自動化 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 方法,您可以覆寫指定資料行的功能類型,例如,當資料行的功能類型無法正確反映其用途時。 add 方法支援新增 類別的 FULL_SET 屬性 FeatureType 中提供的所有功能類型。

  • 新增或移除轉換器參數。 add_transformer_params透過 和 remove_transformer_params 方法,您可以變更可自訂轉換器的參數,例如 Imputer、HashOneHotEncoder 和 TfIdf。 可自訂的轉換器會列在 SupportedTransformers 類別CUSTOMIZABLE_TRANSFORMERS屬性中。 get_transformer_params使用 來查閱自訂參數。

  • 區塊轉換器。 使用 方法用於特徵化程式的 add_blocked_transformers 區塊轉換器。 轉換器必須是類別中 SupportedTransformers 所列的其中一個轉換器,BLOCKED_TRANSFORMERS 屬性。

  • 使用 方法新增置放資料行以忽略特徵化和定型 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
strlist[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
strlist[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
必要

轉換器名稱。 轉換程式名稱必須是 類別中列出的 SupportedTransformers 其中一個CUSTOMIZABLE_TRANSFORMERS。

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
必要

轉換器名稱。 轉換程式名稱必須是 類別中列出的 SupportedTransformers 其中一個CUSTOMIZABLE_TRANSFORMERS。

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
必要

轉換器名稱。 轉換程式名稱必須是 類別中列出的 SupportedTransformers 其中一個CUSTOMIZABLE_TRANSFORMERS。

cols
list[str] 或 None
預設值: None

要從中移除自訂參數的資料行名稱。 指定 None (預設) 移除指定轉換器的所有自訂參數。

屬性

blocked_transformers

column_purposes

dataset_language

drop_columns

prediction_transform_type

transformer_params