R 中的 PCA 使用 caret 包与 prcomp PCA
PCA in R using the caret package vs prcomp PCA
我有一个包含 50 多个变量的数据框 data
,我正在尝试使用 caret
包在 R 中执行 PCA。
library(caret)
library(e1071)
trans <- preProcess(data,method=c("YeoJohnson", "center","scale", "pca"))
如果我正确理解这段代码,它会应用 YeoJohnson 转换(因为 data
中有零),标准化 data
然后应用 PCA(默认情况下,该函数只保留 PC这是解释数据中至少 95% 的变异所必需的)
但是,当我使用 prcomp
命令时,
model<-prcomp(data,scale=TRUE)
我可以获得更多输出,例如打印 summary
或执行 plot(data, type = "l")
,而我在 trans
中无法执行这些操作。有谁知道 caret
包中是否有任何函数产生与 prcomp
中相同的输出?
您可以使用 predict
函数访问主成分本身。
df <- predict(trans, data)
summary(df)
您不会得到与 prcomp
完全相同的输出:虽然 caret
使用 prcomp()
,但它丢弃了原始 prcomp
class 对象并且没有 return 它。
我有一个包含 50 多个变量的数据框 data
,我正在尝试使用 caret
包在 R 中执行 PCA。
library(caret)
library(e1071)
trans <- preProcess(data,method=c("YeoJohnson", "center","scale", "pca"))
如果我正确理解这段代码,它会应用 YeoJohnson 转换(因为 data
中有零),标准化 data
然后应用 PCA(默认情况下,该函数只保留 PC这是解释数据中至少 95% 的变异所必需的)
但是,当我使用 prcomp
命令时,
model<-prcomp(data,scale=TRUE)
我可以获得更多输出,例如打印 summary
或执行 plot(data, type = "l")
,而我在 trans
中无法执行这些操作。有谁知道 caret
包中是否有任何函数产生与 prcomp
中相同的输出?
您可以使用 predict
函数访问主成分本身。
df <- predict(trans, data)
summary(df)
您不会得到与 prcomp
完全相同的输出:虽然 caret
使用 prcomp()
,但它丢弃了原始 prcomp
class 对象并且没有 return 它。