基于数据挖掘心脏病患者分类建模与分析 计算机毕业设计

 

首先,读取数据集,该数据集是UCI上的心脏病患者数据集,其中包含了 303 条患者信息,每一名患者有 13 个字段记录其基本信息(年龄、性别等)和身体健康信息(心率、血糖等),此外有一个类变量记录其是否患有心脏病。详细的字段信息可见 此处

类别字段target有两个取值,代表预测类别,1 = 患病,2 = 不患病。

2.训练/测试集划分

对数据集进行划分,设置划分比例为训练集 : 测试集 = 4 : 1。

由于数据集的同一类标签集中在一起,我们选择分组抽样选项,依据target字段进行分组,合理划分数据集。

3.构建K近邻心脏病患者分类模型

构建K近邻分类模型,将target作为我们的标签列,其余各字段均作为模型的特征列。选择计算的邻居个数为8,权重计算方式为distance,以及设置距离计算方式为manhattan距离(街区距离)。

参数列表

参数名称参数取值
邻居数8
权重计算方式distance
距离计算方式manhattan

4.Z-Score标准化

agetrestbpscholthalacholdpeak进行标准化处理,将不同量级的数据转化为统一量度,提高数据可比性。

agesexcptrestbpscholfbsrestecgthalachexangoldpeakslopecathaltarget
1.350138121.129702-0.622046000.0082350-0.1967011030
-0.17461812-0.1283050.023539101.0047110-0.8903512321
0.696671130.100423-0.20431501-0.2083901.3640111220
-1.04590711-0.242671.200782000.8747360-0.8903512021
-0.501351100.672245-0.849900-1.0315651-0.1099951030
特征均值标准差
age54.6033069.1818
trestbps132.24380217.487967
chol244.76033152.665406
thalach149.80991723.081356
oldpeak1.026861.15332

5.各字段基本统计信息

读取数据表后,对各个数据字段统计基本信息,包括样本数量、均值、标准差、最大最小值和上下四分位数等。

可以看出,读取的数据表均为数值型字段。从这里可以发现,各字段的样本数均为 303 ,说明无缺失值;此外。许多字段如sexcpfbsrestecgexangslopecathal,其上下四分位数、中位数和最大最小值的取值有很大的重复,结合数据集详情页的统计信息,说明其为离散型数值字段;其余字段如agetrestbps等为连续型变量,在后期可以进行标准化处理。

agesexcptrestbpscholfbsrestecgthalachexangoldpeakslopecathaltarget
样本数303303303303303303303303303303303303303303
均值54.36633663370.68316831680.9669966997131.6237623762246.26402640260.14851485150.5280528053149.64686468650.32673267331.03960396041.3993399340.72937293732.31353135310.5445544554
标准差9.08210098980.46601082331.032052489517.538142813551.83075098790.35619787490.525859596422.90516111490.46979446451.16107502210.61622614531.0226063650.61227650730.4988347842
最小值2900941260071000000
下四分位数47.50012021100133.5001020
中位数55111302400115300.81021
上四分位数6112140274.50116611.62131
最大值77132005641220216.22431

6.年龄分布直方图

选取age字段画出直方图。可以看出,大多数患者年龄在38岁以上,说明心脏病的主要患病人群是中老年人。

选取target字段画出饼图,可以看出,该数据集中患有心脏病的人群比例较高,但两个类别的样本数量相差不大。

对K近邻模型进行评估。使用的方法主要为分类报告、混淆矩阵和ROC曲线。

可以看到,我们构建的K近邻模型的分类性能较为良好,总体分类正确率(accuracy)达到0.87,macor avg F1-score能达到0.87,正类样本的召回率(Recall)能达到0.94,ROC_AUC值为0.88。

分类报告(classification report)

标签精确率(Precision)召回率(Recall)F1值(F1-score)
00.920.790.85
10.840.940.89
accuracy0.870.870.87
macro avg0.880.860.87
weighted avg0.870.870.87

混淆矩阵(confusion matrix)

  • 11
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

计算机毕设论文

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值