使用caret包进行堆叠时,我在R中收到以下错误信息。
"错误:至少一个类别级别不是有效的R变量名;这将在生成类别概率时导致错误,因为变量名将转换为not5,X5sets。请使用可用作有效R变量名的因子级别(请参见?make.names以获取帮助)."
下面是我正在尝试运行的代码。
library(caretEnsemble)
control <- trainControl(method="repeatedcv", number=10, repeats=3, savePredictions=TRUE, classProbs=TRUE)
algorithmList <- c('rpart', 'knn', 'svmRadial')
set.seed(222)
models <- caretList(Tsets ~ MatchSurface + MatchRound + AgeDiff + SameHand + HeightDiff, data=up_sample, trControl=control, methodList=algorithmList)
results <- resamples(models)
当我移除
classProbs=TRUE
后,代码可以运行,但我想保留它,因为我正在尝试运行后面需要使用的其他代码。 我的所有变量都是因子或整数,并且我已更改了所有类别,使它们不包含 “0” 和 “1”。 因此,我无法弄清楚为什么代码无法运行。我已经在下面附上了数据结构的图片。如果有人能提供一些建议,那就太好了。
![Data Structure](https://istack.dev59.com/sCFqf.webp)
?make.names
吗?它解释了列名需要满足的要求。错误信息还特别指出"5sets"
将不是一个有效的列名,运行make.names(c("not5", "5sets"))
以自行验证。 - camille