当前位置: 首页 > article >正文

【R语言】PCA主成分分析

使用R语言手动实现PCA主成分分析计算,通过计算协方差矩阵计算出数据的主成分得分,根据的分最高的特征进行得分图的绘制

# 读取数据

raw_data <- read.csv("R可视化/data.csv", header = TRUE, fileEncoding = "GBK")

new_data <- raw_data[, -1]



# 标准化数据

standardized_data <- scale(new_data)



# 计算协方差矩阵

cov_matrix <- cov(standardized_data)



# 计算特征值和特征向量

eigen_result <- eigen(cov_matrix)

eigenvalues <- eigen_result$values

eigenvectors <- eigen_result$vectors



# 选择前两个主成分的特征向量

principal_components <- eigenvectors[, 1:2]



# 计算主成分得分

scores <- as.matrix(standardized_data) %*% principal_components



# 绘制得分图

plot(scores[, 1], scores[, 2],

     xlab = 'Comp.1', ylab = 'Comp.2', main = '主成分得分图')

abline(h = 0, lty = 3)

abline(v = 0, lty = 3)



# 在每个点上添加标签

text(scores[, 1], scores[, 2], labels = raw_data[, 1], pos = NULL)





# 输出主成分得分

comp_score <- data.frame(scores)

rownames(comp_score) <- rownames(raw_data)

print("主成分得分:")

print(head(comp_score))

运行结果


http://www.kler.cn/a/569671.html

相关文章:

  • 计算机毕业设计SpringBoot+Vue.js常规应急物资管理系统(源码+文档+PPT+讲解)
  • 梳理vite构建vue项目可选的配置和组件
  • 匿名内部类与Lambda表达式不理解点
  • 第34周:文献阅读
  • 基于SSM实现的bbs论坛系统功能实现九
  • git管理的项目 发布时有收费版/免费版/客户定制版,如何管理分支,通过merge(合并) 还是 cherry-pick(挑拣) 引入更新的代码?
  • 25考研数二408部分时间统计
  • 【漫话机器学习系列】109.线性无关(Linearly Independent)
  • DeepSeek 助力 Vue3 开发:打造丝滑的弹性布局(Flexbox)
  • Netty介绍
  • HTML——<head>标签中可放入的标签
  • 计算机毕业设计SpringBoot+Vue.js线上辅导班系统(源码+文档+PPT+讲解)
  • 线上服务器的文件下载到本地Windows电脑
  • Golang | 每日一练 (4)
  • 【uniapp】在UniApp中实现持久化存储:安卓--生成写入数据为jsontxt
  • 【tplink】校园网接路由器如何单独登录自己的账号,wan-lan和lan-lan区别
  • 从神经元到大语言模型及其应用
  • React + TypeScript AI Agent开发实战
  • docker高级
  • SpringSecurity基于JWT实现Token的处理