全文链接:http://tecdat.cn/?p=22262

在讨论分类时,我们经常分析二维数据(一个自变量,一个因变量)点击文末“阅读原文”获取完整代码数据)。

但在实际生活中,有更多的观察值,更多的解释变量。随着两个以上的解释变量,它开始变得更加复杂的可视化。

相关视频

数据

我们使用心脏病数据查看文末了解数据获取方式,预测急诊病人的心肌梗死,包含变量:

  1. 心脏指数

  2. 心搏量指数

  3. 舒张压

  4. 肺动脉压

  5. 心室压力

  6. 肺阻力

  7. 是否存活

其中我们有急诊室的观察结果,对于心肌梗塞,我们想了解谁存活下来了,以得到一个预测模型。但是在运行一些分类器之前,我们先把我们的数据可视化。

主成分PCA

由于我们有7个解释变量和我们的因变量(生存或死亡),我们可以去做一个PCA。

acp=PCA(X)

添加死亡生存变量,就把它当作数字0,1变量。


点击标题查阅往期内容

数据分享|R语言逻辑回归、Naive Bayes贝叶斯、决策树、随机森林算法预测心脏病

左右滑动查看更多

01

02

03

04

是否存活= 是否存活=="存活")*1

结果不错,我们看到因变量与部分自变量是同向的。也可以可视化样本和类别

plot(cp  )

我们可以在这里推导出一个不错的分类器。至少,在前两个成分上投影时,我们可以看到我们的类别。
现在,我们不能在前两个主成分上得到一个分类器并将其可视化吗?   因为PCA是简单的基于正交投影的,所以我们可以(这里的数据是标准化的)。给定前两个分量平面上的两个坐标,给定我们的变换矩阵、归一化分量和一个分类器(这里是基于逻辑回归),我们可以回到原始空间,并对新数据进行分类。

