AutoMLConfig 類別

表示在 Azure Machine Learning 中提交自動化ML實驗的組態。

此組態物件包含並保存用來設定實驗回合的參數,以及執行時間所要使用的定型資料。 如需選取設定的指引,請參閱 https://aka.ms/AutoMLConfig

繼承
builtins.object
AutoMLConfig

建構函式

AutoMLConfig(task: str, path: Optional[str] = None, iterations: Optional[int] = None, primary_metric: Optional[str] = None, positive_label: Optional[Any] = None, compute_target: Optional[Any] = None, spark_context: Optional[Any] = None, X: Optional[Any] = None, y: Optional[Any] = None, sample_weight: Optional[Any] = None, X_valid: Optional[Any] = None, y_valid: Optional[Any] = None, sample_weight_valid: Optional[Any] = None, cv_splits_indices: Optional[List[List[Any]]] = None, validation_size: Optional[float] = None, n_cross_validations: Optional[Union[int, str]] = None, y_min: Optional[float] = None, y_max: Optional[float] = None, num_classes: Optional[int] = None, featurization: Union[str, azureml.automl.core.featurization.featurizationconfig.FeaturizationConfig] = 'auto', max_cores_per_iteration: int = 1, max_concurrent_iterations: int = 1, iteration_timeout_minutes: Optional[int] = None, mem_in_mb: Optional[int] = None, enforce_time_on_windows: bool = True, experiment_timeout_hours: Optional[float] = None, experiment_exit_score: Optional[float] = None, enable_early_stopping: bool = True, blocked_models: Optional[List[str]] = None, blacklist_models: Optional[List[str]] = None, exclude_nan_labels: bool = True, verbosity: int = 20, enable_tf: bool = False, model_explainability: bool = True, allowed_models: Optional[List[str]] = None, whitelist_models: Optional[List[str]] = None, enable_onnx_compatible_models: bool = False, enable_voting_ensemble: bool = True, enable_stack_ensemble: Optional[bool] = None, debug_log: str = 'automl.log', training_data: Optional[Any] = None, validation_data: Optional[Any] = None, test_data: Optional[Any] = None, test_size: Optional[float] = None, label_column_name: Optional[str] = None, weight_column_name: Optional[str] = None, cv_split_column_names: Optional[List[str]] = None, enable_local_managed: bool = False, enable_dnn: Optional[bool] = None, forecasting_parameters: Optional[azureml.automl.core.forecasting_parameters.ForecastingParameters] = None, **kwargs: Any)

參數

task
strTasks
必要

要執行的工作類型。 值可以是「分類」、「回歸」或「預測」,視要解決的自動化ML問題類型而定。

path
str
必要

Azure Machine Learning專案資料夾的完整路徑。 如果未指定,則預設值為使用目前目錄或 「.」。

iterations
int
必要

自動化ML實驗期間要測試的不同演算法和參數組合總數。 如果未指定,則預設值為 1000 個反復專案。

primary_metric
strMetric
必要

自動化機器學習的計量會針對模型選取進行優化。 自動化機器學習會收集比優化更多的計量。 您可以使用 get_primary_metrics 來取得指定工作的有效計量清單。 如需如何計算計量的詳細資訊,請參閱 https://docs.microsoft.com/azure/machine-learning/how-to-configure-auto-train#primary-metric

如果未指定,則會針對分類工作使用精確度、標準化根平均平方用於預測和回歸工作、精確度用於影像分類和影像多重標籤分類,以及平均平均精確度用於影像物件偵測。

positive_label
<xref:Any>
必要

自動化機器學習用來計算二進位計量的正類別標籤。 二進位計量會以兩種分類工作的條件計算:

  1. label 資料行包含兩個類別,指出二進位分類工作 AutoML 會在傳入 positive_label 時使用指定的正類別,否則 AutoML 會根據標籤編碼值挑選正類別。
  2. 具有 指定positive_label 的多類別分類工作

如需分類的詳細資訊,請參閱 分類案例的簽出計量。

compute_target
AbstractComputeTarget
必要

要執行自動化機器學習實驗的Azure Machine Learning計算目標。 如需計算目標的詳細資訊,請參閱 https://docs.microsoft.com/en-us/azure/machine-learning/concept-automated-ml#local-remote

