心臟病嚴重影響人們的生命健康,如果可以通過人體相關體測指標,分析不同特徵對心臟病的影響,則可以有效預防心臟病。本工作流程基於真實的心臟病患者體測資料,為您介紹如何通過資料採礦演算法構建心臟病預測模型。
前提條件
資料採礦流程
心臟病預測
進入Designer頁面。
登入PAI控制台。
在左側導覽列單擊工作空间列表,在工作空間列表頁面中單擊待操作的工作空間名稱,進入對應的工作空間。
在工作空間頁面的左側導覽列選擇,進入Designer頁面。
-
構建工作流程。
-
在Designer頁面,單擊预置模板頁簽。
-
在模板列表的心臟病預測案例地區,單擊创建。
-
在新建工作流對話方塊,配置參數(可以全部使用預設參數)。
其中:工作流数据存储配置為OSS Bucket路徑,用於儲存工作流程運行中產出的臨時資料和模型。
-
單擊确定。
等待大約十秒鐘,工作流程即可建立成功。
-
在工作流程列表,選擇心臟病預測案例工作流程,單擊进入工作流。
-
系統根據預置的模板,自動構建工作流程,如下圖所示。

地區
描述
①
資料預先處理,主要對資料進行去噪、缺失值填充及類型變換操作。因為每個樣本只會患病或健康,所以心臟病預測可以歸屬於分類問題。本工作流程的輸入資料包括14個特徵列和1個目標列(更多欄位介紹請參見附錄:心臟病資料集),在資料預先處理過程中,需要根據每個欄位的含義將字元類型轉化為數實值型別。其中:
-
二值類資料:以sex欄位為例,其取值為female或male,可以使用0表示female,1表示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)。③
模型訓練和預測:
-
使用拆分組件將資料集按照7:3分為訓練資料集和預測資料集。
-
使用邏輯回歸二分類組件訓練模型。
說明如果您需要匯出PMML模型檔案,在該組件的字段设置頁簽,需要選中是否產生PMML複選框。然後單擊空白畫布,在該工作流程頁面的工作流属性頁簽,配置工作流程資料存放區路徑。
-
將模型和預測資料集輸入至预测組件,進行結果預測。
④
使用混淆矩阵和二分類評估組件進行模型評估。
-
-
-
運行工作流程並查看輸出結果。
-
單擊畫布上方的
。 -
工作流程運行結束後,按右鍵畫布中的邏輯回歸二分類,在捷徑功能表,單擊,即可匯出訓練完成的心臟病預測模型。
-
按右鍵畫布中的预测,在捷徑功能表,單擊,即可查看模型預測結果。
-
-
查看模型效果。
-
按右鍵畫布中的二分類評估,在捷徑功能表,單擊可视化分析。
-
在二分類評估對話方塊,單擊指标数据頁簽,即可查看模型評估指標資料。
其中AUC值表示該工作流程模型的預測準確率達到了90%以上。 -
按右鍵畫布中的混淆矩阵,在捷徑功能表,單擊可视化分析。
-
在混淆矩阵對話方塊,單擊统计信息頁簽,即可查看模型準確率等資訊。
-
附錄:心臟病資料集
本工作流程使用的資料集為UCI開來源資料集,包含了303條美國某地區的心臟病檢查患者的體測資料,具體欄位如下。
|
欄位名 |
類型 |
描述 |
|
age |
STRING |
對象的年齡。 |
|
sex |
STRING |
對象的性別,取值為female或male。 |
|
cp |
STRING |
胸部疼痛類型,痛感由重到輕依次為typical、atypical、non-anginal及asymptomatic。 |
|
trestbps |
STRING |
血壓。 |
|
chol |
STRING |
膽固醇。 |
|
fbs |
STRING |
空腹血糖。如果血糖含量大於120mg/dl,則取值為true,否則取值為false。 |
|
restecg |
STRING |
心電圖結果是否有T波,由輕到重依次為norm和hyp。 |
|
thalach |
STRING |
最大心跳數。 |
|
exang |
STRING |
是否有心絞痛。true表示有心絞痛,false表示沒有心絞痛。 |
|
oldpeak |
STRING |
運動相對於休息的ST Depression,即ST段壓值。 |
|
slop |
STRING |
心電圖ST Segment的傾斜度,程度取值包括down、flat及up。 |
|
ca |
STRING |
透視檢查發現的血管數。 |
|
thal |
STRING |
病發種類,由輕到重依次為norm、fix及rev。 |
|
status |
STRING |
是否患病。buff表示健康,sick表示患病。 |
通過模板建立工作流程已內建該資料。如需下載或擷取更多關於資料集的資訊,請參見Heart Disease Data Set。
後續操作
如果工作流程運行結果符合預期,您可以將運行產生的模型進行部署,待部署成功後便可進行服務調用。關於部署詳情,請參見單模型部署線上服務、PMML。