我正在使用插入符号包的plsda函数在数据集上训练模型,并试图使用它来预测新数据集的类参与。但是,当我尝试预测同一数据集的单行时,predict()返回多个结果。我不确定这是怎么回事。
下面显示了一个最小示例
library(caret)
#Generate random dataset
trainLow <- as.data.frame(matrix(data = rnorm(533*32), nrow = 32, ncol = 533))
trainLowClass <- as.factor(rep(1:8, each = 4))
#Train model
low_plsda_model <- plsda(trainLow,
trainLowClass,
probMethod = "Bayes",
ncomp = 4,
)
predict()适用于具有1个以上观察值的数据集,但当newdata仅包含1个观察值时返回7个预测类
#Expected to return 32 predictions
> predict(low_plsda_model, trainLow, ncomp = 2)
[1] 1 1 1 1 2 2 2 2 3 3 3 3 4 4 4 4 5 5 5 5 6 6 6 6 7 7 7 7 8 8 8 8
Levels: 1 2 3 4 5 6 7 8
#Expected to return 2 predictions
> predict(low_plsda_model, trainLow[1:2,], ncomp = 2)
[1] 1 1
Levels: 1 2 3 4 5 6 7 8
#Expected to return 1 prediction
> predict(low_plsda_model, trainLow[1,], ncomp = 2)
[1] 4 7 4 3 5 6 7
Levels: 1 2 3 4 5 6 7 8
任何人都知道发生了什么事吗?我是R的新手。