spark_context
<xref:SparkContext>
必要

Spark 內容。 只有在 Azure Databricks/Spark 環境內使用時才適用。

X
DataFramendarrayDatasetTabularDataset
必要

在實驗期間調整管線時要使用的訓練功能。 此設定已被取代。 請改用 training_data 和 label_column_name。

y
DataFramendarrayDatasetTabularDataset
必要

在實驗期間調整管線時要使用的定型標籤。 這是模型將預測的值。 此設定已被取代。 請改用 training_data 和 label_column_name。

sample_weight
DataFramendarrayTabularDataset
必要

在執行調整管線時,提供給每個定型範例的權數,每個資料列應該對應至 X 和 y 資料中的資料列。

指定 X 時指定此參數。 此設定已被取代。 請改用 training_data 和 weight_column_name。

X_valid
DataFramendarrayDatasetTabularDataset
必要

在實驗期間調整管線時要使用的驗證功能。

如果指定,則 y_valid 也必須指定 或 sample_weight_valid 。 此設定已被取代。 請改用 validation_data 和 label_column_name。

y_valid
DataFramendarrayDatasetTabularDataset
必要

在實驗期間調整管線時要使用的驗證標籤。

X_validy_valid 都必須同時指定。 此設定已被取代。 請改用 validation_data 和 label_column_name。

sample_weight_valid
DataFramendarrayTabularDataset
必要

執行評分管線時,每個資料列應該對應至 X 和 y 資料中的資料列時,每個驗證範例的權數。

指定 X_valid 時指定此參數。 此設定已被取代。 請改用 validation_data 和 weight_column_name。

cv_splits_indices
<xref:List>[<xref:List>[ndarray]]
必要

用來分割定型資料以進行交叉驗證的索引。 每個資料列都是個別的交叉折迭,而且在每個交叉折迭內,提供 2 個 numpy 陣列,第一個包含用於定型資料的索引,第二個則包含用於驗證資料的索引。 亦即 [[t1, v1], [t2, v2], ...] 其中 t1 是第一個交叉折迭的定型索引,而 v1 是第一個交叉折迭的驗證索引。

若要將現有資料指定為驗證資料,請使用 validation_data 。 若要讓 AutoML 改為從定型資料擷取驗證資料,請指定 n_cross_validationsvalidation_size 。 如果您在 中 training_data 具有交叉驗證資料行 () ,請使用 cv_split_column_names

validation_size
float
必要

未指定使用者驗證資料時,要保留的資料分數以進行驗證。 這應該介於 0.0 到 1.0 之間,非包含。

指定 validation_data 以提供驗證資料,否則請設定 n_cross_validationsvalidation_size 從指定的定型資料擷取驗證資料。 針對自訂交叉驗證折迭,請使用 cv_split_column_names

如需詳細資訊,請參閱 在自動化機器學習中設定資料分割和交叉驗證

n_cross_validations
int
必要

未指定使用者驗證資料時要執行的交叉驗證數目。

指定 validation_data 以提供驗證資料,否則請設定 n_cross_validationsvalidation_size 從指定的定型資料擷取驗證資料。 針對自訂交叉驗證折迭,請使用 cv_split_column_names

如需詳細資訊,請參閱 在自動化機器學習中設定資料分割和交叉驗證

y_min
float
必要

回歸實驗的最小值為 y。 和 y_max 的組合 y_min 可用來根據輸入資料範圍標準化測試集計量。 此設定已被取代。 相反地,此值會從資料計算。

y_max
float
必要

回歸實驗的最大值為 y。 和 y_max 的組合 y_min 可用來根據輸入資料範圍標準化測試集計量。 此設定已被取代。 相反地,此值會從資料計算。

num_classes
int
必要

分類實驗標籤資料中的類別數目。 此設定已被取代。 相反地,此值會從資料計算。

featurization
strFeaturizationConfig
必要

'auto' / 'off' / FeaturizationConfig 指標,指出是否應該自動完成特徵化步驟,還是應該使用自訂特徵化。 注意:如果輸入資料很疏鬆,則無法開啟特徵化。

