R语言学习——主成分分析

a <- read.table('/Users/zhangzhishuai/Downloads/24 lesson24 R主成分分析/24_pca/BMI.txt', header = T,sep = '\t', row.names = 1)
data<- a[,-3]
data
cor(data$height,data$weight) # 查看相关性系数
data.pca <- prcomp(data,scale. = T) # 主成分分析 scale:数据值差异太大,进行处理
data.pca
summary(data.pca)
screeplot(data.pca, type = 'lines') # 画图看做几个主成分,一般取图中拐点
biplot(data.pca) # PCA图(丑)
data.pca$x
m <- as.factor(a$gender)
plot(data.pca$x[,1:2],col=c('red','blue')[m],pch=c(21,24)[m]) # 2维绘图,21和24指的是形状
legend('bottomlef',legend=levels(m),col = c('red','blue'),pch = c(21,24)) #图例
abline(v=0, col=('red')) # 中间加一条线

library(scatterplot3d)
scatterplot3d(data.pca$x[,1:3] #取前三列
              ,type = 'h' # 竖线
              ,pch = 20 # 形状
              ,color = c('red','blue')[m] # 根据男女分颜色
              ,angle = 45 # 旋转角度
              ,main = 'PCA_3D' # 图表题
              ,cex.symbols = 2 # 控制形状的大小
              ,mar = c(5.1,4.1,4.1,8.1) # 四周大小
              )
legend('topleft',legend = levels(m),col = c('red','blue'),pch = 19
       ,xpd = TRUE # 加到原来图上去
       , bty = 'n' # 不要边框
       )

BMI.txt
name height weight gender BMI
tom 180 75 male 23.1481481481481
cindy 165 58 female 21.3039485766759
jimmy 175 72 male 23.5102040816327
sam 173 68 male 22.7204383708109
lucy 160 60 female 23.4375
lily 165 55 female 20.2020202020202

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
成分分析(Principal Component Analysis,PCA)是一种常用的特征提取方法。它通过线性变换将原始数据投影到一个新的坐标系中,使得投影后的数据具有最大的方差。这些新的坐标轴被称为成分,它们是原始数据中最能区分样本之间差异的方向。 PCA的基本思想是找到一个最佳的投影方向,使得数据在该方向上的投影具有最大的方差,然后找到一个与第一个方向正交的第二个方向,使得数据在该方向上的投影具有次大的方差,依此类推。通过选择前k个成分,就可以将原始数据降维到k维空间中。 PCA具有以下几个应用和优点: 1. 数据降维:通过PCA可以将高维数据降低到低维空间,减少特征数量,同时保留了原始数据中最重要的信息。 2. 去除冗余信息:PCA可以去除原始数据中的冗余信息,提取出最相关的特征。 3. 数据可视化:PCA可以将高维数据映射到二维或三维空间中,便于可视化观察和分析。 4. 数据预处理:PCA可以在机器学习任务前对数据进行预处理,减少噪声和冗余信息对模型的影响。 5. 特征选择:基于PCA的方差解释率,可以选择保留多少个成分,从而选择最具代表性的特征。 需要注意的是,PCA是一种线性降维方法,对于非线性的数据分布效果可能不好。在这种情况下,可以考虑使用非线性降维方法,如核成分分析(Kernel PCA)等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值