Leo Yeh's Blog

SAS Viya (136)

教學目標

初步了解如何透過 dataSciencePilot 操作集自動產生機器學習模型的基本概念。

重點概念

首先 dataSciencePilot 操作集由一些操作所組成,這些操作實現了基政策,可設定且可擴展的方法來自動化資料 科學工作流,此操作集有兩個主要的應用,第一個應用為端到端自動化主要要求使用者提供最少的輸入,像是輸入資料和要預測的目標變數,第二個應用為資料科學工作流程中特定步驟的自動化主要包括資料探索,特徵預處理,特徵工程選擇以及超參數調整,並且其中 dataSciencePilot 操作集中的操作主要分為三個邏輯類別,分別為:

  1. 資料集探索操作集:主要擴展和探索資料集,將能夠建立有效的機器學習模型非常重要,像是 explorerData、explorerCorrelation、analysMissingPatterns 和 screenVariables 等操作集。
  2. 特徵工程和選擇操作集:主要自動化特徵工程和選擇任務,將能夠有效解決工程和任務的效能瓶頸,像是 featureMachine 和 selectFeatures 等操作集。
  3. 自動化機器學習操作集:主要自動化建立機器學習,將能夠有效達到端到端自動化和機器管線的執行,像是 dsAutoML 等操作集。

接著由於現代資料集存在許多資料品質的問題並且變得越來越大,並且於用於收集數據的方法,它們具有資料品質問題,使得有效而可擴展地探索這資料集成為一項艱鉅的任務,對於以分散式方式儲存的資料,基數和分位數估計是探索資料集時最嚴重的兩個瓶頸,此時在 dataSciencePilot 操作集中的操作實現了針對這些問題,這些演算法使得操作在運行時間和記憶體佔用方面皆非常可擴展,以及這些操作將落實基於政策,可設定和可擴展的方法來自動化資料科學工作流程,這些操作將能夠讓我們快速地從資料集轉移到可部署模型中。至於 dataSciencePilot 操作集主要有有七個關鍵的操作,分別為 explorerData 、 explorerCorrelation 、 analysMissingPatterns 、 screenVariables 、 featureMachine 、 selectFeatures 和 dsAutoML 等操作集,並且 dataSciencePilot 操作集中的操作會在 CAS 輸出資料表中產成所有結果,這代表除了日誌資訊之外,我們將能夠從執行操作中看到的唯一輸出,其中包含有關產生的 CAS 輸出資料表的中繼資料,至於有關 dataSciencePilot 操作集更多使用方式,則建議參考官方部落格官方文件

再來我們將能夠以德國信用當範例主要透過 dsAutoML 操作自動探索有效機器學習的管線,其中 sampleSize 參數主要控制要建立,執行和排序的機器學習管線的總數,預設政策設定則用於 exploitPolicy 、 screenPolicy 和 selectionPolicy 參數,以及 transformationPolicy 參數僅用於丟失、基數和偏度資料品質的問題,這代表著將執行預期可減輕這些資料品質的問題轉換和產生管線。

載入德國信用資料集

1
2
3
4
5
cas mysession;
libname mycas cas;
data mycas.dmagecr;
set sampsio.dmagecr;
run;

執行自動探索有效機器學習的管線

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
proc cas;
loadactionset "dataSciencePilot";
dataSciencePilot.dsAutoMl
/ table = "DMAGECR"
target = "good_bad"
event = "good"
explorationPolicy = {}
screenPolicy = {}
selectionPolicy = {}
transformationPolicy = {missing = True,
cardinality = True,
entropy = True,
iqv = True,
skewness = True,
kurtosis = True,
Outlier = True
}
modelTypes = {"decisionTree"}
objective = "AUC"
sampleSize = 20
topKPipelines = 20
kFolds = 5
transformationOut = {name = "TRANSFORMATION_OUT",
replace = True}
featureOut = {name = "FEATURE_OUT",
replace = True}
pipelineOut = {name = "PIPELINE_OUT",
replace = True}
saveState = {name = "ASTORE_OUT",
replace = True}
;
run;
quit;
proc cas;
fetch / table = "PIPELINE_OUT";
run;
quit;
proc cas;
fetch / table = "FEATURE_OUT";
run;
quit;
proc cas;
fetch / table = "TRANSFORMATION_OUT";
run;
quit;

最後該 dataSciencePilot 操作集將會產生機器學習模型自動調整的結果、ROC 資訊、配適統計值、調整器資訊、調整器結果預設和最佳設定、調整器反覆運算歷史、調整器歷史所有評估的設定、最佳設定、調整器摘要、調整器工作計時、超參數重要性、… 等結果以及四個 CAS 輸出表格的結果,分別為:

  1. TRANSFORMATION_OUT 表格:主要包括有關產生轉換管線的中繼資料。
  2. FEATURE_OUT 表格:主要包括含有關產生特徵的中繼資料。
  3. PIPELINE_OUT 表格:主要包括有關所有探索和執行管線的中繼資料。
  4. ASTORE_OUT 表格:主要包括有關產生分析儲存評分物件。

自動調整的結果

項目
樹節點數目 203.000000
最大分支數目 2.000000
層級數目 15.000000
分葉數目 102.000000
箱數 50.000000
最小分葉大小 5.000000
最大分葉大小 109.000000
變數數目 14.000000
剪除的信賴水準 0.250000
使用的觀測值數目 1000.000000
錯誤分類誤差 (%) 8.800000

調整器資訊的結果

項目
記憶體類型 決策樹
調整器目標函數 曲線下面積
搜尋方法 GA
母體大小 10
最大迭代 5
最大調整時間 (秒) 36000
驗證類型 交叉驗證
交叉驗證中的折疊數 5
日誌層級 0
種子 209929885
平行評估次數 4
每個子工作階段的背景工作數目 0

最佳設定的結果

項目
評估 12
最大樹狀結構層級 20
準則 GINI
曲線下面積 0.9799761905

調整器摘要的結果

項目
初始設定目標值 0.7035
最佳設定目標值 0.9800
最差設定目標值 0.5675
初始設定評估時間 (秒) 0.8054
最佳設定評估時間 (秒) 2.0287
改善的設定數目 4
評估的設定數目 34
總調整時間 (秒) 19.4365
平行調整加速 3.4403

調整器工作計時的結果

工作 百分比
模型訓練 54.03 80.80
模型計分 12.00 17.94
總目標評估 66.07 98.80
調整器 0.80 1.20
總 CPU 時間 66.87 100.00

總結我們將能夠透過 dataSciencePilot 操作集自動產生機器學習模型,並且自動針對機器學習模型進行調整。

相關資源

⬅️ Go back