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

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

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

相关视频

拓端

,赞9

拓端

,赞15

拓端

,赞9

拓端

,赞20

数据

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

  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是简单的基于正交投影的,所以我们可以(这里的数据是标准化的)。给定前两个分量平面上的两个坐标,给定我们的变换矩阵、归一化分量和一个分类器(这里是基于逻辑回归),我们可以回到原始空间,并对新数据进行分类。

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

 逻辑回归

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

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

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

  1.  
    xgrid=seq(-5,5,length=25 )
  2.  
    ygrid=seq(-5,5,length=25 )
  3.  
    zgrid=ter(xgrid,ygrid,p)

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

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

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

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

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

决策树

默认分类树

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

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

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

或者

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

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

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

也可以考虑这种情况

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

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

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

可视化

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

  1.  
    > fore= randomForest(factor(是否存活)~.,
  2.  
    > pF=function(d1,d2) pred2(d1,d2,Minv,fore)
  3.  
    > zgridF=Outer(xgrid,ygrid,pF)
  4.  
    PCA(data,.sup=8,graph=TRUE)
  5.  
    > image(xgrid,ygrid,Zgrid,add=TRUE,
  6.  
    > 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分类

原文地址:http://www.cnblogs.com/tecdat/p/16856111.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性