系統會自動偵測資料行類型。 根據偵測到的資料行類型前置處理/特徵化,如下所示:

  • 類別:目標編碼、一個經常性編碼、卸載高基數類別、插補遺漏值。

  • 數值:插補遺漏值、叢集距離、辨識項的權數。

  • DateTime:數個功能,例如日、秒、分鐘、小時等。

  • 文字:文字包、預先定型的 Word 內嵌、文字目標編碼。

如需詳細資訊,請參閱在 Python 中設定自動化ML實驗一文。

若要自訂特徵化步驟,請提供 FeaturizationConfig 物件。 自訂特徵化目前支援封鎖一組轉換器、更新資料行用途、編輯轉換器參數,以及卸載資料行。 如需詳細資訊,請參閱 自訂特徵工程

注意:當工作類型設定為與此參數無關的預測時,會個別處理時間序列功能。

max_cores_per_iteration
int
必要

要用於指定定型反復專案的執行緒數目上限。 可接受的值:

  • 大於 1 且小於或等於計算目標上的核心數目上限。

  • 等於 -1,這表示每個子執行每個反復專案使用所有可能的核心。

  • 等於 1,預設值。

max_concurrent_iterations
int
必要

表示平行執行的反復專案數目上限。 預設值為 1。

  • AmlCompute 叢集支援每個節點執行的一個交錯。 對於在單一 AmlCompute 叢集上平行執行的多個 AutoML 實驗父執行,所有實驗的值總和 max_concurrent_iterations 應該小於或等於節點數目上限。 否則,執行將會排入佇列,直到節點可用為止。

  • DSVM 支援每個節點的多個反復專案。 max_concurrent_iterations 應該小於或等於 DSVM 上的核心數目。 對於在單一 DSVM 上平行執行的多個實驗,所有實驗的值總和 max_concurrent_iterations 應該小於或等於節點數目上限。

  • Databricks - max_concurrent_iterations 應小於或等於 Databricks 上的背景工作節點數目。

max_concurrent_iterations 不適用於本機執行。 先前,此參數的名稱為 concurrent_iterations

iteration_timeout_minutes
int
必要

每個反復專案可以在終止之前執行的最大時間。 如果未指定,則會使用 1 個月或 43200 分鐘的值。

mem_in_mb
int
必要

每個反復專案在終止之前可以執行的最大記憶體使用量。 如果未指定,則會使用 1 PB 或 1073741824 MB 的值。

enforce_time_on_windows
bool
必要

是否要在每次反覆運算Windows上強制執行模型定型的時間限制。 預設值為 True。 如果從 Python 腳本檔案執行 (.py) ,請參閱檔以允許Windows的資源限制。

experiment_timeout_hours
float
必要

在實驗終止之前,所有反覆運算合在一起所花費的時間量上限 (以小時為單位)。 可以是十進位值,例如 0.25 代表 15 分鐘。 如果未指定,則預設實驗逾時為 6 天。 若要指定小於或等於 1 小時的逾時,請確定資料集的大小不大於 10,000,000 個 (資料列時間資料行) 或錯誤結果。

experiment_exit_score
float
必要

實驗的目標分數。 達到此分數之後,實驗就會終止。 如果未指定 (沒有準則) ,則實驗會執行,直到主要計量沒有進一步的進度為止。 如需結束準則的詳細資訊,請參閱 這篇文章

enable_early_stopping
bool
必要

如果分數未在短期內改善,是否要啟用提早終止。 預設值為 True。

早期停止邏輯:

  • 前 20 個反復專案 (地標) 沒有提早停止。

  • 早期停止視窗會在第 21 個反復專案上啟動,並尋找early_stopping_n_iters反復專案

    (目前設定為 10) 。 這表示可以執行停止的第一個反復專案是第 31 個。

  • AutoML 仍排程 2 個反復專案 AFTER 提早停止,這可能會導致

    較高的分數。

  • 如果計算的最佳分數絕對值在過去相同,就會觸發提早停止

    early_stopping_n_iters反復專案,也就是說,如果early_stopping_n_iters反復專案的分數沒有改善。

blocked_models
list(str) 或 list(Classification)<xref: for classification task,> 或 list(Regression)<xref: for regression task,> 或 list(Forecasting)<xref: for forecasting task>
必要

實驗要忽略的演算法清單。 如果 enable_tf 為 False,則 TensorFlow 模型會包含在 中 blocked_models

