使用多项逻辑回归进行预测

数据挖掘 机器学习 r 逻辑回归 预测建模
2022-03-09 10:54:09

如果我执行以下代码,我没有问题:

require(foreign)
require(nnet)
require(ggplot2)
require(reshape2)

ml <- read.dta("https://stats.idre.ucla.edu/stat/data/hsbdemo.dta")
ml$prog2 <- relevel(ml$prog, ref = "academic")
test <- multinom(prog2 ~ ses + write, data = ml)
predict(test, newdata = dses, "probs")

但如果我尝试:

require(caret)
ml <- read.dta("http://www.ats.ucla.edu/stat/data/hsbdemo.dta")
ml$prog2 <- relevel(ml$prog, ref = "academic")
test <- train(prog2 ~ ses + write,method="multinom" ,data = ml)
predict(test$finalModel, newdata = dses, "probs")

它返回Error in eval(expr, envir, enclos) : object 'sesmiddle' not found,为什么?

1个回答

这不是我得到的错误,我认为您遗漏了一些代码。我得到:

预测(test$finalModel,newdata = dses,“概率”)
as.data.frame(newdata) 中的错误:找不到对象“dses”

我不知道为什么我会看到这么多,但是您应该避免使用该finalModel对象进行预测。train正在做一些来自multinomsin 的模型不知道的事情(例如扩展虚拟变量)。尝试使用

预测(测试,新数据 = dses,“概率”)

并且永远不要再使用predict(test$finalModel)...

最大限度