R语言逻辑回归、决策树、随机森林、神经网络预测患者心脏病数据混淆矩阵可视化(上)

简介: R语言逻辑回归、决策树、随机森林、神经网络预测患者心脏病数据混淆矩阵可视化

全文链接:https://tecdat.cn/?p=33760


众所周知,心脏疾病是目前全球最主要的死因。开发一个能够预测患者心脏疾病存在的计算系统将显著降低死亡率并大幅降低医疗保健成本。机器学习在全球许多领域中被广泛应用,尤其在医疗行业中越来越受欢迎。机器学习可以在预测关键疾病(例如心脏病)的存在或不存在方面发挥重要作用点击文末“阅读原文”获取完整代码数据


如果能提前准确预测这些信息,可以为医生提供重要见解,从而能够相应并有效地进行患者治疗。以下演示了对流行的心脏疾病数据库进行的探索性数据分析。除此之外,还使用不同方法(如逻辑回归、随机森林和神经网络)进行心脏病预测。

数据集:数据集包含76个属性,但建议我们只使用其中的14个进行分析。在本文中,使用一个合并的数据集构建分类器,并使用交叉验证技术进行性能评估。

特征:

  1. Age:年龄(以年为单位)。
  2. Gender:性别,1表示男性,0表示女性。
  3. Cp:胸痛类型,取值1:典型心绞痛,取值2:非典型心绞痛,取值3:非心绞痛疼痛,取值4:无症状。
  4. Trestbps:静息血压(以毫米汞柱为单位)。
  5. Chol:血清胆固醇(以毫克/分升为单位)。
  6. Fbs:空腹血糖 > 120 mg/dl,1表示真,0表示假。
  7. Restecg:静息心电图结果,取值0:正常,取值1:ST-T波异常,取值2:根据Estes标准显示可能或明确的左室肥厚。
  8. Thalach:达到的最高心率(每分钟心跳数)。
  9. Exang:运动诱发心绞痛,1表示是,0表示否。
  10. Oldpeak:相对于休息引起的ST段压低。
  11. Slope:峰值运动ST段的斜率,取值1:上坡,取值2:平坦,取值3:下坡。
  12. Ca:血管数量(0-3)。
  13. Thal:3 = 正常;6 = 固定缺陷;7 = 可逆性缺陷。
  14. Target:两个类别,因此是一个二分类问题。

目标:预测一个人是否患有心脏疾病。

读取数据集并检查是否有缺失值

head(heartDiseaseData)

image.png

sum(is.na(heartDiseaseData))
## [1] 0
colnames(heartDiseaseData)[1]<-"age"
str(heartDiseaseData)

image.png

数据预处理


heartDiseaseData$cp<-as.factor(heartDiseaseData$cp)
levels(heartDiseaseData$cp)[levels(heartDiseaseData$cp)==0] <- "Chest Pain Type 0"
levels(heartDiseaseData$cp)[levels(heartDiseaseData$cp)==1] <- "Chest Pain Type 1"
levels(heartDiseaseData$cp)[levels(heartDiseaseData$cp)==2] <- "Chest Pain Type 2"
levels(heartDiseaseData$cp)[levels(heartDiseaseData$cp)==3] <- "Chest Pain Type 3"
...

image.png

检查缺失值

sum(is.na(heartDiseaseData))
## [1] 0

数据摘要

summary(heartDiseaseData)

image.png

健康人和心脏病患者的观测总数。

