自定義工作流demo
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提供了豐富的工作流模板,您也可以直接基于模板快速構建模型,詳情請參見模板工作流demo。
您可以通過DataWorks實現離線工作流的離線調度,周期性地更新模型,詳情請參見使用DataWorks離線調度Designer工作流。
支持在工作流中配置全局變量,可用于在線工作流以及DataWorks離線調度工作流,提升工作流的靈活性和效率,詳情請參見高級功能:全局變量。