Designer通過工作流程的方式來實現模型構建。您需要先建立一個工作流程,再根據建模需求在工作流程中排布不同組件的處理調度邏輯。本文通過建立一個空白工作流程,以構建二分類模型實現心臟疾病預測為例,帶您完成從0-1的可視化模型構建與部署。
前提條件
已開通PAI並建立工作空間。
步驟一:建立工作流程
前往可視化建模(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,將訓練特徵列設定為除目標列以外的所有列。更多參數詳情請參見羅吉斯迴歸二分類。
運行該節點。
步驟四:模型預測
運行預測節點並查看預測結果。
運行成功後,您可以按右鍵預測節點,選擇
,查看預測資料。
步驟五:模型評估
拖入二分類評估組件並連線,使其作為預測-1節點的下遊節點。
單擊二分類評估-1節點,在右側欄位設定頁簽,將原始標籤列列名設定為ifhealth。
相關文檔
Designer提供了豐富的工作流程範本,您也可以直接基於模板快速構建模型,詳情請參見模板工作流程。
您可以通過DataWorks實現離線工作流程的離線調度,周期性地更新模型,詳情請參見使用DataWorks離線調度Designer工作流程。
支援在工作流程中配置全域變數,可用於線上工作流程以及DataWorks離線調度工作流程,提升工作流程的靈活性和效率,詳情請參見全域變數。