PLS-DA 个人在 R 中用插入符包绘制
PLS-DA individuals plot with caret package in R
我想用 R 中的插入符号包为 PLS-DA 绘制个人图(类似于 PCA 图)并为不同的组添加颜色(见附图,这是 PCA 的示例,但我想要 PLS-DA 的同一种图表)。有人可以帮我解决这个问题吗?
这里是生成随机数据的代码,与我使用的数据类似。 Ycalib包含一个2级向量变量,Xcalib包含539个光谱波长(下面代码生成10个波长)。
set.seed(1001)
Ycalib <- data.frame(
y = sample(c("0", "1"), 10, replace = TRUE)
)
set.seed(1001)
Xcalib <- data.frame(
x1 = sample(1:10),
x2 = sample(1:10),
x3 = sample(1:10),
x4 = sample(1:10),
x5 = sample(1:10),
x6 = sample(1:10),
x7 = sample(1:10),
x8 = sample(1:10),
x9 = sample(1:10),
x10= sample(1:10)
)
这是插入符号中的 PLS-DA 代码:
library(caret)
set.seed(1001)
ctrl<-trainControl(method="repeatedcv",number=10,classProbs = TRUE,summaryFunction = twoClassSummary)
plsda<-train(x=Xcalib, # spectral data
y=Ycalib, # factor vector
method="pls", # pls-da algorithm
tuneLength=10, # number of components
trControl=ctrl, # ctrl contained cross-validation option
preProc=c("center","scale"), # the data are centered and scaled
metric="ROC") # metric is ROC for 2 classes
plsda
我是 R 的初学者,希望它足够清楚。
您需要从 train
模型中提取的对象称为 finalModel
。使用上面的对象名称,提取如下:
dfscores <- as.data.frame(plsda$finalModel$scores)
然后,您可以将其绑定到您的原始数据,您可以根据需要绘制,例如,使用 ggplot2
。
p <- ggplot(dfscores, aes(x=`Comp 1`,y=`Comp 2`, color = Ycalib)) + geom_point()
我想用 R 中的插入符号包为 PLS-DA 绘制个人图(类似于 PCA 图)并为不同的组添加颜色(见附图,这是 PCA 的示例,但我想要 PLS-DA 的同一种图表)。有人可以帮我解决这个问题吗?
这里是生成随机数据的代码,与我使用的数据类似。 Ycalib包含一个2级向量变量,Xcalib包含539个光谱波长(下面代码生成10个波长)。
set.seed(1001)
Ycalib <- data.frame(
y = sample(c("0", "1"), 10, replace = TRUE)
)
set.seed(1001)
Xcalib <- data.frame(
x1 = sample(1:10),
x2 = sample(1:10),
x3 = sample(1:10),
x4 = sample(1:10),
x5 = sample(1:10),
x6 = sample(1:10),
x7 = sample(1:10),
x8 = sample(1:10),
x9 = sample(1:10),
x10= sample(1:10)
)
这是插入符号中的 PLS-DA 代码:
library(caret)
set.seed(1001)
ctrl<-trainControl(method="repeatedcv",number=10,classProbs = TRUE,summaryFunction = twoClassSummary)
plsda<-train(x=Xcalib, # spectral data
y=Ycalib, # factor vector
method="pls", # pls-da algorithm
tuneLength=10, # number of components
trControl=ctrl, # ctrl contained cross-validation option
preProc=c("center","scale"), # the data are centered and scaled
metric="ROC") # metric is ROC for 2 classes
plsda
我是 R 的初学者,希望它足够清楚。
您需要从 train
模型中提取的对象称为 finalModel
。使用上面的对象名称,提取如下:
dfscores <- as.data.frame(plsda$finalModel$scores)
然后,您可以将其绑定到您的原始数据,您可以根据需要绘制,例如,使用 ggplot2
。
p <- ggplot(dfscores, aes(x=`Comp 1`,y=`Comp 2`, color = Ycalib)) + geom_point()