单行数据的PLS-DA预测返回多个预测

时间:2019-03-02 10:21:37

标签: r prediction r-caret predict

我正在使用插入符号包的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的新手。

0 个答案:

没有答案