使用 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
中得到解决
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
中得到解决