Я использую функцию plsda пакета caret для обучения модели в наборе данных и пытаюсь использовать ее для прогнозирования участия класса в новых наборах данных.Однако, когда я пытаюсь предсказать одну строку одного и того же набора данных, предикат () возвращает несколько результатов.Я не уверен, что здесь происходит.
Ниже приведен минимальный пример
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,
)
Foret () работает для наборов данных с более чем 1 наблюдением, но возвращает 7 предсказанных классов, когда newdataсостоит только из одного наблюдения
#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.