全部產品
Search
文件中心

Platform For AI:心臟病預測

更新時間:Jul 13, 2024

心臟病嚴重影響人們的生命健康,如果可以通過人體相關體測指標,分析不同特徵對心臟病的影響,則可以有效預防心臟病。本工作流程基於真實的心臟病患者體測資料,為您介紹如何通過資料採礦演算法構建心臟病預測模型。

前提條件

資料採礦流程

資料集

本工作流程的資料集為UCI開來源資料集,詳情請參見Heart Disease Data Set。該資料集包含了303條美國某地區的心臟病檢查患者的體測資料,具體欄位如下。

欄位名

類型

描述

age

STRING

對象的年齡。

sex

STRING

對象的性別,取值為femalemale

cp

STRING

胸部疼痛類型,痛感由重到輕依次為typicalatypicalnon-anginalasymptomatic

trestbps

STRING

血壓。

chol

STRING

膽固醇。

fbs

STRING

空腹血糖。如果血糖含量大於120mg/dl,則取值為true,否則取值為false

restecg

STRING

心電圖結果是否有T波,由輕到重依次為normhyp

thalach

STRING

最大心跳數。

exang

STRING

是否有心絞痛。true表示有心絞痛,false表示沒有心絞痛。

oldpeak

STRING

運動相對於休息的ST Depression,即ST段壓值。

slop

STRING

心電圖ST Segment的傾斜度,程度取值包括downflatup

ca

STRING

透視檢查發現的血管數。

thal

STRING

病發種類,由輕到重依次為normfixrev

status

STRING

是否患病。buff表示健康,sick表示患病。

心臟病預測

  1. 進入Designer頁面。

    1. 登入PAI控制台

    2. 在左側導覽列單擊工作空間列表,在工作空間列表頁面中單擊待操作的工作空間名稱,進入對應的工作空間。

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

  2. 構建工作流程。

    1. Designer頁面,單擊預置模板頁簽。

    2. 在模板列表的心臟病預測案例地區,單擊建立

    3. 建立工作流程對話方塊,配置參數(可以全部使用預設參數)。

      其中:工作流程資料存放區配置為OSS Bucket路徑,用於儲存工作流程運行中產出的臨時資料和模型。

    4. 單擊確定

      您需要等待大約十秒鐘,工作流程可以建立成功。

    5. 在工作流程列表,選擇心臟病預測案例工作流程,單擊進入工作流程

    6. 系統根據預置的模板,自動構建工作流程,如下圖所示。

      心臟病預測實驗

      地區

      描述

      資料預先處理,主要對資料進行去噪、缺失值填充及類型變換操作。因為每個樣本只會患病或健康,所以心臟病預測可以歸屬於分類問題。本工作流程的輸入資料包括14個特徵列和1個目標列,在資料預先處理過程中,需要根據每個欄位的含義將字元類型轉化為數實值型別。其中:

      • 二值類資料:以sex欄位為例,其取值為femalemale,可以使用0表示female1表示male

      • 多值類資料:以cp欄位為例,該參數表示胸部疼痛感,可以將疼痛感由輕到重依次映射為0~3的數值。

      資料預先處理的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};

      特徵工程主要包括特徵的衍生及尺度變化等功能。本工作流程首先通過類型轉換組件將輸入特徵轉換為DOUBLE類型(因為羅吉斯迴歸模型的輸入資料必須為DOUBLE類型),然後使用過濾式特徵選取組件判斷每個特徵對於結果的影響(通過資訊熵和基尼係數反映其影響)。同時,使用歸一化組件將每個特徵的數值範圍轉換為0~1,從而去除量綱對結果的影響,其公式為result=(val-min)/(max-min)

      模型訓練和預測:

      1. 使用拆分組件將資料集按照7:3分為訓練資料集和預測資料集。

      2. 使用羅吉斯迴歸二分類組件訓練模型。

        說明

        如果您需要匯出PMML模型檔案,在該組件的欄位設定頁簽,需要選中是否產生PMML複選框。然後單擊空白畫布,在該工作流程頁面的工作流程屬性頁簽,配置工作流程資料存放區路徑。

      3. 將模型和預測資料集輸入至預測組件,進行結果預測。

      使用混淆矩陣二分類評估組件進行模型評估。

  3. 運行工作流程並查看輸出結果。

    1. 單擊畫布上方的image

    2. 工作流程運行結束後,按右鍵畫布中的羅吉斯迴歸二分類,在捷徑功能表,單擊模型選項 > 匯出PMML,即可匯出訓練完成的心臟病預測模型。

    3. 按右鍵畫布中的預測,在捷徑功能表,單擊查看資料 > 預測結果輸出,即可查看模型預測結果。

  4. 查看模型效果。

    1. 按右鍵畫布中的二分類評估,在捷徑功能表,單擊可視化分析

    2. 二分類評估對話方塊,單擊指標資料頁簽,即可查看模型評估指標資料。

      指標資料其中AUC值表示該工作流程模型的預測準確率達到了90%以上。

    3. 按右鍵畫布中的混淆矩陣,在捷徑功能表,單擊可視化分析

    4. 混淆矩陣對話方塊,單擊統計資訊頁簽,即可查看模型準確率等資訊。