火車毫升模型與磚AutoML Python API

本文演示了如何訓練模型與磚AutoML使用API。了解更多關於AutoML是什麼?。Python API提供了功能分類開始,回歸和預測AutoML運行。每個函數調用列車一組為每個模型試驗模型和生成一個筆記本。

通常以下步驟描述如何設置一個AutoML實驗使用API:

  1. 創建一個筆記本並將其附加到一個集群運行磚運行時毫升。

  2. 確定要使用哪個表從你現有的數據源或DBFS上傳數據文件和創建一個表。

  3. 開始一個AutoML運行,通過適當的API規範的表名:分類,回歸,或預測

  4. 當AutoML開始運行,一個出現在控製台MLflow實驗URL。使用這個URL來監控運行的進程。刷新MLflow實驗的試驗完成。

  5. AutoML運行完成後:

    • 使用輸出總結中的鏈接導航到MLflow實驗或筆記本,產生最好的結果。

    • 使用鏈接數據探索筆記本得到一些洞察數據傳遞給AutoML。你也可以把這個筆記本相同的集群並重新運行筆記本繁殖結果或做額外的數據分析。

    • 使用總結對象AutoML調用返回的探索更詳細的試驗或加載模型訓練由給定的審判。了解更多的AutoMLSummary對象

    • 克隆試驗和重新運行的任何生成的筆記本筆記本通過將它附加到相同的集群複製的結果。你也可以進行必要的編輯和重新運行它們額外訓練模型和日誌相同的實驗。

需求

看到需求AutoML實驗。

分類規範

以下代碼示例配置一個AutoML運行訓練分類模型。其他參數進一步定製AutoML看到運行分類和回歸參數

請注意

max_trials參數是在磚棄用運行時不支持10.4毫升,在磚運行時的11.0毫升以上。使用timeout_minutes控製AutoML運行的時間。

