心臟病嚴重影響人們的生命健康,如果可以通過人體相關體測指標,分析不同特徵對心臟病的影響,則可以有效預防心臟病。本工作流程基於真實的心臟病患者體測資料,為您介紹如何通過資料採礦演算法構建心臟病預測模型。
前提條件
資料採礦流程
資料集
本工作流程的資料集為UCI開來源資料集,詳情請參見Heart Disease Data Set。該資料集包含了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表示患病。 |
心臟病預測
進入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%以上。
按右鍵畫布中的混淆矩陣,在捷徑功能表,單擊可視化分析。
在混淆矩陣對話方塊,單擊統計資訊頁簽,即可查看模型準確率等資訊。
後續操作
如果工作流程運行結果符合預期,您可以將運行產生的模型進行部署,待部署成功後便可進行服務調用。關於部署詳情,請參見單模型部署線上服務、PMML。