PCA(X,ncp=ncol(X))
function(d1,d2,Mat,reg){z=Mat %*% c(d1,d2,rep(0,ncol(X)-2))newd=data.frame(t(z*s+m))
pred(reg, newd  }

逻辑回归

现在考虑一个逻辑回归。只是为了简化(去掉非显著变量),我们使用一个逐步回归的程序来简化模型。

reg_tot=step(glm(是否存活~. ,
family=binomial))

可视化等概率线(如个人有50%的生存机会)使用以下

xgrid=seq(-5,5,length=25 )
ygrid=seq(-5,5,length=25 )
zgrid=ter(xgrid,ygrid,p)

然后,我们在之前的图形上添加一条等高线

PCA(data,quali.sup=8 )contour( zgrid )

结果不差,但我们应该可以做得更好。如果我们把所有的变量都保留在这里(即使它们不重要),会怎么样呢?

glm(是否存活~., family=binomial)contour(xgrid,ygrid,zgrid )

在现实生活中,要想真正说出我们的分类器的一些相关信息,我们应该在观测值的一个子集上拟合我们的模型,然后在另一个子集上测试它。在这里,我们的目标更多的是在某个投影空间上得到一个函数来可视化我们的分类。

决策树

默认分类树

> plot( re,type=4,extra=6)

我们可以在此更改选项,例如每个节点的最小观察数

rpart(factor(是否存活)~ ,
+       control=rpart.control(minsplit=10))

或者

rpart(
+        control=rpart.control(minsplit=5))

要将该分类可视化,获得前两个成分的投影

> p=function(d1,d2) pred2(d1,d2 )> zgrid=Outer(xgrid,ygrid,p)PCA(  quali.sup=8,graph=TRUE)
> image(xgrid,ygrid,zgrid )
> contour(xgrid,ygrid,zgrid,add=TRUE,levels=.5)

也可以考虑这种情况

rpart( control=rpart.control(minsplit=5))

最后,我们还可以生成更多的树,通过采样获得。这就是bagging的概念:我们boostrap 观测值,生长一些树,然后,我们将预测值进行汇总。在网格上

> for(i in 1:1200){
+ indice = sample(1:nrow(MYOCARDE),+ arbre_b = rpart(factor(是否存活)~.,
+}
>Zgrid = Z/1200

可视化

最后,可以使用随机森林算法。

> fore= randomForest(factor(是否存活)~.,
> pF=function(d1,d2) pred2(d1,d2,Minv,fore)
> zgridF=Outer(xgrid,ygrid,pF)
PCA(data,.sup=8,graph=TRUE)
> image(xgrid,ygrid,Zgrid,add=TRUE,
> contour(xgrid,ygrid,zgridF,


点击标题查阅往期内容

R语言高维数据的主成分pca、 t-SNE算法降维与可视化分析案例报告

R语言惩罚logistic逻辑回归(LASSO,岭回归)高维变量选择的分类模型案例

R语言有RStan的多维验证性因子分析(CFA)

主成分分析(PCA)原理及R语言实现及分析实例

R语言无监督学习:PCA主成分分析可视化

R语言使用Metropolis- Hasting抽样算法进行逻辑回归

R语言多元Logistic逻辑回归 应用案例

R语言自适应LASSO 多项式回归、二元逻辑回归和岭回归应用分析

R语言用逻辑回归、决策树和随机森林对信贷数据集进行分类预测

R语言基于树的方法:决策树,随机森林,Bagging,增强树

spss modeler用决策树神经网络预测ST的股票

R语言中自编基尼系数的CART回归决策树的实现

python在Scikit-learn中用决策树和随机森林预测NBA获胜者

matlab使用分位数随机森林(QRF)回归树检测异常值

基于随机森林、svm、CNN机器学习的风控欺诈识别模型

R语言惩罚logistic逻辑回归(LASSO,岭回归)高维变量选择的分类模型案例

R语言用标准最小二乘OLS,广义相加模型GAM ,样条函数进行逻辑回归LOGISTIC分类

数据获取

在下面公众号后台回复“心脏病数”,可获取完整数据。


点击文末“阅读原文”

获取全文完整资料。

本文选自《R语言用主成分PCA、 逻辑回归、决策树、随机森林分析心脏病数据并高维可视化》。

点击标题查阅往期内容

R语言逻辑回归logistic模型分析泰坦尼克titanic数据集预测生还情况

R语言是否对二分连续变量执行逻辑回归

R语言用lme4多层次(混合效应)广义线性模型(GLM),逻辑回归分析教育留级调查数据

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

R语言基于Bagging分类的逻辑回归(Logistic Regression)、决策树、森林分析心脏病患者

R语言逻辑回归(Logistic回归)模型分类预测病人冠心病风险

R语言用局部加权回归(Lowess)对logistic逻辑回归诊断和残差分析

R语言用主成分PCA、 逻辑回归、决策树、随机森林分析心脏病数据并高维可视化

R语言用线性模型进行臭氧预测:加权泊松回归,普通最小二乘,加权负二项式模型,多重插补缺失值

R语言Bootstrap的岭回归和自适应LASSO回归可视化

R语言中回归和分类模型选择的性能指标

R语言多元时间序列滚动预测:ARIMA、回归、ARIMAX模型分析

R语言用lme4多层次(混合效应)广义线性模型(GLM),逻辑回归分析教育留级调查数据

R语言计量经济学:虚拟变量(哑变量)在线性回归模型中的应用

R语言 线性混合效应模型实战案例

R语言混合效应逻辑回归(mixed effects logistic)模型分析肺癌数据

R语言如何用潜类别混合效应模型(LCMM)分析抑郁症状

R语言基于copula的贝叶斯分层混合模型的诊断准确性研究

R语言建立和可视化混合效应模型mixed effect model

R语言LME4混合效应模型研究教师的受欢迎程度

R语言 线性混合效应模型实战案例

R语言用Rshiny探索lme4广义线性混合模型(GLMM)和线性混合模型(LMM)

R语言基于copula的贝叶斯分层混合模型的诊断准确性研究

R语言如何解决线性混合模型中畸形拟合(Singular fit)的问题

基于R语言的lmer混合线性回归模型

R语言用WinBUGS 软件对学术能力测验建立层次(分层)贝叶斯模型

R语言分层线性模型案例

R语言用WinBUGS 软件对学术能力测验(SAT)建立分层模型

使用SAS,Stata,HLM,R,SPSS和Mplus的分层线性模型HLM

R语言用WinBUGS 软件对学术能力测验建立层次(分层)贝叶斯模型

SPSS中的多层(等级)线性模型Multilevel linear models研究整容手术数据

用SPSS估计HLM多层(层次)线性模型模型

R语言高维数据的主成分pca、 t-SNE算法降维与可视化分析案例报告

R语言惩罚logistic逻辑回归(LASSO,岭回归)高维变量选择的分类模型案例

R语言有RStan的多维验证性因子分析(CFA)

主成分分析(PCA)原理及R语言实现及分析实例

R语言无监督学习:PCA主成分分析可视化

R语言使用Metropolis- Hasting抽样算法进行逻辑回归

R语言多元Logistic逻辑回归 应用案例

R语言自适应LASSO 多项式回归、二元逻辑回归和岭回归应用分析

R语言用逻辑回归、决策树和随机森林对信贷数据集进行分类预测

R语言基于树的方法:决策树,随机森林,Bagging,增强树

spss modeler用决策树神经网络预测ST的股票

R语言中自编基尼系数的CART回归决策树的实现

python在Scikit-learn中用决策树和随机森林预测NBA获胜者

matlab使用分位数随机森林(QRF)回归树检测异常值

基于随机森林、svm、CNN机器学习的风控欺诈识别模型

R语言惩罚logistic逻辑回归(LASSO,岭回归)高维变量选择的分类模型案例

R语言用标准最小二乘OLS,广义相加模型GAM ,样条函数进行逻辑回归LOGISTIC分类

数据分享|R语言用主成分PCA、 逻辑回归、决策树、随机森林分析心脏病数据并高维可视化...相关推荐

  1. 数据分享|R语言主成分PCA、因子分析、聚类对地区经济研究分析重庆市经济指标...

    原文链接:http://tecdat.cn/?p=27515  建立重庆市经济指标发展体系,以重庆市一小时经济圈作为样本,运用因子分析方法进行实证分析,在借鉴了相关评价理论和评价方法的基础上,本文提取 ...

  2. 数据分享|R语言因子分析、相关性分析大学生兼职现状调查问卷数据可视化报告...

    全文链接:http://tecdat.cn/?p=31765 随着大学的普及教育,大学生就业形势变得更加困难,很多学生都意识到这个问题(点击文末"阅读原文"获取完整代码数据). 相 ...

  3. 基于R语言的主成分回归(PCR)与Lasso回归在水稻基因组预测中的对比(生信数基实验作业)

    基于R语言的主成分回归(PCR)与Lasso回归在水稻基因组预测中的对比 0 引言 全基因组选择是 21 世纪动植物育种的一种重要的选择策略,其核心就是全基因组预测,即基于分布在整个基因组上的多样性分 ...

  4. 基于R语言的主成分和因子分析

    主成分分析 主成分分析,是一种降维的分析方法,其考察多个变量间相关性的一种多元统计方法,研究如何通过少数几个主成分来揭示多个变量间的内部结构,即从原始变量中导出少数几个主成分,使它们尽可能多地保留原始 ...

  5. R语言进行主成分分析(PCA)、使用prcomp函数进行主成分分析:碎石图可视化(scree plot)、R通过线图(line plot)来可视化主成分分析的碎石图(scree plot)

    R语言进行主成分分析(PCA).使用prcomp函数进行主成分分析:碎石图可视化(scree plot).R通过线图(line plot)来可视化主成分分析的碎石图(scree plot) 目录

  6. R语言进行主成分分析(PCA)、使用prcomp函数进行主成分分析:碎石图可视化(scree plot)、R通过条形图(bar plot)来可视化主成分分析的碎石图(scree plot)

    R语言进行主成分分析(PCA).使用prcomp函数进行主成分分析:碎石图可视化(scree plot).R通过条形图(bar plot)来可视化主成分分析的碎石图(scree plot) 目录

  7. R语言xgboost包:使用xgboost算法实现随机森林(random forest)模型

    R语言xgboost包:使用xgboost算法实现随机森林(random forest)模型 目录 R语言xgboost包:使用xgboost算法实现随机森林(random forest)模型

  8. R语言splines包构建基于logistic回归的自然样条分析:南非心脏病数据集、非线性:基函数展开和样条分析、你简单分析的不重要特征,可能只是线性不显著、而非线性是显著的

    R语言splines包构建基于logistic回归的自然样条分析:南非心脏病数据集.非线性:基函数展开和样条分析.你简单分析的不重要特征,可能只是线性不显著.而非线性是显著的 目录

  9. R语言使用glm函数构建逻辑回归模型(logistic)、使用subgroupAnalysis函数进行亚组分析并可视化森林图

    R语言使用glm函数构建逻辑回归模型(logistic).使用subgroupAnalysis函数进行亚组分析并可视化森林图 目录

最新文章

  1. 测验1: Python基本语法元素 (第1周)
  2. 02.Android之IPC机制问题
  3. S5PV210之GPIO模拟I2c时序之pcf8591与at24xx linux3.0.8驱动
  4. Understanding Web Internals--The flow of Messages
  5. android 系统 (103)---系统memory使用状况
  6. 【C012】Python - 基础教程学习(三)
  7. react项目开发入门
  8. BASE64学习小记
  9. java反序列化为空_Java序列化/反序列化,提供空对象引用
  10. 资源下载的终极利器-资源轻松简单下载-资源万能下载法
  11. Java面试题全集(中)
  12. Unity iTween初探
  13. ucdavis计算机科学专业,UCDavis的ECE「加州大学戴维斯分校电气与计算机工程系」...
  14. 用户增长因果推断概念
  15. 手机点餐APP开发需求分析
  16. 软件测试中遇到的印象深刻的问题及反思
  17. 一个岔路口分别通向诚实国和说谎国。 来了两个人,已知一个是诚实国的,另一个是说谎国的。 诚实国永远说实话,说谎国永远说谎话。现在你要去说谎国, 但不知道应该走哪条路,需要问这两个人。请问应该怎么问?(
  18. oul可以用作c语言常量吗,STL chips
  19. 2018北大暑校acm算法训练课程 海贼王之伟大航路 状压dp
  20. 数据库课程设计——1、登陆界面

热门文章

  1. 必然(THE INEVITABLE)——凯文-凯利(Kevin Kelly)
  2. 大头贴制作大师注册机 Cracked.By.HackWm.
  3. 2019全国电子设计大赛D题---简易电路特性测试仪
  4. 初识原型链——怎么画一条完整的原型链
  5. pytorch矩阵乘法总结
  6. QT中setLayout无效的问题
  7. 获取摩拜单车在地区的车辆python多线程实现
  8. 【maven】maven-release-plugin 使用 (git)
  9. 【代码收藏夹 · C51】51单片机延时函数
  10. Go 1.16 即将到来的函数:ReadDir 和 DirEntry