Прогноз PLS-DA для одной строки данных возвращает несколько прогнозов - PullRequest
0 голосов
/ 02 марта 2019

Я использую функцию 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.

...