磚AutoML

磚AutoML幫助你自動機器學習應用於一個數據集。它準備模型訓練數據集,然後執行和記錄一組試驗,創建、優化和評估多個模型。它顯示結果並提供Python筆記本每個試驗運行的源代碼,這樣你就能評論,複製和修改代碼。AutoML也計算彙總統計數據集上並將這些信息保存在一個筆記本,你可以檢查。

AutoML自動分配hyperparameter跨集群的工作節點優化試驗。

每一個模型是由開源組件,可以很容易地編輯和集成到您的機器學習管道。您可以使用磚AutoML回歸、分類和預測問題。它基於算法的評估模型scikit-learn,xgboost,LightGBM包。

您可以運行AutoML使用用戶界麵或者是Python API

請注意

AutoML不支持透傳集群表ACL啟用集群

需求

  • 磚運行時8.3毫升以上。一般可用性(GA)版本,磚運行時10.4 LTS毫升以上。

  • 對時間序列預測,磚運行時10.0毫升以上。

  • 沒有提供附加的庫以外的磚在集群上運行時毫升運行時可以安裝。

  • 在一個高並發集群,AutoML並不兼容訪問控製表憑據透傳

  • 使用統一目錄AutoML,集群安全模式必須單用戶,你必須指定集群的單用戶。

AutoML算法

磚AutoML創建和評估模型基於這些算法:

抽樣大型數據集

請注意

抽樣不應用於預測問題。

雖然AutoML分發hyperparameter跨集群的工作節點優化試驗,每個模型訓練在一個工作節點。與磚運行時9.1 LTS毫升以上,AutoML自動估計所需的內存負載和訓練你的數據集樣本數據集,如果必要的。抽樣比例並不依賴於集群的節點類型或在每個節點上的內存量。采樣數據集用於訓練模型。

對於分類問題,AutoML使用PySparksampleBy方法對於分層抽樣保存目標標簽分布。

對於回歸問題,AutoML使用PySpark樣本方法

語義類型檢測

請注意

  • 語義類型檢測是不能應用於預測問題。

  • AutoML不執行語義類型檢測的列自定義歸責方法指定。

與磚運行時9.1 LTS毫升以上,AutoML試圖檢測是否列有一個語義類型,不同於火花或熊貓表中的數據類型模式。AutoML對待這些列作為檢測語義類型。這些檢測是最好的努力,可能會錯過在某些情況下存在的語義類型。你也可以手動設置的語義類型列或告訴AutoML不要語義類型檢測應用於列使用注釋

具體來說,AutoML使這些調整:

  • 字符串和整數列代表日期或時間戳數據被視為一個時間戳的類型。

  • 字符串列代表數值數據被當作一個數字類型。

磚運行時的10.1毫升以上,AutoML也使得這些調整:

  • 數字列包含類別id作為分類特征。

  • 字符串列包含英語文本被當作一個文本功能。

語義類型注解

磚運行時的10.1毫升以上,您可以手動控製分配的語義類型通過將語義類型列注釋。手工標注的語義類型的列< column_name >作為< semantic_type >使用下麵的語法:

metadata_dict=df模式(“< column_name >”]元數據metadata_dict(“spark.contentAnnotation.semanticType”]=“< semantic_type >”df=dfwithMetadata(“< column_name >”,metadata_dict)

< semantic_type >可以是下列之一:

  • 分類:列包含分類值(例如,數值應視為IDs)。

  • 數字:列數值(例如,字符串值,可以解析成數字)。

  • datetime:列包含時間戳值(字符串、數字或日期值,可以轉化為時間戳)。

  • 文本:字符串列包含英語文本。

禁用語義類型檢測在一個專欄中,使用特殊的關鍵字注釋本機

explainability夏普利值(世鵬科技電子)模型

生產的筆記本AutoML回歸和分類包括運行代碼來計算沙普利值。沙普利值是基於博弈論和估計的重要性每個特性的預測模型。

AutoML筆記本電腦使用世鵬科技電子包計算夏普利值。消耗大量內存的,因為這些計算是計算不默認執行。

計算和顯示夏普利值:

  1. 功能的重要性部分在一個AutoML生成試驗筆記本。

  2. shap_enabled=真正的

  3. 重新運行筆記本。

控製火車/驗證/測試

磚運行時的10.1毫升以上,您可以指定一個時間列用於培訓/驗證/測試分割分類和回歸問題。如果您指定這一列,數據集分為訓練,驗證集和測試集的時間。點是最早用於訓練,下一個最早的驗證,和最新的點作為測試集。

