如何在R中的新数据上完美地应用(创建的)模型?

 我是yingh_303 发布于 2023-02-08 16:44

对不起,如果感觉像是一个重复的问题,但老实说,我已经花了12个多小时,并且还没有找到易于理解和易于应用的方法.

情况很简单,我创建了2个模型,需要将它们应用到测试数据中.

#Model 1 -

reg5 <- glm(train$survived ~ train$pclass_str + train$sex + 
             train$age_2 + train$sibsp + train$pclass_str*train$sex, 
             family = "binomial")

#Model 2 - 
reg6 <- randomForest(train$survived_str ~ train$pclass_str + train$sex + 
                      train$age_2 + train$sibsp, ntree=5000)
应用它 -
test$pred_reg5 <- predict(reg5, newdata = test, type="response")
test$pred_reg6 <- predict(reg6, newdata = test, type="response")

我可以保证的是,列车和测试数据都包含模型中使用的相同名称的变量.虽然还有其他未使用的变量.

我得到的错误:

Error in `[<-.factor`(`*tmp*`, keep, value = c("0", "1", "1", "1", "0",  : 
  NAs are not allowed in subscripted assignments
In addition: Warning message:
'newdata' had 418 rows but variables found have 891 rows

谢谢你的帮助!

1 个回答
  • 将模型更改为,例如:

    reg5 <- glm(survived ~ pclass_str + sex + age_2 + sibsp + pclass_str*sex, 
                data=train, family = "binomial")
    reg6 <- randomForest(survived_str ~ pclass_str + sex + age_2 + sibsp, 
                         data=train, ntree=5000)
    

    您的模型规范可能存在另一个问题,即reg5使用survived ~...reg6使用survived_str ~...,但我无法从您的问题中判断出这是一个问题.

    最后,正如@Roland所指出的那样,您可以简化公式.如果您打算这么做,请阅读R(?formula)中关于公式的文档.在R公式中,通过指定构建交互a:b.符号a*b等同于a + b +a:b(例如,一阶项和它们的相互作用).因此,指定pclass_str*sex等同于指定pclass_str + sex + pclass_str:sex.

    2023-02-08 16:46 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有