心脏病严重影响人们的生命健康,如果可以通过人体相关体测指标,分析不同特征对心脏病的影响,则可以有效预防心脏病。本工作流基于真实的心脏病患者体测数据,为您介绍如何通过数据挖掘算法构建心脏病预测模型。
前提条件
已完成Designer相关权限授权,详情请参见云产品依赖与授权:Designer。
数据挖掘流程
数据集
本工作流的数据集为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表示患病。 |
心脏病预测
-
进入PAI-Designer页面。
-
登录PAI控制台。
-
在左侧导航栏单击工作空间列表,在工作空间列表页面中单击待操作的工作空间名称,进入对应工作空间内。
-
在工作空间页面的左侧导航栏选择模型开发与训练 > 可视化建模(Designer),进入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复选框。然后单击空白画布,在该工作流页面的工作流属性页签,配置工作流数据存储路径。
-
将模型和预测数据集输入至预测组件,进行结果预测。
④
使用混淆矩阵和二分类评估组件进行模型评估。
-
-
-
运行工作流并查看输出结果。
-
单击画布上方的运行。
-
工作流运行结束后,右键单击画布中的逻辑回归二分类,在快捷菜单,单击模型选项 > 导出PMML,即可导出训练完成的心脏病预测模型。
-
右键单击画布中的预测,在快捷菜单,单击查看数据 > 预测结果输出,即可查看模型预测结果。
-
-
查看模型效果。
-
右键单击画布中的二分类评估,在快捷菜单,单击可视化分析。
-
在二分类评估对话框,单击指标数据页签,即可查看模型评估指标数据。
其中AUC值表示该工作流模型的预测准确率达到了90%以上。
-
右键单击画布中的混淆矩阵,在快捷菜单,单击可视化分析。
-
在混淆矩阵对话框,单击统计信息页签,即可查看模型准确率等信息。
-
内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家
阿里云企业补贴进行中: 马上申请
腾讯云限时活动1折起,即将结束: 马上收藏
同尘科技为腾讯云授权服务中心。
购买腾讯云产品享受折上折,更有现金返利:同意关联,立享优惠
转转请注明出处:https://www.yunxiaoer.com/162209.html