在磚運行時的10.1毫升,列必須是一個時間戳或整數列。在磚運行時的10.2毫升以上,你也可以選擇一個字符串列。

時間序列聚合

預測問題,當有多個值時間序列中時間戳,AutoML使用值的平均值。

使用和相反,編輯源代碼的筆記本。在聚合數據…細胞,改變.agg (y = (target_col,“avg”)).agg (y = (target_col,“金額”)如圖所示:

group_cols=(time_col]+id_colsdf_aggregation=df_loaded\groupby(group_cols)\gg(y=(target_col,“和”))\reset_index()\重命名(={time_col:“死刑”})

AutoML UI

AutoML UI步驟通過訓練數據集上的模型的過程。訪問界麵:

  1. 選擇機器學習角色切換器左邊欄的頂部。

  2. 在側邊欄中,單擊創建>AutoML實驗

    您還可以創建一個新的AutoML實驗的實驗頁麵

    配置頁麵顯示AutoML實驗。在這個頁麵中,您配置AutoML過程,指定數據集,問題類型、目標或標簽列預測,指標用來評估和實驗運行,和停止條件。

在UI設置分類或回歸問題

  1. 計算字段中,選擇一個集群運行磚運行時的8.3毫升或以上。

  2. 毫升問題類型下拉菜單,選擇回歸分類。如果你想預測一個連續的數值為每個觀察,如年度收入,選擇回歸。如果你想分配每個觀察到一組離散的類,如良好的信用風險或不良信貸風險,選擇分類。

  3. 數據集,點擊瀏覽。出現一個對話框列出了可用的數據庫和表。導航到表你想使用和點擊選擇。表的模式出現了。

    您可以指定要包含在訓練並選擇自定義列歸責方法。看到修改數據集

  4. 點擊預測目標字段。出現一個下拉清單中顯示的列模式。選擇你想要的列模型來預測。

  5. 實驗名稱字段顯示了默認的名稱。改變它,輸入新名稱。

您還可以指定額外的配置選項

在UI中建立預測問題

  1. 計算字段中,選擇一個集群運行磚運行時的10.0毫升或以上。

  2. 毫升問題類型下拉菜單,選擇預測

  3. 數據集,點擊瀏覽。出現一個對話框列出了可用的數據庫和表。導航到表你想使用和點擊選擇。表的模式出現了。

  4. 點擊預測目標字段。出現一個下拉清單中顯示的列模式。選擇你想要的列模型來預測。

  5. 點擊時間列字段。出現一個下拉顯示數據集列的類型時間戳日期。選擇列包含時間序列的時間。

  6. 對於multi-series預測,選擇列(s),識別個人的時間序列時間序列標識符下拉。AutoML組數據,這些列不同時間序列和火車模型為每個獨立係列。如果你離開這一領域的空白,AutoML假設數據集包含一個時間序列。

  7. 預測的時間跨度和頻率字段,指定時間段的數量在未來的AutoML應該計算預測的值。在左邊的框中,輸入整數周期預測的數量。在正確的盒子,選擇單位。

  8. 在磚運行時的10.5毫升以上,您可以保存預測結果。為此,指定一個數據庫中輸出數據庫字段。點擊瀏覽從對話框中選擇一個數據庫。AutoML將預測結果寫入數據庫中有一個表。

  9. 實驗名稱字段顯示了默認的名稱。改變它,輸入新名稱。

您還可以指定額外的配置選項

高級配置

打開高級配置(可選)部分訪問這些參數。

  • 的評價指標主要指標用於分數。

  • 在磚運行時的10.3毫升以上,可以排除培訓框架考慮。默認情況下,AutoML火車模型使用框架下上市AutoML算法

  • 您可以編輯停止條件。默認停止條件:

    • 預測實驗,120分鍾後停止。

    • 分類和回歸實驗,停止後60分鍾或完成200次試驗之後,無論發生的更早。

    • 在磚運行時10.1毫升以上的分類和回歸實驗,AutoML包含早期停止;它停止訓練和調優模型如果驗證指標不再是改善。

  • 在磚運行時的10.1毫升以上,你可以選擇一個時間列將數據進行訓練、驗證和測試按時間順序(僅適用於分類和回歸)。

  • 數據目錄字段,您可以輸入一個DBFS訓練數據集保存的位置。如果你離開這個領域空白,保存作為訓練數據集MLflow工件

修改數據集

你選擇一個數據集後,表模式出現了。分類和回歸問題,您可以指定要包含在訓練並選擇自定義列歸責方法。

列選擇

在磚運行時的10.3毫升以上,您可以指定哪些列AutoML應該使用培訓。排除一個列,取消它包括列。取消勾選一個列相當於設置exclude_columns參數AutoML Python API

你不能把列選為預測目標或作為時間列將數據。

默認情況下,所有的列都包括在內。

歸責缺失值

在磚運行時10.4 LTS毫升以上,您可以指定null值是如何估算的。在UI中,從下拉的選擇方法轉嫁與列在表模式。或者,使用imputers參數AutoML Python API

默認情況下,AutoML基於列類型選擇一個歸責方法和內容。

請注意

如果你指定一個非默認歸責方法,AutoML不執行語義類型檢測

運行試驗和監測結果

AutoML實驗開始,點擊開始AutoML。實驗開始運行,AutoML培訓頁麵出現。刷新表運行,點擊刷新按鈕

從這個頁麵中,您可以:

  • 在任何時候停止實驗。

  • 打開數據探索的筆記本。

  • 監控運行。

  • 導航到頁麵任何跑。

磚運行時的10.1毫升以上,AutoML顯示警告潛在問題的數據集,如不支持的列類型或高基數列。

請注意

磚做的最好的指示潛在的錯誤或問題。然而,這可能不全麵、不可能抓住問題或者錯誤,你可能會搜索。請確認進行你自己的評論。

看到任何警告數據集,點擊警告選項卡頁麵上的訓練,或者在實驗在實驗完成後頁。

AutoML警告

當實驗完成後,您可以:

  • 注冊和部署模型與MLflow之一。

  • 點擊查看筆記本的最佳模型審查和編輯創建的最佳模式的筆記本。

  • 點擊視圖數據探索的筆記本打開數據探索的筆記本。

  • 搜索、過濾和排序的運行運行表。

  • 看到任何運行的細節:

    • 打開筆記本包含源代碼的試運行,點擊列。

    • 查看運行結果,點擊模型列或開始時間列。試驗運行頁麵出現顯示信息(如參數、指標和標記)和工件產生的運行,包括模型。這個頁麵還包含代碼片段,您可以使用與模型進行預測。

回到這個AutoML實驗後,發現它在桌子上實驗頁麵。每個AutoML實驗的結果,包括數據探索和培訓筆記,存儲在一個databricks_automl文件夾中主文件夾的用戶運行實驗。

UI從AutoML寄存器和部署模型

  1. 點擊鏈接模型列模型的登記。當一個運行完成後,最好的模型(基於主要指標)是第一行。

    的構件部分運行頁麵創建模型的運行顯示。

  2. 點擊注冊模式按鈕注冊模型模型注冊

  3. 點擊模型圖標模型在側邊欄導航到注冊中心模型。

  4. 單擊您的模型在模型的表的名稱。的注冊頁麵模型顯示器。從這個頁麵,你可以服務模型

AutoML Python API

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

  2. 加載一個火花或熊貓DataFrame或從現有的數據源DBFS上傳數據文件並將數據裝載到筆記本。

    df=火花格式(“鋪”)負載(“<文件夾路徑>”)
  3. 開始一個AutoML運行,通過DataFrame AutoML。看到API規範獲取詳細信息。

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

  5. AutoML運行完成後:

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

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

    • 使用總結對象AutoML調用返回的探索更詳細的試驗或加載模型訓練由給定的審判。看到API文檔獲取詳細信息。

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

Python API規範

Python API提供了功能分類和回歸AutoML開始運行。每個函數調用列車一組為每個模型試驗模型和生成一個筆記本。

分類

請注意

max_trials參數是在磚棄用運行時10.3毫升,將被刪除在未來主要磚運行時的ML版本。使用timeout_minutes控製AutoML運行的時間。

automl分類(數據集:聯盟(pysparkDataFrame,熊貓DataFrame),*,target_col:str,data_dir:可選(str]=沒有一個,exclude_columns:可選(列表(str]]=沒有一個,# < DBR > 10.3毫升以上exclude_frameworks:可選(列表(str]]=沒有一個,# < DBR > 10.3毫升以上experiment_dir:可選(str]=沒有一個,# < DBR > 10.4 LTS毫升以上imputers:可選(Dict(str,聯盟(str,Dict(str,任何]]]]=沒有一個,# < DBR > 10.4 LTS毫升以上max_trials:可選(int]=沒有一個,#棄用在< DBR > 10.3毫升primary_metric:str=“f1”,time_col:可選(str]=沒有一個,timeout_minutes:可選(int]=沒有一個,)- >AutoMLSummary

回歸

請注意

max_trials參數是在磚棄用運行時10.3毫升,將被刪除在未來主要磚運行時的ML版本。使用timeout_minutes控製AutoML運行的時間。

automl回歸(數據集:聯盟(pysparkDataFrame,熊貓DataFrame),*,target_col:str,data_dir:可選(str]=沒有一個,exclude_columns:可選(列表(str]]=沒有一個,# < DBR > 10.3毫升以上exclude_frameworks:可選(列表(str]]=沒有一個,# < DBR > 10.3毫升以上experiment_dir:可選(str]=沒有一個,# < DBR > 10.4 LTS毫升以上imputers:可選(Dict(str,聯盟(str,Dict(str,任何]]]]=沒有一個,# < DBR > 10.4 LTS毫升以上max_trials:可選(int]=沒有一個,#棄用在< DBR > 10.3毫升primary_metric:str=“r2”,time_col:可選(str]=沒有一個,timeout_minutes:可選(int]=沒有一個,)- >AutoMLSummary

預測

automl預測(數據集:聯盟(pysparksqldataframeDataFrame,熊貓核心框架DataFrame,pyspark熊貓DataFrame),*,target_col:str,time_col:str,data_dir:可選(str]=沒有一個,exclude_frameworks:可選(列表(str]]=沒有一個,experiment_dir:可選(str]=沒有一個,頻率:str=“D”,地平線:int=1,identity_col:可選(聯盟(str,列表(str]]]=沒有一個,output_database:可選(str]=沒有一個,# < DBR > 10.5毫升以上primary_metric:str=“smape”,timeout_minutes:可選(int]=沒有一個,)- >AutoMLSummary

參數

分類和回歸

字段名

類型

描述

數據集

pyspark。數據Frame pandas.DataFrame

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

target_col

str

列名為目標標簽。

data_dir

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

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

exclude_columns

列表(str)

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

默認值:[]

exclude_框架

列表(str)

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

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

experiment_dir

str

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

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

imputers

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

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

如果沒有提供歸罪戰略列,AutoML選擇一個默認的策略。

默認值:{}

max_trials

int

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

磚棄用該參數運行時10.3毫升,將被刪除在接下來的大磚運行時ML版本。

默認值:20

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

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分鍾

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

預測

字段名

類型

描述

數據集

pyspark。數據Frame pandas.DataFrame

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

target_col

str

列名為目標標簽。

time_col

str

預測時間列的名稱。

頻率

str

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

可能的值:

“W”(周)

“D”/“天”/“天”

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

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

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

默認值:“D”

地平線

int

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

data_dir

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

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

exclude_框架

列表(str)

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

experiment_dir

str

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

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

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分鍾

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

返回

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工件。

API的例子

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

AutoML分類示例筆記本

在新標簽頁打開筆記本

AutoML回歸例子筆記本

在新標簽頁打開筆記本

AutoML預測例子筆記本

在新標簽頁打開筆記本

databricks-automl-runtime

與磚運行時9.1 LTS毫升以上,AutoML取決於databricks-automl-runtime包,其中包含的組件非常有用AutoML之外,還有助於簡化AutoML培訓所產生的筆記本。databricks-automl-runtime可以在PyPI

限製

  • 隻有類型支持以下特性:

    • 數字(ByteType,ShortType,IntegerType,LongType,FloatType,倍增式)

    • 布爾

    • 字符串(分類或英文文本)

    • 時間戳(TimestampType,DateType)

    • ArrayType[數字](磚運行時10.4 LTS毫升以上)

  • 不支持上麵未列出的功能類型。例如,不支持圖片。

  • 數據集有多個列具有相同名稱的不支持。

  • 與磚運行時9.0毫升,下麵,AutoML訓練使用完整的訓練數據集在單個節點上。訓練數據集必須融入一個工作節點的記憶。如果你遇到內存不足問題,嚐試使用一個工人節點和更多的內存。看到創建一個集群

    或者,如果可能的話,使用磚運行時的9.1 LTS毫升以上,AutoML自動樣本數據集,如果太大了,適合一個工作節點的記憶。

  • 使用Auto-ARIMA,時間序列必須有規律的頻率(也就是說,任意兩個點之間的時間間隔必須在整個時間序列相同)。頻率必須匹配頻率API調用中指定的單位或AutoML UI。AutoML處理丟失的時間步驟填寫這些值的前一個值。