关于数据挖掘:数据分享R语言用主成分PCA-逻辑回归决策树随机森林分析心脏病数据并高维可视化附代码数据

42次阅读

共计 2597 个字符,预计需要花费 7 分钟才能阅读完成。

全文链接: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 分类

正文完
 0