r - 如何扩展 PCA 的结果?
问题描述
我必须使用不同葡萄酒的红外光谱在高维数据集上执行 PCA,然后将其绘制为 2D。我必须在情节上将红葡萄酒涂成红色,将白葡萄酒涂成绿松石色。
这是我想出的代码:
wine_pca <- prcomp(data[,-c(1:9)]) #eliminate columns 1-9 which contain other non-numeric information
pc <- predict(wine_pca)
pc1 <- predict(wine_pca)[,1]
pc2 <- predict(wine_pca)[,2]
#plot principal components pc1 & pc2
ggplot(pc, aes(PC1, PC2)) + theme_bw() +
geom_point(aes(shape = data$name, color = data$color), show.legend = TRUE, size = 3) +
scale_shape_manual(values = c(3, 4, 8, 21, 22, 23, 24, 25)) +
scale_color_manual(guide=FALSE, values=c("red", "turquoise")) +
theme(legend.position = 'right', legend.title = element_blank()) +
xlab("First Principal Component") +
ylab("Second Principal Component") +
ggtitle("First Two Principal Components of a Selection of Wines")
我认为它看起来和运行都很好,但我从教授那里得到的反馈是:
“你为什么要重新调整 pca 的数据?这在这种情况下没有意义(否则请解释)并导致不同的结果”
由于我是个傻瓜,我不太了解反馈 - 我在哪里扩展数据?我的方法从根本上是错误的吗?如果你们中的一个神童可以帮助一个非常绝望的女孩,我将不胜感激。谢谢!
解决方案
由于您的数据不在问题中,您可以试试这个。缩放的基本思想是将所有变量转换为无维比例,以便可以比较它们。在开始时尝试此代码并与您之前的结果进行比较:
wine_pca <- prcomp(data[,-c(1:9)],scale = TRUE)
推荐阅读
- javascript - HTML 上的自动更新值,firebase 值
- python - 按组计算正值的比率
- python - 如何在恒定空间中向多个消费者提供迭代?
- solr - 带有小写过滤器的标记器不起作用
- python - Tk filedialog 防止条目的焦点
- python - TypeError:参数“有效负载”的类型不正确(预期字节,得到 str)。我该如何解决?为什么它可以在 Python 2 上运行,但不能在 Python 3 上运行?
- java - java - 如何从java Se连接到部署在glassfish上的远程Ejb?
- javascript - 我怎样才能在输入内容后立即改变焦点?
- git - 如何在源文件位于解决方案文件夹 VS 之外时创建存储库
- php - 在 Laravel 中同时支持旧 Safari 和新 Chrome 时的 SameSite cookie 策略设置