全部產品
Search
文件中心

Platform For AI:資料準備與預先處理

更新時間:Jul 13, 2024

通常情況下,在構建一個模型時,您需要準備好用於模型構建和調試所需要使用的資料,並完成資料的預先處理,以便後續根據業務需求進行模型開發所需的進一步加工。本樣本以PAI為您提供的公開資料為例,示範資料準備與預先處理的操作步驟。

前提條件

已經建立了一個工作流程,詳情請參見建立自訂工作流程

step1:進入工作流程頁面

  1. 登入PAI控制台,在左側導覽列單擊工作空間列表,再單擊待操作的工作空間名稱,進入對應工作空間內。

  2. 在工作空間頁面的左側導覽列選擇模型開發與訓練 > 可視化建模(Designer),進入Designer頁面。

  3. 在工作流程列表頁面,選中對應工作流程後,單擊進入工作流程即可進入工作流程頁面。

step2:準備資料

本樣本使用PAI為您提供的心臟病案例的公開資料。您無需建立表、寫入表資料,可直接使用讀資料表來讀取此公開資料,作為資料準備。

說明

通常情況下,您需要準備一個MaxCompute表或OSS表,並通過源/目標組件下的讀資料表寫資料表讀OSS資料等組件來查詢或寫入資料到表中,操作詳情可參見源/目標對應組件文檔。

43a466b14a69a9811948b46d83377753.png

  1. 在左側組件列表的搜尋方塊中,搜尋讀資料表,找到讀資料表組件。

  2. 讀資料表組件拖入右側畫布中,畫布中自動產生一個名稱為讀資料表-1的工作流程節點。

  3. 在畫布中選中讀資料表-1節點,在右側節點配置頁面中的表名中輸入pai_online_project.heart_disease_prediction,讀取公開的心臟病案例的資料表。

    您也可以將右側的節點配置頁面切換到欄位資訊頁簽,查看此公開資料的欄位詳情。

step3:資料預先處理

本樣本使用的未經處理資料為公開的心臟病案例的資料,資料預先處理以將所有欄位取值歸一化為例,為您展示資料預先處理的步驟。本樣本的資料預先處理主要包括三個處理流程:

  1. 將未經處理資料表中,取值為非數實值型別的欄位,通過SQL替換為數實值型別的取值,以保證此預先處理後,表中所有欄位的取值都是數實值型別。

  2. 將表中欄位轉換為double類型,以保證此預先處理後,表中欄位均滿足後續歸一化處理的欄位屬性要求。

  3. 將表中欄位的取值均歸一化。

詳細操作如下。

  1. 資料預先處理:轉換非數實值型別欄位。2701eea1a4d4a49c8892983094eceffa.png

    1. 在左側組件列表的搜尋方塊中,搜尋SQL指令碼,找到SQL指令碼組件。

    2. SQL指令碼組件拖入右側畫布中,畫布中將自動產生一個名稱為SQL指令碼-1的工作流程節點。

    3. 通過連線,將SQL指令碼-1節點的t1輸入源作為讀資料表-1節點的下遊節點。

    4. 在畫布中選中SQL指令碼-1節點(此時在畫布右側參數設定頁面的輸入源為t1),在右側節點配置頁面中的SQL指令碼輸入框中輸入以下SQL代碼。

      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節點有t1、t2、t3和t4四個輸入源。在SQL程式碼範例中,${t1}表示輸入源為t1。如果您從讀資料表-1SQL指令碼-1連線的節點是t2或其他(在SQL指令碼-1參數設定頁面的輸入源會顯示對應節點),需要修改SQL語句為對應節點。

    5. 單擊畫布上方的運行運行按鈕,實驗將根據工作流程順序依次運行讀資料表-1SQL指令碼-1節點。

  2. 資料預先處理:將所有欄位轉換為double類型。

    b4e7bb3e15838f4bfd46dcdec8eb60d6.png

    1. 在左側組件列表的搜尋方塊中,搜尋類型轉換,找到類型轉換組件。

    2. 類型轉換組件拖入右側畫布中,畫布中自動產生一個名稱為類型轉換-1的工作流程節點。

    3. 通過連線,將類型轉換-1節點作為SQL指令碼-1節點的下遊節點。

    4. 在畫布中選中類型轉換-1節點,在右側節點配置頁面中的欄位設定頁簽,單擊轉換為double類型的列下的選擇欄位,將所有欄位轉換為double類型。

  3. 資料預先處理:歸一化。

    bbd133ada39f2d0da5853c21ee08e5b7.png

    1. 在左側組件列表的搜尋方塊中,搜尋歸一化,找到歸一化組件。

    2. 歸一化組件拖入右側畫布中,畫布中自動產生一個名稱為歸一化-1的工作流程節點。

    3. 通過連線,將歸一化-1節點作為類型轉換-1節點的下遊節點。

    4. 在畫布中選中歸一化-1節點,在右側節點配置頁面中的欄位設定頁簽,選擇所有欄位。

  4. 在左側組件列表的搜尋方塊中,搜尋拆分,找到拆分組件後拖入畫布,並將其通過拉線作為歸一化-1節點的下遊節點。

    拆分組件預設將未經處理資料按4:1拆分為模型訓練集和模型預測集。您也可以單擊拆分組件,在右側參數設定頁簽,設定切分比例

  5. 單擊畫布上方的儲存,儲存工作流程配置。

step4:調試運行工作流程

按右鍵畫布中的類型轉換-1組件,在捷徑功能表中單擊從此處開始執行,調試運行本工作流程。582b14cc7ac747572e4f2f445ec374a5.png實驗將根據工作流程順序依次運行各節點。當節點成功運行完成後,節點的右上方會出現成功提示運行成功。運行成功後,您可以右鍵各節點,選擇查看資料,進一步查看當前節點的輸出資料是否正確。

說明

當工作流程比較複雜時,您可以每拖入一個組件配置完成一個節點後,就單擊儲存和運行,進行調試。如果運行失敗,可右鍵節點查看日誌,進行失敗原因的排查處理。

後續步驟

完成資料預先處理後,需要進行資料視覺效果,詳情請參見資料視覺效果