blacklist_models
list(str) 或 list(Classification)<xref: for classification task,> 或 list(Regression)<xref: for regression task,> 或 list(Forecasting)<xref: for forecasting task>
必要

已淘汰的參數,請改用 blocked_models。

exclude_nan_labels
bool
必要

是否要在標籤中排除具有 NaN 值的資料列。 預設值為 True。

verbosity
int
必要

寫入記錄檔的詳細資訊層級。 預設值為 INFO 或 20。 可接受的值定義在 Python 記錄程式庫中

enable_tf
bool
必要

已淘汰的參數,可啟用/停用 Tensorflow 演算法。 預設值是 False。

model_explainability
bool
必要

是否要在所有 AutoML 定型反復專案結束時啟用說明最佳 AutoML 模型。 預設值為 True。 如需詳細資訊,請參閱 可解譯性:自動化機器學習中的模型說明

allowed_models
list(str) 或 list(Classification)<xref: for classification task,> 或 list(Regression)<xref: for regression task,> 或 list(Forecasting)<xref: for forecasting task>
必要

要搜尋實驗的模型名稱清單。 如果未指定,則會使用工作支援的所有模型減去或已被取代的 TensorFlow 模型中的任何指定 blocked_models 。 每個工作類型的支援模型都會在 類別中 SupportedModels 說明。

whitelist_models
list(str) 或 list(Classification)<xref: for classification task,> 或 list(Regression)<xref: for regression task,> 或 list(Forecasting)<xref: for forecasting task>
必要

已淘汰的參數,請改用 allowed_models。

enable_onnx_compatible_models
bool
必要

是否要啟用或停用強制使用 ONNX 相容模型。 預設值是 False。 如需 Open Neural Network Exchange (ONNX) 和 Azure Machine Learning 的詳細資訊,請參閱這篇文章

forecasting_parameters
ForecastingParameters
必要

ForecastingParameters 物件,用來保存所有預測特定參數。

time_column_name
str
必要

時間資料行的名稱。 當預測指定用於建置時間序列和推斷其頻率之輸入資料中的 datetime 資料行時,需要此參數。 此設定已被取代。 請改用forecasting_parameters。

max_horizon
int
必要

時間序列頻率單位所需的最大預測層級。 預設值為 1。

單位是以定型資料的時間間隔為基礎,例如,預測器應該預測的每月、每週。當工作類型為預測時,需要此參數。 如需設定預測參數的詳細資訊,請參閱 自動定型時間序列預測模型。 此設定已被取代。 請改用forecasting_parameters。

grain_column_names
strlist(str)
必要

用來分組時間範圍的資料行名稱。 它可以用來建立多個數列。 如果未定義粒紋,則會假設資料集為一個時間序列。 此參數會與工作類型預測搭配使用。 此設定已被取代。 請改用forecasting_parameters。

target_lags
intlist(int)
必要

要從目標資料行延隔的過去期間數。 預設值是 1。 此設定已被取代。 請改用forecasting_parameters。

預測時,此參數代表要根據資料頻率延隔目標值的資料列數目。 這會以清單或單一整數表示。 當獨立變數與相依變數之間的關聯性預設不相符或相互關聯時,應該使用延隔時間。 例如,當嘗試預測產品的需求時,任何月份中需求可能取決於之前 3 個月的特定商品價格。 在此範例中,建議讓目標 (需求) 延隔 3 個月,以供模型以正確的關聯性來定型。 如需詳細資訊,請參閱 自動定型時間序列預測模型

feature_lags
str
必要

產生數值特徵延遲的旗標。 此設定已被取代。 請改用forecasting_parameters。

target_rolling_window_size
int
必要

用來建立目標資料行滾動視窗平均值的過去期間數目。 此設定已被取代。 請改用forecasting_parameters。

預測時,此參數代表用來產生預測值的 n 個歷史期間, < = 定型集大小。 如果省略,則 n 就是完整的定型集大小。 若在將模型定型時只想考慮特定數量的歷程記錄,則請指定此參數。

country_or_region
str
必要

用來產生假日功能的國家/地區。 這些應該是 ISO 3166 兩個字母的國家/地區代碼,例如 'US' 或 'GB'。 此設定已被取代。 請改用forecasting_parameters。

use_stl
str
必要