automl分類(數據集:聯盟(pysparksqlDataFrame,熊貓DataFrame,pyspark熊貓DataFrame,str),*,target_col:str,data_dir:可選(str]=沒有一個,exclude_cols:可選(列表(str]]=沒有一個,# < DBR > 10.3毫升以上exclude_frameworks:可選(列表(str]]=沒有一個,# < DBR > 10.3毫升以上experiment_dir:可選(str]=沒有一個,# < DBR > 10.4 LTS毫升以上experiment_name:可選(str]=沒有一個,# < DBR > 12.1毫升以上feature_store_lookups:可選(列表(Dict]]=沒有一個,# < DBR > 11.3 LTS毫升以上imputers:可選(Dict(str,聯盟(str,Dict(str,任何]]]]=沒有一個,# < DBR > 10.4 LTS毫升以上max_trials:可選(int]=沒有一個,# < DBR > 10.5毫升和下麵pos_label:可選(聯盟(int,bool,str]=沒有一個,# < DBR > 11.1毫升以上primary_metric:str=“f1”,time_col:可選(str]=沒有一個,timeout_minutes:可選(int]=沒有一個,)- >AutoMLSummary

回歸規範

以下代碼示例配置一個AutoML運行培訓一個回歸模型。其他參數進一步定製AutoML看到運行分類和回歸參數

請注意

max_trials參數是在磚棄用運行時不支持10.4毫升,在磚運行時的11.0毫升以上。使用timeout_minutes控製AutoML運行的時間。

automl回歸(數據集:聯盟(pysparksqlDataFrame,熊貓DataFrame,pyspark熊貓DataFrame,str),*,target_col:str,data_dir:可選(str]=沒有一個,exclude_cols:可選(列表(str]]=沒有一個,# < DBR > 10.3毫升以上exclude_frameworks:可選(列表(str]]=沒有一個,# < DBR > 10.3毫升以上experiment_dir:可選(str]=沒有一個,# < DBR > 10.4 LTS毫升以上experiment_name:可選(str]=沒有一個,# < DBR > 12.1毫升以上feature_store_lookups:可選(列表(Dict]]=沒有一個,# < DBR > 11.3 LTS毫升以上imputers:可選(Dict(str,聯盟(str,Dict(str,任何]]]]=沒有一個,# < DBR > 10.4 LTS毫升以上max_trials:可選(int]=沒有一個,# < DBR > 10.5毫升和下麵primary_metric:str=“r2”,time_col:可選(str]=沒有一個,timeout_minutes:可選(int]=沒有一個,)- >AutoMLSummary

預測規範

以下代碼示例配置一個AutoML運行培訓一個預測模型。額外的細節參數AutoML運行預測參數。使用Auto-ARIMA,時間序列必須有規律的頻率(也就是說,任意兩個點之間的時間間隔必須在整個時間序列相同)。頻率必須匹配頻率API調用中指定的單位。AutoML處理丟失的時間步驟填寫這些值的前一個值。

automl預測(數據集:聯盟(pysparksqlDataFrame,熊貓DataFrame,pyspark熊貓DataFrame,str),*,target_col:str,time_col:str,country_code:str=“我們”,# < DBR > 12.0毫升以上data_dir:可選(str]=沒有一個,exclude_frameworks:可選(列表(str]]=沒有一個,experiment_dir:可選(str]=沒有一個,experiment_name:可選(str]=沒有一個,# < DBR > 12.1毫升以上feature_store_lookups:可選(列表(Dict]]=沒有一個,# < DBR > 12.2 LTS毫升以上頻率:str=“D”,地平線:int=1,identity_col:可選(聯盟(str,列表(str]]]=沒有一個,output_database:可選(str]=沒有一個,# < DBR > 10.5毫升以上primary_metric:str=“smape”,timeout_minutes:可選(int]=沒有一個,)- >AutoMLSummary

分類和回歸參數

請注意

分類和回歸問題,您可以:

  • 指定的列包含在訓練。

  • 選擇自定義歸責方法。

字段名

類型

描述

數據集

str熊貓。DataFramepyspark。DataFrame pyspark.sql.DataFrame

輸入表名或DataFrame包含培訓功能和目標。

表名可以在格式”. .“或”。“非統一目錄表

target_col

str

列名為目標標簽。

data_dir

str的格式dbfs: / <文件夾名稱>

(可選)用於存儲訓練數據集DBFS路徑。這條路是可見的司機和工人節點。如果空,AutoML節省訓練數據集作為MLflow工件。

exclude_cols

列表(str)

(可選)的列列表忽略在AutoML計算。

默認值:[]

exclude_框架

列表(str)

(可選)的算法框架列表AutoML不應該認為它的發展模式。可能的值:空列表,或者一個或多個“sklearn”,“lightgbm”、“xgboost”。

默認值:[](所有框架被認為是)

experiment_dir

str

在工作區中(可選)路徑目錄保存生成的筆記本和實驗。

默認值:/ / <用戶名> / databricks_automl /用戶

experiment_name

str

(可選)的名稱MLflow實驗AutoML創造。

默認值:名字是自動生成的。

feature_store_查找

列表(東西)

(可選)的詞典列表代表功能特性存儲的數據擴充。有效的在每個字典鍵:

  • table_name (str):必須的。功能表的名稱。

  • lookup_key(列表或str):必須的。列名(s)作為關鍵當加入功能表中傳遞的數據數據集參數。的順序列名稱必須匹配功能表的主鍵的順序。

  • timestamp_lookup_key (str):如果需要指定的表是一個時間序列特征表。列名使用在執行時間點查找功能表的數據傳遞數據集參數。

默認值:[]

imputers

Dict (str,工會(str, Dict [str,任何]]]

(可選)詞典,每個鍵是一個列名稱,和每個值是一個字符串描述歸罪策略或字典。如果指定為一個字符串,的值必須是一個“意思”,“中等”或“most_frequent”。轉嫁與已知值,指定的值作為一個字典{“策略”:“常數”,“fill_value”:<所需的值>}。還可以指定字符串選項字典,例如{“策略”:“的意思是”}。

如果沒有提供歸罪戰略列,AutoML選擇一個默認的策略基於列類型和內容。如果你指定一個非默認歸責方法,AutoML不執行語義類型檢測

默認值:{}

max_trials

int

(可選)最大數量的試驗運行。

這個參數可以在磚運行時10.5毫升,下麵,但是在磚開始運行時10.3毫升。已被棄用,磚運行時11.0毫升以上,不支持這個參數。

默認值:20

如果timeout_minutes = None, AutoML運行試驗的最大數量。

pos_label

聯盟(int, bool, str)

(分類)的積極類。這是有用的計算精度和召回等指標。隻能指定二進製分類問題。

primary_metric

str

指標用於評估和等級模型的性能。

支持指標回歸:“r2”(默認),“美”、“rmse”、“mse”

支持分類指標:“f1”(默認),“log_loss”、“精密”,“準確性”,“roc_auc”

time_col

str

在磚運行時可用10.1毫升以上。

(可選的)一次列的列名。

如果提供,AutoML試圖將數據集分為訓練,驗證集和測試集的作品按年代排序,使用最早的點作為訓練數據和最新的點作為測試集。

接受時間戳和整數列類型。磚運行時的10.2毫升以上,也支持字符串列。如果字符串列類型,AutoML試圖把它轉換成使用語義檢測時間戳。如果轉換失敗,AutoML運行失敗。

timeout_minutes

int

(可選)最長時間等待AutoML試驗完成。更長的超時允許AutoML運行試驗和確定一個模型有更好的精度。

默認值:無(無時間限製)

最小值:5分鍾

一個錯誤報告如果超時太短,允許至少一個試驗來完成。

預測參數

字段名

類型

描述

數據集

str

熊貓。DataFrame pyspark。DataFrame pyspark。sql。DataFrame

輸入表名或DataFrame包含培訓功能和目標。

表名可以在格式”. .“或”。“非統一目錄表

target_col

str

列名為目標標簽。

time_col

str

預測時間列的名稱。

頻率

str

時間序列預測的頻率。這是預計的時間事件發生。默認設置是“D”或日常數據。一定要改變設置如果您的數據有不同的頻率。

可能的值:

“W”(周)

“D”/“天”/“天”

“小時”/“小時”/“人力資源”/“h”

“m”/“分鍾”/“min”/“分鍾”/“T”

“S”/“秒”/“sec”/“第二”

以下是與磚隻能運行時12.0毫升,上圖:

“M”/“月”/“月”

“Q”/“季度”/“季度”

“Y”/“年”/“年”

默認值:“D”

地平線

int

數量的時期應該返回預期的未來。單位是時間序列的頻率。默認值:1

data_dir

str的格式dbfs: / <文件夾名稱>

(可選)用於存儲訓練數據集DBFS路徑。這條路是可見的司機和工人節點。如果空,AutoML節省訓練數據集作為MLflow工件。

exclude_框架

列表(str)

(可選)的算法框架列表AutoML不應該認為它的發展模式。可能的值:空列表,或者一個或多個“先知”、“arima”。默認值:[](所有框架被認為是)

experiment_dir

str

在工作區中(可選)路徑目錄保存生成的筆記本和實驗。

默認值:/ / <用戶名> / databricks_automl /用戶

experiment_name

str

(可選)的名稱MLflow實驗AutoML創造。

默認值:名字是自動生成的。

feature_store_查找

列表(東西)

(可選)的詞典列表代表功能特性存儲的數據擴充。有效的在每個字典鍵:

  • table_name (str):必須的。功能表的名稱。

  • lookup_key(列表或str):必須的。列名(s)作為關鍵當加入功能表中傳遞的數據數據集參數。的順序列名稱必須匹配功能表的主鍵的順序。

  • timestamp_lookup_key (str):如果需要指定的表是一個時間序列特征表。列名使用在執行時間點查找功能表的數據傳遞數據集參數。

默認值:[]

identity_col

聯盟(str,列出)

(可選)列(s),確定multi-series預測時間序列。AutoML由這些列組(s)和列的時間預測。

output_database

str

(可選)如果提供,AutoML保存最好的模型來預測一個新表中指定的數據庫。

默認值:預測還未得救。

primary_metric

str

指標用於評估和等級模型的性能。支持指標:“smape”(默認)“mse”,“rmse”、“美”或“mdape”。

timeout_minutes

int

(可選)最長時間等待AutoML試驗完成。更長的超時允許AutoML運行試驗和確定一個模型有更好的精度。

默認值:無(無時間限製)

最小值:5分鍾

一個錯誤報告如果超時太短,允許至少一個試驗來完成。

country_code

str

在磚運行時可用12.0毫升以上。隻支持的先知預測模型。

(可選)兩個字母的國家代碼表明預測模型應該使用哪個國家的假期。忽略假期,將這個參數設置為一個空字符串(" ")。支持國家

默認值:美國(美國假期)。

返回

AutoMLSummary

總結對象為AutoML描述指標,運行參數,和其他細節為每個試驗。你也用這個對象加載模型由一個特定的訓練試驗。

財產

類型

描述

實驗

mlflow.entities.Experiment

MLflow實驗用於記錄試驗。

試用

列表(TrialInfo)

列表包含所有的試驗運行的信息。

best_trial

TrialInfo

審判信息導致的最佳加權分數的主要指標。

metric_distribution

str

主要指標的加權分數分布在所有試驗。

output_table_name

str

僅用於預測,隻有output_database提供。表的名字output_database包含模型的預測。

TrialInfo

總結為每個單獨的試驗對象。

財產

類型

描述

notebook_path

str

生成的路徑筆記本這個試驗在工作區中。

notebook_url

str

這個試驗的URL生成的筆記本。

mlflow_run_id

str

MLflow運行ID相關的試驗。

指標

Dict (str,浮動)

的度量標準登錄MLflow審判。

參數個數

Dict (str, str)

登錄參數MLflow用於此試驗。

model_path

str

MLflow工件URL在這個試驗模型的訓練。

model_description

str

簡短描述的模型和hyperparameters用於訓練該模型。

持續時間

str

培訓時間在幾分鍾內。

預處理器

str

預處理器運行之前訓練模型的描述。

evaluation_metric_score

浮動

得分為主要指標,評估驗證數據集。

方法

描述

load_model ()

負荷模型生成的在這個實驗中,記錄作為MLflow工件。

注冊和部署模型

你可以注冊和部署AutoML訓練模型就像任何注冊模型MLflow模型中的注冊表,看看日誌、負載、登記和部署MLflow模型

名為“pandas.core.indexes.numeric沒有模塊

當提供一個模型使用AutoML與模型構建服務,你可能會得到錯誤:沒有模塊命名“pandas.core.indexes.numeric

這是由於一個不相容的熊貓版本AutoML和模型服務端點之間的環境。您可以通過運行解決這個錯誤add-pandas-dependency。py腳本。腳本編輯conda.yaml為你記錄包括適當的模型熊貓依賴版本:熊貓= = 1.5.3

  1. 包括修改腳本run_idMLflow運行你的模型的記錄。

  2. 注冊模型MLflow模型注冊表。

  3. 試服務MLflow模型的新版本。

筆記本的例子

回顧這些筆記本與AutoML開始。

以下筆記本顯示了如何用AutoML做分類。

AutoML分類示例筆記本

在新標簽頁打開筆記本

以下筆記本顯示了如何用AutoML做回歸。

AutoML回歸例子筆記本

在新標簽頁打開筆記本

以下筆記本顯示了如何用AutoML做預測。

AutoML預測例子筆記本

在新標簽頁打開筆記本

下麵的筆記本顯示了如何培養一個毫升模型AutoML和特性存儲特性表。

AutoML試驗特性存儲筆記本

在新標簽頁打開筆記本