使用 caret 包中 [R] 中的 predict() 函数使用单个值时的预测数量不正确

Incorrect number of predictions when using single values using predict() function in [R] in the caret package

data(iris)
library(caret)
#Naive Bayes machine learning on iris data set
nb.iris <- train(Species ~.,data=iris,method="nb")

现在创建一些 'newdata',以检查预测的数量。请注意您应该期望的预测值数量(对于 Iris 物种)。如果我提供 2 行数据,我应该得到 2 个预测等

让我们尝试为模型提供 2 行数据

multi.value <- iris[1:2,]
predict(nb.iris,multi.value)
#two predicted values returned (correct)

但是单行数据不会return一个预测值!!

single.value <- iris[1,]
predict(nb.iris,single.value)
#FOUR predicted values returned - INCORRECT!!!

但是如果我复制这个单个值,我可以获得该行数据的(正确预测)

duplicate.single.value <- iris[c(1,1),]
predict(nb.iris,duplicate.single.value)
#TWO predicted values (correct)

这似乎是一个错误....

问题如下: 数据作为矩阵进入预测函数,并被转换为错误的格式。 caret 包的所有者已进行更改以解决此问题。

有关详细信息,请参阅插入符号 github 页面上的 issue #345

一旦修复在 cran 上的包中,我将更新此答案。

编辑:

cran 上的插入符号已更新。问题已在插入符号版本 6.0-64

中得到解决