設定時間序列目標資料行的 STL 分解。 use_stl可以接受三個值:無 (預設) - 沒有 stl 分解、'season' - 只產生季元件和season_trend - 同時產生季和趨勢元件。 此設定已被取代。 請改用forecasting_parameters。

seasonality
intstr
必要

設定時間序列季節性。 如果季節性設定為 'auto',則會推斷它。 此設定已被取代。 請改用forecasting_parameters。

short_series_handling_configuration
str
必要

定義 AutoML 是否應該處理短時間序列的參數。

可能的值:'auto' (預設) 、'pad'、'drop' 和 None。

  • 如果沒有長數列,則會填補自動簡短數列,否則將會卸載短數列。
  • 填補 所有簡短數列將會填補。
  • 將會 卸載所有簡短數列。」
  • 不會 修改簡短數列。 如果設定為 'pad',資料表將會以回歸輸入器的零和空白值填補,而目標的隨機值則等於指定時間序列識別碼的目標值中位數。如果中位數大於或等於零,則會以零裁剪最小填補值:輸入:

假設值數目最少為四的輸出:

注意: 我們有兩個參數short_series_handling_configuration和舊版short_series_handling。 設定這兩個參數時,我們會同步處理它們,如下表所示 (short_series_handling_configuration,而簡潔short_series_handling會分別標示為handling_configuration和處理) 。

freq
strNone
必要

預測頻率。

預測時,此參數代表需要預測的期間,例如每日、每週、每年等等。預測頻率預設為資料集頻率。 您可以選擇性地將它設定為大於 (,但不能比資料集頻率少) 。 我們將匯總資料,並以預測頻率產生結果。 例如,針對每日資料,您可以將頻率設定為每日、每週或每月,而不是每小時。 頻率必須是 pandas 位移別名。 如需詳細資訊,請參閱 pandas 檔: https://pandas.pydata.org/pandas-docs/stable/user_guide/timeseries.html#dateoffset-objects

target_aggregation_function
strNone
必要

用來匯總時間序列目標資料行以符合使用者指定頻率的函式。 如果已設定target_aggregation_function,但未設定 freq 參數,則會引發錯誤。 可能的目標彙總函式包括:「sum」、「max」、「min」 和 「mean」。

enable_voting_ensemble
bool
必要

是否要啟用/停用 VotingEnsemble 反復專案。 預設值為 True。 如需 ensembles 的詳細資訊,請參閱 Ensemble 組態

enable_stack_ensemble
bool
必要

是否要啟用/停用 StackEnsemble 反復專案。 預設值為 None。 如果 設定enable_onnx_compatible_models 旗標,則會停用 StackEnsemble 反復專案。 同樣地,對於 Timeseries 工作,StackEnsemble 反復專案預設會停用,以避免因調整中繼學習工具所使用的小型訓練集而造成過度學習的風險。 如需 ensembles 的詳細資訊,請參閱 Ensemble 組態

debug_log
str
必要

要寫入偵錯資訊的記錄檔。 如果未指定,則會使用 'automl.log'。

training_data
DataFrameDatasetDatasetDefinitionTabularDataset
必要

實驗中使用的定型資料。 它應該同時包含訓練功能和標籤資料行, (選擇性地包含範例加權資料行) 。 如果 training_data 指定 , label_column_name 則也必須指定 參數。

training_data 已在 1.0.81 版中引進。

validation_data
DataFrameDatasetDatasetDefinitionTabularDataset
必要

實驗中使用的驗證資料。 它應該同時包含訓練功能和標籤資料行, (選擇性地包含範例加權資料行) 。 如果 validation_data 指定 , training_data 則必須指定 和 label_column_name 參數。

validation_data 已在 1.0.81 版中引進。 如需詳細資訊,請參閱 在自動化機器學習中設定資料分割和交叉驗證

test_data
DatasetTabularDataset
必要

使用測試資料集或測試資料分割的模型測試功能是處於預覽狀態的功能,隨時可能會變更。 要用於測試回合的測試資料,將在模型定型完成後自動啟動。 測試回合會使用最佳模型取得預測,而且會計算這些預測的計量。

如果未指定此參數或 參數, test_size 則模型定型完成後,將不會自動執行任何測試回合。 測試資料應該同時包含功能和標籤資料行。 如果 test_data 已指定 , label_column_name 則必須指定 參數。

