火車毫升模型與磚AutoML Python API
本文演示了如何訓練模型與磚AutoML使用API。了解更多關於AutoML是什麼?。Python API提供了功能分類開始,回歸和預測AutoML運行。每個函數調用列車一組為每個模型試驗模型和生成一個筆記本。
通常以下步驟描述如何設置一個AutoML實驗使用API:
創建一個筆記本並將其附加到一個集群運行磚運行時毫升。
確定要使用哪個表從你現有的數據源或DBFS上傳數據文件和創建一個表。
當AutoML開始運行,一個出現在控製台MLflow實驗URL。使用這個URL來監控運行的進程。刷新MLflow實驗的試驗完成。
AutoML運行完成後:
使用輸出總結中的鏈接導航到MLflow實驗或筆記本,產生最好的結果。
使用鏈接數據探索筆記本得到一些洞察數據傳遞給AutoML。你也可以把這個筆記本相同的集群並重新運行筆記本繁殖結果或做額外的數據分析。
使用總結對象AutoML調用返回的探索更詳細的試驗或加載模型訓練由給定的審判。了解更多的AutoMLSummary對象。
克隆試驗和重新運行的任何生成的筆記本筆記本通過將它附加到相同的集群複製的結果。你也可以進行必要的編輯和重新運行它們額外訓練模型和日誌相同的實驗。
需求
看到需求AutoML實驗。
分類規範
以下代碼示例配置一個AutoML運行訓練分類模型。其他參數進一步定製AutoML看到運行分類和回歸參數。
請注意
的max_trials
參數是在磚棄用運行時不支持10.4毫升,在磚運行時的11.0毫升以上。使用timeout_minutes
控製AutoML運行的時間。
磚。automl。分類(數據集:聯盟(pyspark。sql。DataFrame,熊貓。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。回歸(數據集:聯盟(pyspark。sql。DataFrame,熊貓。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。預測(數據集:聯盟(pyspark。sql。DataFrame,熊貓。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路徑。這條路是可見的司機和工人節點。如果空,AutoML節省訓練數據集作為MLflow工件。 |
exclude_cols |
列表(str) |
(可選)的列列表忽略在AutoML計算。 默認值:[] |
exclude_框架 |
列表(str) |
(可選)的算法框架列表AutoML不應該認為它的發展模式。可能的值:空列表,或者一個或多個“sklearn”,“lightgbm”、“xgboost”。 默認值:[](所有框架被認為是) |
experiment_dir |
str |
在工作區中(可選)路徑目錄保存生成的筆記本和實驗。 默認值: |
experiment_name |
str |
(可選)的名稱MLflow實驗AutoML創造。 默認值:名字是自動生成的。 |
feature_store_查找 |
列表(東西) |
(可選)的詞典列表代表功能特性存儲的數據擴充。有效的在每個字典鍵:
默認值:[] |
imputers |
Dict (str,工會(str, Dict [str,任何]]] |
(可選)詞典,每個鍵是一個列名稱,和每個值是一個字符串描述歸罪策略或字典。如果指定為一個字符串,的值必須是一個“意思”,“中等”或“most_frequent”。轉嫁與已知值,指定的值作為一個字典 如果沒有提供歸罪戰略列,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路徑。這條路是可見的司機和工人節點。如果空,AutoML節省訓練數據集作為MLflow工件。 |
exclude_框架 |
列表(str) |
(可選)的算法框架列表AutoML不應該認為它的發展模式。可能的值:空列表,或者一個或多個“先知”、“arima”。默認值:[](所有框架被認為是) |
experiment_dir |
str |
在工作區中(可選)路徑目錄保存生成的筆記本和實驗。 默認值: |
experiment_name |
str |
(可選)的名稱MLflow實驗AutoML創造。 默認值:名字是自動生成的。 |
feature_store_查找 |
列表(東西) |
(可選)的詞典列表代表功能特性存儲的數據擴充。有效的在每個字典鍵:
默認值:[] |
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
。
包括修改腳本
run_id
MLflow運行你的模型的記錄。注冊模型MLflow模型注冊表。
試服務MLflow模型的新版本。