购物网站建设需求模板,美丽乡村网站建设策划书,甘肃省水利建设工程项目网站,建筑工程师的工作内容全文链接:https://tecdat.cn/?p33760 众所周知#xff0c;心脏疾病是目前全球最主要的死因。开发一个能够预测患者心脏疾病存在的计算系统将显著降低死亡率并大幅降低医疗保健成本。机器学习在全球许多领域中被广泛应用#xff0c;尤其在医疗行业中越来越受欢迎。机器学习可… 全文链接:https://tecdat.cn/?p33760 众所周知心脏疾病是目前全球最主要的死因。开发一个能够预测患者心脏疾病存在的计算系统将显著降低死亡率并大幅降低医疗保健成本。机器学习在全球许多领域中被广泛应用尤其在医疗行业中越来越受欢迎。机器学习可以在预测关键疾病例如心脏病的存在或不存在方面发挥重要作用点击文末“阅读原文”获取完整代码数据。 相关视频 如果能提前准确预测这些信息可以为医生提供重要见解从而能够相应并有效地进行患者治疗。以下演示了对流行的心脏疾病数据库进行的探索性数据分析。除此之外还使用不同方法如逻辑回归、随机森林和神经网络进行心脏病预测。 数据集数据集包含76个属性但建议我们只使用其中的14个进行分析。在本文中使用一个合并的数据集构建分类器并使用交叉验证技术进行性能评估。 特征 Age年龄以年为单位。Gender性别1表示男性0表示女性。Cp胸痛类型取值1典型心绞痛取值2非典型心绞痛取值3非心绞痛疼痛取值4无症状。Trestbps静息血压以毫米汞柱为单位。Chol血清胆固醇以毫克/分升为单位。Fbs空腹血糖 120 mg/dl1表示真0表示假。Restecg静息心电图结果取值0正常取值1ST-T波异常取值2根据Estes标准显示可能或明确的左室肥厚。Thalach达到的最高心率每分钟心跳数。Exang运动诱发心绞痛1表示是0表示否。Oldpeak相对于休息引起的ST段压低。Slope峰值运动ST段的斜率取值1上坡取值2平坦取值3下坡。Ca血管数量0-3。Thal3 正常6 固定缺陷7 可逆性缺陷。Target两个类别因此是一个二分类问题。 目标预测一个人是否患有心脏疾病。 读取数据集并检查是否有缺失值 head(heartDiseaseData) sum(is.na(heartDiseaseData)) ## [1] 0 colnames(heartDiseaseData)[1]-age
str(heartDiseaseData) 数据预处理 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
... 检查缺失值 sum(is.na(heartDiseaseData)) ## [1] 0 数据摘要 summary(heartDiseaseData) 健康人和心脏病患者的观测总数。 ggplot(heartDiseaseData,aes(t... 女性心脏病的发病率高于男性 ggplot(heartDiseaseData,aes(target, filltarget))
... 可以观察到健康人和患有心脏病的人的 Rest ECG 分布没有明显差异。 ggplot(heartDiseaseData,aes(trestbps, filltarget)) geom_histogram(aes(y..density..),breaksseq(90, 200, by10), ... 可以观察到心脏病在各个年龄段均匀分布。此外患者的中位年龄为56岁最年轻和最年长的患者分别为29岁和77岁。可以从图表中观察到患有心脏病的人的中位年龄小于健康人。此外患心脏病的患者的分布略微倾斜。因此我们可以将年龄作为一个预测特征。 ggplot(heartDiseaseData,aes(age, filltarget)) ... ggplot(heartDiseaseData,aes(xtarget, yage, filltarget))
... 此外患有心脏病的人通常具有比健康人更高的最高心率。 ggplot(heartDiseaseData,aes(thalach, filltarget))
...ggtitle(Max Heart Rate Histogram) 此外可以观察到大多数患有心脏病的人其血清胆固醇在200-300 mg/dl范围内。 ggplot(heartDiseaseData,aes(chol, filltarget)) ... 大多数心脏病患者的ST段压低为0.1。 点击标题查阅往期内容 R语言随机森林RandomForest、逻辑回归Logisitc预测心脏病数据和可视化分析 左右滑动查看更多 01 02 03 04 ggplot(heartDiseaseData,aes(oldpeak, filltarget)) geom_histogram(aes(y..density..),breaksseq(0, 7, by0.1), ... 大多数拥有0个主要血管的人患有心脏病。 ggplot(heartDiseaseData,aes(ca, filltarget)) geom_histogram(aes(y..density..),breaksseq(0, 5, by1), ... 大多数患有心脏病的人胸痛类型为1或2。 ggplot(heartDiseaseData,aes(target, filltarget))
... 空腹血糖没有明显差异。 ggplot(heartDiseaseData,aes(target, filltarget))
... 拥有静息心电图异常类型1的人患心脏病的可能性较高。 ggplot(heartDiseaseData,aes(target, filltarget))
... 没有运动诱发性心绞痛的人患心脏病的可能性较高。 ggplot(heartDiseaseData,aes(target, filltarget))
...scale_fill_manual(valuesc(#97BE11,#DC1E0B)) 具有最高斜率2的人患心脏病的可能性更高 R
ggplot(heartDiseaseData, aes(target, filltarget))
...scale_fill_manual(valuesc(#97BE11, #DC1E0B)) 具有固定缺陷地中海贫血的人患心脏病的可能性更高 R
ggplot(heartDiseaseData,aes(target, filltarget))
...scale_fill_manual(valuesc(#97BE11,#DC1E0B)) 可以观察到仅有少数参数如胸痛类型、性别、运动诱发心绞痛、血管数量和ST段压低对结果有显著影响。因此可以舍弃其他参数。 R
log - glm(... 显著特征的总结 R
d - heartDiseaseDa... 逻辑回归 R
log - glm(...binomial)
summary(log) R
log.df - tidy... 观察表明如果个体患有2型或3型胸痛患心脏病的可能性更高。随着血管数量、运动诱发心绞痛、ST段压低和男性性别数值的增加患心脏病的可能性较低。 R
log.df %%mutate(termreorder(term,estimate)) %%
...geom_hline(yintercept0) coord_flip() 随着ST段压低值的增加患心脏病的可能性降低。随着血管数量的增加女性患心脏病的可能性降低而男性的可能性增加。 逻辑回归 R
data - d
set.seed(1237)
train - sample(nrow(data), .8*nrow(data), replace FALSE)
...#调整参数
fitControl - trainControl(method repeatedcv,...
TrainSet$target - as.factor(TrainSet$target) R
gbm.ada.1 - caret::train(target ~ ., ...metricROC)gbm.ada.1 ST段压低是最重要的特征其次是胸痛类型2等等。 varImp(gbm.ada.1) pred - predict(gbm.ada.1,ValidSet)
....
res-caret::confusionMatrix(t... 混淆矩阵 ggplot(data t.df, aes(x Var2, y pred, labelFreq))
...ggtitle(Logistic Regression) 随机森林 gbm.ada.1 - caret::train(target ~ ., ...metricROC)gbm.ada.1 变量重要性 varImp(gbm.ada.1) pred - predict(gbm.ada.1,ValidSet)
...
res-caret::confusionMatrix(t, positiveHeart Disease)
res 混淆矩阵 ggplot(data t.df, aes(x Var1, y pred, labelFreq)) ...ggtitle(Random Forest) 绘制决策树 gbmGrid - expand.grid(cpc(0.01))
fitControl - trainControl(method repeatedcv,...summaryFunction twoClassSummary)
d$target-make.names(d$target)
system.time(gbm.ada.1 - caret::train(target ~ ., ...tuneGridgbmGrid)) gbm.ada.1 varImp(gbm.ada.1) rpart.plot(gbm.ada.1$finalModel, ...nnTRUE) 神经网络 fitControl - trainControl(method repeatedcv,...summaryFunction twoClassSummary)
gbm.ada.1 - caret::train(target ~ ., ...metricROC) gbm.ada.1 变量重要性 varImp(gbm.ada.1) pred - predict(gbm.ada.1,ValidSet)
...
res-caret::confusionMa... 混淆矩阵 混淆矩阵Confusion Matrix是用于评估分类模型性能的一种表格。它以四个不同的指标来总结模型对样本的分类结果真阳性True Positive, TP、真阴性True Negative, TN、假阳性False Positive, FP和假阴性False Negative, FN。 ggplot(data t.df, aes(x Var1, y pred, labelFreq))
...ggtitle(Neural Network) 点击文末“阅读原文” 获取全文完整代码数据资料。 本文选自《R语言逻辑回归、决策树、随机森林、神经网络预测患者心脏病数据混淆矩阵可视化》。 点击标题查阅往期内容 数据分享|R语言逻辑回归、线性判别分析LDA、GAM、MARS、KNN、QDA、决策树、随机森林、SVM分类葡萄酒交叉验证ROC MATLAB随机森林优化贝叶斯预测分析汽车燃油经济性 R语言用Rcpp加速Metropolis-Hastings抽样估计贝叶斯逻辑回归模型的参数 R语言逻辑回归、Naive Bayes贝叶斯、决策树、随机森林算法预测心脏病 R语言中贝叶斯网络BN、动态贝叶斯网络、线性模型分析错颌畸形数据 R语言中的block Gibbs吉布斯采样贝叶斯多元线性回归 Python贝叶斯回归分析住房负担能力数据集 R语言实现贝叶斯分位数回归、lasso和自适应lasso贝叶斯分位数回归分析 Python用PyMC3实现贝叶斯线性回归模型 R语言用WinBUGS 软件对学术能力测验建立层次分层贝叶斯模型 R语言Gibbs抽样的贝叶斯简单线性回归仿真分析 R语言和STAN,JAGS用RSTAN,RJAG建立贝叶斯多元线性回归预测选举数据 R语言基于copula的贝叶斯分层混合模型的诊断准确性研究 R语言贝叶斯线性回归和多元线性回归构建工资预测模型 R语言贝叶斯推断与MCMC实现Metropolis-Hastings 采样算法示例 R语言stan进行基于贝叶斯推断的回归模型 R语言中RStan贝叶斯层次模型分析示例 R语言使用Metropolis-Hastings采样算法自适应贝叶斯估计与可视化 R语言随机搜索变量选择SSVS估计贝叶斯向量自回归BVAR模型 WinBUGS对多元随机波动率模型贝叶斯估计与模型比较 R语言实现MCMC中的Metropolis–Hastings算法与吉布斯采样 R语言贝叶斯推断与MCMC实现Metropolis-Hastings 采样算法示例 R语言使用Metropolis-Hastings采样算法自适应贝叶斯估计与可视化 视频R语言中的Stan概率编程MCMC采样的贝叶斯模型 R语言MCMC:Metropolis-Hastings采样用于回归的贝叶斯估计 R语言用lme4多层次混合效应广义线性模型GLM逻辑回归分析教育留级调查数据 R语言随机森林RandomForest、逻辑回归Logisitc预测心脏病数据和可视化分析 R语言基于Bagging分类的逻辑回归(Logistic Regression)、决策树、森林分析心脏病患者 R语言用主成分PCA、 逻辑回归、决策树、随机森林分析心脏病数据并高维可视化