test_size
float
必要

使用測試資料集或測試資料分割的模型測試功能是處於預覽狀態的功能,隨時可能會變更。 要保留測試回合之測試資料的定型資料分數,在模型定型完成後會自動啟動。 測試回合會使用最佳模型取得預測,而且會計算這些預測的計量。

這應該介於 0.0 到 1.0 之間。 如果 test_size 同時指定 為 validation_size ,則在分割驗證資料之前,會先 training_data 分割測試資料。 例如,如果 validation_size=0.1test_size=0.1 原始定型資料有 1000 個數據列,則測試資料會有 100 個數據列,驗證資料將包含 90 個數據列,而定型資料會有 810 個數據列。

針對回歸型工作,會使用隨機取樣。 針對分類工作,會使用分層取樣。 預測目前不支援使用定型/測試分割來指定測試資料集。

如果未指定此參數或 參數, test_data 則模型定型完成後,將不會自動執行任何測試回合。

label_column_name
Union[str, int]
必要

標籤資料行的名稱。 如果輸入資料來自 pandas。沒有資料行名稱的資料框架,可以改用資料行索引,以整數表示。

此參數適用于 training_datavalidation_datatest_data 參數。 label_column_name 已在 1.0.81 版中引進。

weight_column_name
Union[str, int]
必要

範例加權資料行的名稱。 自動化ML支援加權資料行做為輸入,導致資料中的資料列會向上或向下加權。 如果輸入資料來自 pandas。沒有資料行名稱的資料框架,可以改用資料行索引,以整數表示。

此參數適用于 training_datavalidation_data 參數。 weight_column_names 已在 1.0.81 版中引進。

cv_split_column_names
list(str)
必要

包含自訂交叉驗證分割之資料行的名稱清單。 每個 CV 分割資料行都代表一個 CV 分割,其中每個資料列都標示為 1 以進行定型或 0 進行驗證。

此參數適用于 training_data 自訂交叉驗證用途的參數。 cv_split_column_names 已在 1.6.0 版中引進

cv_split_column_names使用 或 cv_splits_indices

如需詳細資訊,請參閱 在自動化機器學習中設定資料分割和交叉驗證

enable_local_managed
bool
必要

Disabled 參數。 目前無法啟用本機受控執行。

enable_dnn
bool
必要

是否要在模型選取期間包含 DNN 型模型。 init 中的預設值為 None。 不過,DNN NLP 工作的預設值為 True,所有其他 AutoML 工作則為 False。

備註

下列程式碼顯示建立 AutoMLConfig 物件並提交回歸實驗的基本範例:


   automl_settings = {
       "n_cross_validations": 3,
       "primary_metric": 'r2_score',
       "enable_early_stopping": True,
       "experiment_timeout_hours": 1.0,
       "max_concurrent_iterations": 4,
       "max_cores_per_iteration": -1,
       "verbosity": logging.INFO,
   }

   automl_config = AutoMLConfig(task = 'regression',
                               compute_target = compute_target,
                               training_data = train_data,
                               label_column_name = label,
                               **automl_settings
                               )

   ws = Workspace.from_config()
   experiment = Experiment(ws, "your-experiment-name")
   run = experiment.submit(automl_config, show_output=True)

回歸提供完整的範例

使用這些 AutoMLConfig 進行預測的範例如下:

您可以在這些自動化ML筆記本中找到針對所有工作類型使用 AutoMLConfig 的範例。

如需自動化ML的背景,請參閱文章:

如需為自動化機器學習、AutoML、實驗設定定型/驗證資料分割和交叉驗證之不同選項的詳細資訊,請參閱 在自動化機器學習中設定資料分割和交叉驗證

方法

get_supported_dataset_languages

在 ISO 639-3 中取得支援的語言及其對應的語言代碼。

get_supported_dataset_languages

在 ISO 639-3 中取得支援的語言及其對應的語言代碼。

get_supported_dataset_languages(use_gpu: bool) -> Dict[Any, Any]

參數

cls
必要

AutoMLConfig 類別物件。

use_gpu
必要

布林值,指出是否使用 gpu 計算。

傳回

格式 {: }的字典。 語言代碼遵守 ISO 639-3 標準,請參閱 https://en.wikipedia.org/wiki/List_of_ISO_639-3_codes