ggplot(heartDiseaseData,aes(t...

image.png

女性心脏病的发病率高于男性

ggplot(heartDiseaseData,aes(target, fill=target)) +
...

image.png

可以观察到,健康人和患有心脏病的人的 Rest ECG 分布没有明显差异。

ggplot(heartDiseaseData,aes(trestbps, fill=target)) + 
  geom_histogram(aes(y=..density..),breaks=seq(90, 200, by=10), ...

image.png

可以观察到心脏病在各个年龄段均匀分布。此外,患者的中位年龄为56岁,最年轻和最年长的患者分别为29岁和77岁。可以从图表中观察到,患有心脏病的人的中位年龄小于健康人。此外,患心脏病的患者的分布略微倾斜。因此,我们可以将年龄作为一个预测特征。

ggplot(heartDiseaseData,aes(age, fill=target)) + ...

image.png

ggplot(heartDiseaseData,aes(x=target, y=age, fill=target)) + 
...

image.png

此外,患有心脏病的人通常具有比健康人更高的最高心率。

ggplot(heartDiseaseData,aes(thalach, fill=target)) +
...
  ggtitle("Max Heart Rate Histogram")

image.png

此外,可以观察到大多数患有心脏病的人其血清胆固醇在200-300 mg/dl范围内。

ggplot(heartDiseaseData,aes(chol, fill=target)) +
 ...

image.png

大多数心脏病患者的ST段压低为0.1。


点击标题查阅往期内容


R语言随机森林RandomForest、逻辑回归Logisitc预测心脏病数据和可视化分析


01

02

03

04


ggplot(heartDiseaseData,aes(oldpeak, fill=target)) +
  geom_histogram(aes(y=..density..),breaks=seq(0, 7, by=0.1), ...

image.png

大多数拥有0个主要血管的人患有心脏病。

ggplot(heartDiseaseData,aes(ca, fill=target)) +
  geom_histogram(aes(y=..density..),breaks=seq(0, 5, by=1), ...

image.png

大多数患有心脏病的人胸痛类型为1或2。

ggplot(heartDiseaseData,aes(target, fill=target)) +
...

image.png

空腹血糖没有明显差异。

ggplot(heartDiseaseData,aes(target, fill=target)) +
...

image.png

拥有静息心电图异常类型1的人患心脏病的可能性较高。

ggplot(heartDiseaseData,aes(target, fill=target)) +
...

image.png

没有运动诱发性心绞痛的人患心脏病的可能性较高。

ggplot(heartDiseaseData,aes(target, fill=target)) +
...
  scale_fill_manual(values=c("#97BE11","#DC1E0B"))

image.png

具有最高斜率2的人患心脏病的可能性更高

ggplot(heartDiseaseData, aes(target, fill=target)) +
...
  scale_fill_manual(values=c("#97BE11", "#DC1E0B"))

image.png


R语言逻辑回归、决策树、随机森林、神经网络预测患者心脏病数据混淆矩阵可视化(下):https://developer.aliyun.com/article/1498751

相关文章
|
1天前
|
Java Linux API
统计android设备的网络数据使用量
统计android设备的网络数据使用量
15 0
|
1天前
|
安全 网络安全 数据安全/隐私保护
网络安全与信息安全:保护您的数据和隐私
【5月更文挑战第14天】本文将探讨网络安全漏洞、加密技术和安全意识等方面,以帮助读者更好地了解如何保护他们的数据和隐私。我们将讨论各种类型的网络攻击,以及如何使用加密技术来保护信息。此外,我们还将强调培养良好的安全习惯的重要性,以降低遭受网络攻击的风险。
|
1天前
|
安全 网络协议 网络安全
网络安全与信息安全:保护你的数据,保护你的未来
【5月更文挑战第14天】在数字化的世界中,网络安全和信息安全是每个互联网用户都必须面对的问题。本文将深入探讨网络安全漏洞、加密技术以及安全意识等方面的知识,帮助读者更好地理解和保护自己的数据。我们将讨论如何识别和防范网络安全威胁,如何使用加密技术来保护数据,以及如何提高自己的安全意识,从而在网络世界中更安全地生活。
|
1天前
|
安全 物联网 网络安全
网络安全与信息安全:保护数据的关键策略
【5月更文挑战第14天】 在数字化时代,网络安全和信息安全已成为维护个人隐私、企业资产和国家安全的基石。面对日益增长的网络威胁,理解并应对安全漏洞、掌握加密技术以及提升安全意识显得尤为重要。本文将深入探讨当前的网络安全隐患,解析加密技术的工作原理及其重要性,并提出提高个人和组织安全意识的有效方法。我们的目标是通过知识分享,为读者提供一套全面的网络安全自保策略。
|
1天前
|
安全 网络安全 数据安全/隐私保护
网络安全与信息安全:保护你的数据,保护你的未来
【5月更文挑战第14天】在数字化的世界中,网络安全和信息安全是我们生活的基石。本文将深入探讨网络安全漏洞、加密技术以及安全意识等方面,以期帮助读者更好地理解和应对网络安全威胁。我们将从网络安全的基本概念出发,分析常见的网络攻击手段,然后介绍加密技术的基本原理和应用。最后,我们将讨论如何提高个人和企业的安全意识,以应对日益严峻的网络安全形势。
|
1天前
|
网络安全 数据安全/隐私保护 计算机视觉
2024蓝桥杯网络安全-图片隐写-缺失的数据(0基础也能学会-含代码解释)
2024蓝桥杯网络安全-图片隐写-缺失的数据(0基础也能学会-含代码解释)
|
1天前
|
安全 算法 网络安全
网络安全与信息安全:保护你的数据,保护你的世界
【5月更文挑战第12天】在数字化的世界中,网络安全和信息安全已经成为我们生活的重要组成部分。本文将深入探讨网络安全漏洞、加密技术以及安全意识等方面的问题,帮助读者更好地理解和保护自己的数据。我们将讨论如何识别和防止网络安全威胁,如何使用加密技术来保护信息,以及如何提高自己的安全意识,从而在网络世界中更安全地生活。
|
1天前
|
Windows
LabVIEW通过网络传输数据
LabVIEW通过网络传输数据
15 2
|
1天前
|
安全 算法 网络安全
网络安全与信息安全:保护您的数据和隐私
【5月更文挑战第8天】随着互联网的普及和技术的快速发展,网络安全和信息安全已经成为我们日常生活中不可或缺的一部分。本文将介绍网络安全漏洞、加密技术和安全意识等方面的知识,帮助您更好地保护自己的数据和隐私。
|
1天前
|
安全 网络协议 网络安全
网络安全与信息安全:保护你的数据,确保你的安全
【5月更文挑战第7天】在数字化的世界中,网络安全和信息安全是至关重要的。本文将深入探讨网络安全漏洞、加密技术以及安全意识等方面,帮助读者了解如何保护自己的数据和确保自己的网络安全。

热门文章

最新文章