原文链接:http://tecdat.cn/?p=24973
最近咱们被客户要求撰写对于心脏病的钻研报告,包含一些图形和统计输入。
世界卫生组织预计全世界每年有 1200 万人死于心脏病。在美国和其余发达国家,一半的死亡是因为心血管疾病
简介
心血管疾病的晚期预后能够帮忙决定扭转高危患者的生存形式,从而缩小并发症。本钻研旨在查明心脏病最相干/危险因素,并应用机器学习预测总体危险。
数据筹备
起源
该数据集 ( 查看文末理解数据获取形式 ) 来自对居民正在进行的心血管钻研。分类指标是预测患者将来是否有 10 年患冠心病 (CHD) 的危险。数据集提供了患者的信息。它包含超过 4,000 条记录和 15 个属性。
变量
每个属性都是一个潜在的危险因素。有人口、行为和医疗危险因素。
人口统计:
• 性别:男性或女性(标量)
• 年龄:患者年龄;(间断 - 只管记录的年龄已被截断为整数,但年龄的概念是间断的)
行为
• 以后吸烟者:患者是否是以后吸烟者(标量)
• 每天吸烟数:此人一天内均匀吸烟的香烟数量。(能够认为是间断的,因为一个人能够领有任意数量的香烟,甚至半支香烟。)
• BP Meds:患者是否服用降压药(标量)
•中风:患者之前是否有中风(标量)
• Hyp:患者是否患有高血压(标量)
• 糖尿病:患者是否患有糖尿病(标量)
• Tot Chol:总胆固醇程度(间断)
• Sys BP:收缩压(间断)
• Dia BP:舒张压(间断)
• BMI:体重指数(间断)
• 心率:心率(间断 - 在医学钻研中,心率等变量尽管实际上是离散的,但因为存在大量可能值而被认为是间断的。)
• 葡萄糖:葡萄糖程度(间断)
预测变量(指标)
• 10 年患冠心病 CHD 的危险(二元:“1”示意“是”,“0”示意“否”)
心脏病预测
# 获取数据rdaa <- read.csv(门路)
# 这边能够思考减少变量收缩压与舒张压之差、形容收缩压、舒张压与高血压等级的变量# 看数据结构str(ata)
# 思考减少变量bplevelraw_data <- sqldf# 对变量类别进行辨别ra_da <- mapstr(ra_da )
数据预处理
查看和解决缺失值
# 这里咱们应用mice包进行缺失值解决aggr
matplot
点击题目查阅往期内容
R语言逻辑回归、Naive Bayes贝叶斯、决策树、随机森林算法预测心脏病
左右滑动查看更多
01
02
03
04
由上图能够看出,除了glucose变量,其它变量的缺失比例都低于5%,而glucose变量缺失率超过了10%。对此的解决策略是保留glucose变量的缺失值,间接删除其它变量的缺失值。当初解决glucose的缺失值,
# 解决glucose列lee_a <- subset & !is.na & !is.na & !is.na & !is.na & !is.na# 查看glce与其它变量的线性相关性确定mice的填充策略gcog = glm(lcse ~ .)smry(glseg)
填充,排除不重要的变量。至于为什么不选diaBP,次要是前面的相关性剖析中,这两个变量会造成多重共线性。
mice%in% m=5, "pmm", mai = 50, sd=2333, pint= FALSE)#查看填充后果smr(mc_od)
# 查看原始数据和插补后的数据分布状况epot(mi_md)
sipt(mcod, pch=12)
# 填充数据mi_t <- completefir_aa$loe <- miout$guosesum(is.na(flda))
删除反复行
# 查看有无反复行并删除反复行sum(duplicated
comd_ata <- comdta[!duplicated(), ]
查看离群点
#查看异样值gplot(coedta)+geom_boxplot(ae(ftr(1),age))
ggplot(copd_dta)+geom_boxplot(aes(factor(1cigDy))
ggplot(coea)+geom_boxplot(aes(factor(1),ttl))
ggplot(colt_ta)+geom_boxplot(aes(factor(1),syBP))
ggplot(comeaa)+geom_boxplot(aes(factor(1),daP))
ggplot()+gem_boxplot(aes(factor(1),BMI))
# 查看cigsPerDaycigs_sub <- comled_dta# 查看totChol,删除异常点# 查看sysBP, 删除异常点# 查看BMI
totChol: 总胆固醇程度大于240mg/dl已属于十分高,故删去程度值为600mg/dl的记录。sysBP: 去掉收缩压为295mg/dl的记录
# 删除各变量离群点competedata
# 分类型变量列联剖析ggplot+geom_boxplot
ggplot+geom_boxplot(aes,totChol,fill=TenYerCHD))
cometddata %>% fitr %>% ggplot
由图像知,glucose和hearRate变量有不显着的危险
table1=tablechisq.test
table1
table2=tablechisq.test
table3=tablechisq.test
chisq.test
![图片]()
![图片]()
ggpairs
diaBP和sysBP有多重共线性的问题。
currentSmoker变量可能不显着,上面进入模型局部。
模型
# 划分数据集split = sample.splittrain = subset
逻辑回归
# 逻辑回归模型 - 应用所有变量fultaog = glmsummary(fulog)
fldaog = glmsummary(fuatLg)
prdts = predictglm_le <- table
ACCU
随机森林
rfoel <- randomForest# 取得重要性imprace
相干视频:Boosting原理与R语言晋升回归树BRT预测短鳍鳗散布
**
拓端数据部落
,赞6
# 抉择重要的因素rfmdel <- randomForest# 误差plot
# 获取重要性ggplot + geom_bar geom_text
这里有患病危险的误差不降反升,须要探索其中起因
# 绘制分类图像pred<-predictpdou_1<-predict #输入概率table <- tablesum(diag/sum #预测准确率
![图片]()
plot(margin
![图片]()
SVM反对向量机
# 先进行模型调优tud <- tune.svmsummary(tud )
# 应用turning函数失去最佳参数设置反对向量机mel.nd <- svmcost=tuned$summary(modted)
# 调用predict函数基于刚配置好的SVM模型进行类标号的预测:sm.ne.ed <- predictsv.tuedtble <- tablesm.ue.tbe
acy.s.vm <- sum(diag)/sum
模型诊断
依据下面三个模型的后果,能够看出预测后果的类别数量散布十分不平衡
sum
sum(TeYaHD == 0)
针对这一景象,须要采取办法均衡数据集。
数据获取
在上面公众号后盾回复“心脏病危险数据”,可获取残缺数据。
本文摘选 《R语言逻辑回归、随机森林、SVM反对向量机预测FRAMINGHAM心脏病危险和模型诊断可视化》 ,点击“浏览原文”获取全文残缺材料。
点击题目查阅往期内容
高维数据惩办回归办法:主成分回归PCR、岭回归、lasso、弹性网络elastic net剖析基因数据分类回归决策树交互式修剪和更好看地可视化剖析细胞图像宰割数据集
实现狭义相加模型GAM和一般最小二乘(OLS)回归
贝叶斯线性回归和多元线性回归构建工资预测模型
Python反对向量回归SVR拟合、预测回归数据和可视化准确性查看实例
逻辑回归(对数几率回归,Logistic)剖析研究生录取数据实例
狭义线性模型glm泊松回归的lasso、弹性网络分类预测学生考试成绩数据和穿插验证
非线性回归nls摸索剖析河流阶段性流量数据和评级曲线、流量预测可视化
特征选择办法——最佳子集回归、逐步回归
线性回归和工夫序列剖析北京房价影响因素可视化案例
贝叶斯分位数回归、lasso和自适应lasso贝叶斯分位数回归剖析免疫球蛋白、前列腺癌数据
用加性多元线性回归、随机森林、弹性网络模型预测鲍鱼年龄和可视化
PYTHON用户散失数据挖掘:建设逻辑回归、XGBOOST、随机森林、决策树、反对向量机、奢侈贝叶斯和KMEANS聚类用户画像
PYTHON集成机器学习:用ADABOOST、决策树、逻辑回归集成模型分类和回归和网格搜寻超参数优化
R语言集成模型:晋升树boosting、随机森林、束缚最小二乘法加权均匀模型交融剖析工夫序列数据
Python对商店数据进行lstm和xgboost销售量工夫序列建模预测剖析
R语言用主成分PCA、 逻辑回归、决策树、随机森林剖析心脏病数据并高维可视化
R语言基于树的办法:决策树,随机森林,Bagging,加强树
R语言用逻辑回归、决策树和随机森林对信贷数据集进行分类预测
spss modeler用决策树神经网络预测ST的股票
R语言中应用线性模型、回归决策树主动组合特色因子程度
R语言中自编基尼系数的CART回归决策树的实现
R语言用rle,svm和rpart决策树进行工夫序列预测
python在Scikit-learn中用决策树和随机森林预测NBA获胜者
python中应用scikit-learn和pandas决策树进行iris鸢尾花数据分类建模和穿插验证
R语言里的非线性模型:多项式回归、部分样条、平滑样条、 狭义相加模型GAM剖析
R语言用规范最小二乘OLS,狭义相加模型GAM ,样条函数进行逻辑回归LOGISTIC分类
R语言ISLR工资数据进行多项式回归和样条回归剖析
R语言中的多项式回归、部分回归、核平滑和平滑样条回归模型
R语言用泊松Poisson回归、GAM样条曲线模型预测骑自行车者的数量
R语言分位数回归、GAM样条曲线、指数平滑和SARIMA对电力负荷工夫序列预测R语言样条曲线、决策树、Adaboost、梯度晋升(GBM)算法进行回归、分类和动静可视化
如何用R语言在机器学习中建设集成模型?
R语言ARMA-EGARCH模型、集成预测算法对SPX理论稳定率进行预测在python 深度学习Keras中计算神经网络集成模型R语言ARIMA集成模型预测工夫序列剖析R语言基于Bagging分类的逻辑回归(Logistic Regression)、决策树、森林剖析心脏病患者
R语言基于树的办法:决策树,随机森林,Bagging,加强树
R语言基于Bootstrap的线性回归预测置信区间预计办法
R语言应用bootstrap和增量法计算狭义线性模型(GLM)预测置信区间
R语言样条曲线、决策树、Adaboost、梯度晋升(GBM)算法进行回归、分类和动静可视化
Python对商店数据进行lstm和xgboost销售量工夫序列建模预测剖析
R语言随机森林RandomForest、逻辑回归Logisitc预测心脏病数据和可视化剖析
R语言用主成分PCA、 逻辑回归、决策树、随机森林剖析心脏病数据并高维可视化
Matlab建设SVM,KNN和奢侈贝叶斯模型分类绘制ROC曲线
matlab应用分位数随机森林(QRF)回归树检测异样值