磚AutoML
磚AutoML幫助你自動機器學習應用於一個數據集。它準備模型訓練數據集,然後執行和記錄一組試驗,創建、優化和評估多個模型。它顯示結果並提供Python筆記本每個試驗運行的源代碼,這樣你就能評論,複製和修改代碼。AutoML也計算彙總統計數據集上並將這些信息保存在一個筆記本,你可以檢查。
AutoML自動分配hyperparameter跨集群的工作節點優化試驗。
每一個模型是由開源組件,可以很容易地編輯和集成到您的機器學習管道。您可以使用磚AutoML回歸、分類和預測問題。它基於算法的評估模型scikit-learn,xgboost,LightGBM包。
您可以運行AutoML使用用戶界麵或者是Python API。
AutoML算法
磚AutoML創建和評估模型基於這些算法:
分類模型
回歸模型
scikit-learn模型
預測
Auto-ARIMA(磚中可用的運行時10.3毫升以上。)
抽樣大型數據集
請注意
抽樣不應用於預測問題。
雖然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=df。withMetadata(“< column_name >”,metadata_dict)
< semantic_type >
可以是下列之一:
分類
:列包含分類值(例如,數值應視為IDs)。數字
:列數值(例如,字符串值,可以解析成數字)。datetime
:列包含時間戳值(字符串、數字或日期值,可以轉化為時間戳)。文本
:字符串列包含英語文本。
禁用語義類型檢測在一個專欄中,使用特殊的關鍵字注釋本機
。
explainability夏普利值(世鵬科技電子)模型
生產的筆記本AutoML回歸和分類包括運行代碼來計算沙普利值。沙普利值是基於博弈論和估計的重要性每個特性的預測模型。
AutoML筆記本電腦使用世鵬科技電子包計算夏普利值。消耗大量內存的,因為這些計算是計算不默認執行。
計算和顯示夏普利值:
去功能的重要性部分在一個AutoML生成試驗筆記本。
集
shap_enabled=真正的
。重新運行筆記本。
AutoML UI
AutoML UI步驟通過訓練數據集上的模型的過程。訪問界麵:
選擇機器學習從角色切換器左邊欄的頂部。
在側邊欄中,單擊創建>AutoML實驗。
您還可以創建一個新的AutoML實驗的實驗頁麵。
配置頁麵顯示AutoML實驗。在這個頁麵中,您配置AutoML過程,指定數據集,問題類型、目標或標簽列預測,指標用來評估和實驗運行,和停止條件。
在UI設置分類或回歸問題
在計算字段中,選擇一個集群運行磚運行時的8.3毫升或以上。
從毫升問題類型下拉菜單,選擇回歸或分類。如果你想預測一個連續的數值為每個觀察,如年度收入,選擇回歸。如果你想分配每個觀察到一組離散的類,如良好的信用風險或不良信貸風險,選擇分類。
下數據集,點擊瀏覽。出現一個對話框列出了可用的數據庫和表。導航到表你想使用和點擊選擇。表的模式出現了。
您可以指定要包含在訓練並選擇自定義列歸責方法。看到修改數據集。
點擊預測目標字段。出現一個下拉清單中顯示的列模式。選擇你想要的列模型來預測。
的實驗名稱字段顯示了默認的名稱。改變它,輸入新名稱。
您還可以指定額外的配置選項。
在UI中建立預測問題
在計算字段中,選擇一個集群運行磚運行時的10.0毫升或以上。
從毫升問題類型下拉菜單,選擇預測。
下數據集,點擊瀏覽。出現一個對話框列出了可用的數據庫和表。導航到表你想使用和點擊選擇。表的模式出現了。
點擊預測目標字段。出現一個下拉清單中顯示的列模式。選擇你想要的列模型來預測。
點擊時間列字段。出現一個下拉顯示數據集列的類型
時間戳
或日期
。選擇列包含時間序列的時間。對於multi-series預測,選擇列(s),識別個人的時間序列時間序列標識符下拉。AutoML組數據,這些列不同時間序列和火車模型為每個獨立係列。如果你離開這一領域的空白,AutoML假設數據集包含一個時間序列。
在預測的時間跨度和頻率字段,指定時間段的數量在未來的AutoML應該計算預測的值。在左邊的框中,輸入整數周期預測的數量。在正確的盒子,選擇單位。
在磚運行時的10.5毫升以上,您可以保存預測結果。為此,指定一個數據庫中輸出數據庫字段。點擊瀏覽從對話框中選擇一個數據庫。AutoML將預測結果寫入數據庫中有一個表。
的實驗名稱字段顯示了默認的名稱。改變它,輸入新名稱。
您還可以指定額外的配置選項。
高級配置
打開高級配置(可選)部分訪問這些參數。
的評價指標主要指標用於分數。
在磚運行時的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顯示警告潛在問題的數據集,如不支持的列類型或高基數列。
請注意
磚做的最好的指示潛在的錯誤或問題。然而,這可能不全麵、不可能抓住問題或者錯誤,你可能會搜索。請確認進行你自己的評論。
看到任何警告數據集,點擊警告選項卡頁麵上的訓練,或者在實驗在實驗完成後頁。
當實驗完成後,您可以:
注冊和部署模型與MLflow之一。
點擊查看筆記本的最佳模型審查和編輯創建的最佳模式的筆記本。
點擊視圖數據探索的筆記本打開數據探索的筆記本。
搜索、過濾和排序的運行運行表。
看到任何運行的細節:
打開筆記本包含源代碼的試運行,點擊源列。
查看運行結果,點擊模型列或開始時間列。試驗運行頁麵出現顯示信息(如參數、指標和標記)和工件產生的運行,包括模型。這個頁麵還包含代碼片段,您可以使用與模型進行預測。
回到這個AutoML實驗後,發現它在桌子上實驗頁麵。每個AutoML實驗的結果,包括數據探索和培訓筆記,存儲在一個databricks_automl
文件夾中主文件夾的用戶運行實驗。
AutoML Python API
創建一個筆記本並將其附加到一個集群運行磚運行時8.3毫升以上。
加載一個火花或熊貓DataFrame或從現有的數據源DBFS上傳數據文件並將數據裝載到筆記本。
df=火花。讀。格式(“鋪”)。負載(“<文件夾路徑>”)
開始一個AutoML運行,通過DataFrame AutoML。看到API規範獲取詳細信息。
當AutoML開始運行,一個出現在控製台MLflow實驗URL。使用這個URL來監控運行的進程。刷新MLflow實驗的試驗完成。
AutoML運行完成後:
使用輸出總結中的鏈接導航到MLflow實驗或筆記本,產生最好的結果。
使用鏈接數據探索筆記本得到一些洞察數據傳遞給AutoML。你也可以把這個筆記本相同的集群並重新運行筆記本繁殖結果或做額外的數據分析。
使用總結對象AutoML調用返回的探索更詳細的試驗或加載模型訓練由給定的審判。看到API文檔獲取詳細信息。
克隆試驗和重新運行的任何生成的筆記本筆記本通過將它附加到相同的集群複製的結果。你也可以進行必要的編輯和重新運行它們額外訓練模型和日誌相同的實驗。
Python API規範
Python API提供了功能分類和回歸AutoML開始運行。每個函數調用列車一組為每個模型試驗模型和生成一個筆記本。
分類
請注意
的max_trials
參數是在磚棄用運行時10.3毫升,將被刪除在未來主要磚運行時的ML版本。使用timeout_minutes
控製AutoML運行的時間。
磚。automl。分類(數據集:聯盟(pyspark。DataFrame,熊貓。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。回歸(數據集:聯盟(pyspark。DataFrame,熊貓。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。預測(數據集:聯盟(pyspark。sql。dataframe。DataFrame,熊貓。核心。框架。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路徑。這條路是可見的司機和工人節點。如果空,AutoML節省訓練數據集作為MLflow工件。 |
exclude_columns |
列表(str) |
(可選)的列列表忽略在AutoML計算。 默認值:[] |
exclude_框架 |
列表(str) |
(可選)的算法框架列表AutoML不應該認為它的發展模式。可能的值:空列表,或者一個或多個“sklearn”,“lightgbm”、“xgboost”。 默認值:[](所有框架被認為是) |
experiment_dir |
str |
在工作區中(可選)路徑目錄保存生成的筆記本和實驗。 默認值: |
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路徑。這條路是可見的司機和工人節點。如果空,AutoML節省訓練數據集作為MLflow工件。 |
exclude_框架 |
列表(str) |
(可選)的算法框架列表AutoML不應該認為它的發展模式。可能的值:空列表,或者一個或多個“先知”、“arima”。默認值:[](所有框架被認為是) |
experiment_dir |
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分鍾 一個錯誤報告如果超時太短,允許至少一個試驗來完成。 |
返回
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工件。 |
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處理丟失的時間步驟填寫這些值的前一個值。