乐趣区

关于数据挖掘:数据分享逻辑回归随机森林SVM支持向量机预测心脏病风险数据和模型诊断可视化附代码数据

原文链接: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)
# 思考减少变量 bplevel
raw_data <- sqldf

# 对变量类别进行辨别

ra_da <- map
str(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 <- complete
fir_aa$loe <- miout$guose
sum(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))
# 查看 cigsPerDay
cigs_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=table
chisq.test
table1
table2=table
chisq.test
table3=table
chisq.test
chisq.test

![图片]()

![图片]()

ggpairs

diaBP 和 sysBP 有多重共线性的问题。

currentSmoker 变量可能不显着,上面进入模型局部。

模型

# 划分数据集

split = sample.split

train = subset

逻辑回归

# 逻辑回归模型 - 应用所有变量
fultaog = glm
summary(fulog)
fldaog = glm
summary(fuatLg)
prdts = predict
glm_le <- table
ACCU

随机森林

rfoel <- randomForest
# 取得重要性
imprace

相干视频:Boosting 原理与 R 语言晋升回归树 BRT 预测短鳍鳗散布

**

拓端数据部落

,赞 6

# 抉择重要的因素
rfmdel <- randomForest
# 误差
plot
# 获取重要性
ggplot +
   geom_bar
   geom_text

这里有患病危险的误差不降反升,须要探索其中起因

# 绘制分类图像
pred<-predict
pdou_1<-predict  #输入概率
table <- table
sum(diag/sum #预测准确率

![图片]()

plot(margin

![图片]()

SVM 反对向量机

# 先进行模型调优
tud <- tune.svm
summary(tud)
# 应用 turning 函数失去最佳参数设置反对向量机
mel.nd <- svm
cost=tuned$
summary(modted)
# 调用 predict 函数基于刚配置好的 SVM 模型进行类标号的预测:sm.ne.ed <- predict
sv.tuedtble <- table
sm.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)回归树检测异样值

退出移动版