caret::predict 给出错误:$ 运算符对原子向量无效

凯尔·迪克森

这让我发疯了,我整天都在浏览类似的帖子,但似乎无法解决我的问题。我有一个朴素贝叶斯模型训练和存储为model. 我正在尝试使用newdata数据框进行预测,但我不断收到错误消息 Error: $ operator is invalid for atomic vectors这是我正在运行的:另一个数据框的第一行在stats::predict(model, newdata = newdata)哪里newdatanew data <- pbp[1, c("balls", "strikes", "outs_when_up", "stand", "pitcher", "p_throws", "inning")]

class(newdata)[1] "tbl_df" "tbl" "data.frame".

阿克伦

问题在于使用的数据。它应该与levels训练中使用的匹配例如,如果我们使用从 trainingData 到 的行之一predict,它确实有效

predict(model, head(model$trainingData, 1))
#[1] Curveball
#Levels: Changeup Curveball Fastball Sinker Slider

通过检查str两个数据集的 ,factor训练中的一些列是character

str(model$trainingData)
'data.frame':   1277525 obs. of  7 variables:
 $ pitcher     : Factor w/ 1390 levels "112526","115629",..: 277 277 277 277 277 277 277 277 277 277 ...
 $ stand       : Factor w/ 2 levels "L","R": 1 1 2 2 2 2 2 1 1 1 ...
 $ p_throws    : Factor w/ 2 levels "L","R": 2 2 2 2 2 2 2 2 2 2 ...
 $ balls       : num  0 1 0 1 2 2 2 0 0 0 ...
 $ strikes     : num  0 0 0 0 0 1 2 0 1 2 ...
 $ outs_when_up: num  1 1 1 1 1 1 1 2 2 2 ...
 $ .outcome    : Factor w/ 5 levels "Changeup","Curveball",..: 3 4 1 4 1 5 5 1 1 5 ...

str(newdata)
tibble [1 × 6] (S3: tbl_df/tbl/data.frame)
 $ balls       : int 3
 $ strikes     : int 2
 $ outs_when_up: int 1
 $ stand       : chr "R"
 $ pitcher     : int 605200
 $ p_throws    : chr "R"

一个选择是levelsfactor班级同样的事情

nm1 <- intersect(names(model$trainingData), names(newdata))
nm2 <- names(which(sapply(model$trainingData[nm1], is.factor)))
newdata[nm2] <- Map(function(x, y) factor(x, levels = levels(y)), newdata[nm2], model$trainingData[nm2])

现在做predict离子

predict(model, newdata)
#[1] Sinker
#Levels: Changeup Curveball Fastball Sinker Slider

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

plot.lm错误:$运算符对原子向量无效

rfe() 函数错误:$ 运算符对原子向量无效

model.matrix错误:$运算符对原子向量无效

方差分析:错误:$运算符对原子向量无效

错误$运算符对制作直方图R的原子向量无效

biglm - 错误:$ 运算符对原子向量无效

错误:$ 运算符对原子向量无效(r 闪亮 ggplot)

插入符包中的Predict函数给出错误

尽管未使用原子向量或 $,但错误“$ 运算符对原子向量无效”

插入符:: train函数中的“错误:$运算符对于原子向量无效”

x $ j中的错误:$运算符对文本聚类中的原子向量无效

第一个函数中的错误:$运算符对原子向量无效

闪亮:updateSelectizeInput引发错误“ $运算符对于原子向量无效”

随机森林模型的Rcaret提取预测:错误:$运算符对于原子向量无效

模糊匹配:避免出现“错误:$运算符对原子向量无效”

ggplot2错误:$运算符对于原子向量无效

Apply函数返回“错误:$运算符对于原子向量无效”

HR.Rates $ y中的错误:$运算符对原子向量无效

使用 ggsave 时遇到“错误:$ 运算符对原子向量无效”

运算符重载给出错误

两个函数-一个很好,一个有错误:$运算符对原子向量无效

AND运算符在SQL中给出错误的输出

为什么这个sizeof运算符给出错误?

sizeof 运算符给出错误结果

Scikit学习predict_proba给出错误答案

将函数应用于不同的数据子集时,对于3个子集中的1个,会出现“错误:$运算符对于原子向量无效”

Speeglm $运算符对原子向量无效

使用运算符在查询中给出无效值错误

一元运算符的无效参数-错误消息-负dplyr ::用向量选择