Designer使用工作流程構建模型。您先建立一個工作流程,再按建模需求在工作流程中排布各組件的處理調度邏輯。以下以建立空白工作流程、構建二分類模型預測心臟疾病為例,帶您完成從0~1的可視化模型構建和部署。
前提條件
已開通PAI並建立工作空間,詳情請參見開通並建立預設工作空間。
工作空間已關聯MaxCompute資源,詳情請參見快速入門-準備工作。
步驟一:建立工作流程
前往可視化建模(Designer),選擇工作空間並進入Designer頁面。單擊頁面右上方的建立工作流程,在彈出的對話方塊中輸入工作流程名稱後單擊確定,即可建立空白工作流程並進入編輯頁面。
|
參數 |
說明 |
|
工作流程名稱 |
自訂名稱。 |
|
工作流程資料存放區 |
建議您將該參數配置為OSS Bucket儲存路徑,用於儲存運行中產出的臨時資料和模型。若不設定,則使用工作空間的預設儲存。 系統會在每次運行時自動建立 |
|
可見範圍 |
|
步驟二:資料準備與預先處理
構建模型前,您需要準備資料來源並完成資料預先處理,以便後續按業務需求訓練模型。
準備資料
在工作流程中添加源/目標類型組件即可讀取資料,支援MaxCompute、OSS等資料來源,詳情可參見組件參考:源/目標下的具體組件文檔。以下樣本直接使用讀資料表組件讀取PAI提供的心臟病案例公開資料,資料集詳情請參見Heart Disease Data Set。
選擇合適的源/目標組件讀取資料。
在左側組件列表中,單擊源/目標,將讀資料表組件拖入右側畫布,用於讀取MaxCompute表資料。畫布中會自動產生名稱為讀資料表-1的工作流程節點。
在節點配置頁面配置來源資料表名。
在畫布中選中讀資料表-1節點,在右側節點配置頁面的表名中填寫要讀取的MaxCompute表名。以下樣本填寫為
pai_online_project.heart_disease_prediction,即PAI提供的心臟病案例公開資料表。將右側節點配置頁面切換到欄位資訊頁簽,查看該公開資料的欄位詳情,確認各欄位的名稱和類型,為後續資料預先處理做準備。
資料預先處理
心臟病預測樣本屬於二分類問題。本樣本使用的羅吉斯迴歸模型組件要求輸入資料為DOUBLE(或BIGINT)類型,因此需要完成資料類型轉換等預先處理,為模型訓練做準備。
資料預先處理:將非數實值型別欄位轉換為數實值型別。
搜尋SQL指令碼組件並拖入畫布,畫布中會產生名稱為SQL指令碼-1的工作流程節點。
將讀資料表-1節點連線到SQL指令碼-1節點的t1輸入源。
配置節點。
單擊SQL指令碼-1節點,在右側配置頁面輸入以下代碼。此時右側參數設定面板的輸入源為t1,對應上一步連線的上遊節點。
select age, (case sex when 'male' then 1 else 0 end) as sex, (case cp when 'angina' then 0 when 'notang' then 1 else 2 end) as cp, trestbps, chol, (case fbs when 'true' then 1 else 0 end) as fbs, (case restecg when 'norm' then 0 when 'abn' then 1 else 2 end) as restecg, thalach, (case exang when 'true' then 1 else 0 end) as exang, oldpeak, (case slop when 'up' then 0 when 'flat' then 1 else 2 end) as slop, ca, (case thal when 'norm' then 0 when 'fix' then 1 else 2 end) as thal, (case status when 'sick' then 1 else 0 end) as ifHealth from ${t1};單擊畫布左上方的儲存,儲存工作流程配置。
按右鍵SQL指令碼-1組件,單擊從根節點執行到此處,調試運行本工作流程。該操作只運行當前節點及其上遊節點,便於快速定位問題。
工作流程按節點順序依次運行各節點。節點運行成功後,節點右上方會顯示
。說明您也可以單擊畫布左上方的
(運行)表徵圖,直接運行整個工作流程。工作流程較複雜時,建議分模組運行某個節點或部分節點,方便調試。運行失敗時,按右鍵對應節點,選擇查看日誌排查失敗原因。運行成功後,按右鍵目標節點(例如SQL指令碼-1),選擇,確認當前節點的輸出資料是否正確。
資料預先處理:將欄位轉換為DOUBLE類型,使欄位滿足羅吉斯迴歸模型的輸入要求。
參考上一步,拖入類型轉換組件並連線,使其作為SQL指令碼-1節點的下遊節點。單擊該節點,在欄位設定頁簽單擊轉換為double類型的列下的選擇欄位,全選所有欄位並轉換為DOUBLE類型。
資料預先處理:歸一化處理,將每個特徵的數值範圍轉換為0~1,去除量綱對結果的影響。
參考上一步,拖入歸一化組件並連線,使其作為類型轉換-1節點的下遊節點。單擊該節點,在欄位設定頁簽選擇所有欄位。
資料預先處理:將資料拆分為訓練集和預測集,為後續模型訓練和預測做準備。
拖入拆分組件並連線,使其作為歸一化-1節點的下遊節點。該組件會輸出2個資料表。
拆分組件預設按4:1將資料拆分為模型訓練集和模型預測集。您可以單擊拆分組件,在右側參數設定頁簽設定切分比例,其他參數詳情請參見拆分。
按右鍵類型轉換-1組件,單擊從此處開始執行,運行工作流程中的剩餘節點。
步驟三:模型訓練
每個樣本只會患病或健康,因此心臟病預測屬於二分類問題。以下步驟使用羅吉斯迴歸二分類組件構建心臟病預測模型。
拖入邏輯回歸二分類組件並連線,使其作為拆分-1節點輸出表1的下遊節點。
配置節點。
單擊羅吉斯迴歸二分類-1節點,在右側欄位設定頁簽,將目標列設定為ifhealth,即模型要預測的健康標籤;將訓練特徵列設定為除目標列以外的所有列,即用於訓練模型的輸入欄位。更多參數請參見羅吉斯迴歸二分類。
說明如果您需要完成後續的步驟六:模型部署(可選),請選中羅吉斯迴歸二分類節點,在右側欄位設定頁簽勾選是否產生PMML複選框。未勾選則無法產生部署所需的模型檔案。
運行該節點。
步驟四:模型預測
運行預測節點並查看預測結果。
運行成功後,按右鍵預測節點,選擇查看資料 > 預測結果輸出,查看預測資料。
預測結果資料包含以下欄位:ifhealth(實際健康標籤,值為1.0或0.0)、prediction_result(預測結果)、prediction_score(預測信賴度分數)和prediction_detail(各分類的預測機率,JSON格式)。
步驟五:模型評估
拖入二分類評估組件並連線,使其作為預測-1節點的下遊節點。
單擊二分類評估-1節點,在右側欄位設定頁簽,將原始標籤列列名設定為ifhealth。
步驟六:模型部署(可選)
Designer和EAS已在使用鏈路上無縫對接。完成離線訓練、離線預測和評估後,您可以將單個模型部署至EAS,建立線上模型服務。
工作流程運行成功後,單擊模型列表,選擇要部署的模型,單擊部署至EAS。
確認配置參數,詳情請參見單模型部署線上服務。
在EAS部署頁面,模型檔案和Processor種類已預設配置完成,其他參數請根據實際需要配置。
單擊部署。
當服務狀態從建立中變為運行中時,表示模型部署成功。
重要如果後續不使用已部署的線上模型,請單擊操作列的停止,避免產生不必要的費用。
相關文檔
Designer提供豐富的工作流程範本,您也可以直接基於模板快速構建模型,詳情請參見模板工作流程。
您可以通過DataWorks調度離線工作流程,周期性更新模型,詳情請參見使用DataWorks離線調度Designer工作流程。
您可以在工作流程中配置全域變數,用於線上工作流程和DataWorks離線調度工作流程,提升工作流程的靈活性和效率,詳情請參見全域變數。
