【问题标题】:Getting predicted classes from R glmnet object从 R glmnet 对象获取预测的类
【发布时间】:2012-03-09 20:07:58
【问题描述】:

我正在尝试使用 R 中的 glmnet 构建简单的多类逻辑回归模型。但是,当我尝试预测测试数据并获取列联表时,我得到了一个错误。下面复制了一个示例会话。

> mat = matrix(1:100,nrow=10)
> test = matrix(1:50,nrow=5)

> classes <- as.factor(11:20)

> model <- glmnet(mat, classes, family="multinomial", alpha=1)
> pred <- predict(model, test)
> table(pred, as.factor(11:15))
  Error in table(pred, as.factor(11:15)) : 
  all arguments must have the same length

任何帮助将不胜感激。这里是菜鸟。

谢谢。

【问题讨论】:

  • 您应该花更多时间在文档上。仔细阅读?predict.glmnet,特别注意参数types
  • @joran :我也尝试过 type=class、response 和 link。还没有工作:-(
  • 再一次,您只需要更仔细地阅读。 type 参数需要一个字符,如type = "class"。其次,s 参数非常清楚地记录在案,并且对于您正在尝试的内容是必要的。甚至还有一个例子说明了它的用法。
  • 是的,我正确使用了type 参数,但没有提供s。感谢您指出。如果您想发表评论作为答案,我可以接受。
  • 我很高兴你明白了! :)

标签: r regression glmnet


【解决方案1】:

glmnet 对象的predict 方法要求您为参数s 指定一个值,该值指示您想要预测的正则化参数的哪些值。

glmnet 同时为该正则化参数的多个值拟合模型。)

因此,如果您没有为 s 指定值,predict.glmnet 将返回对 所有 值的预测。如果您只需要一组预测,则需要在调用predict 时为s 设置一个值,或者需要在事后提取相关列。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-04-16
    • 2018-01-03
    • 1970-01-01
    • 1970-01-01
    • 2014-09-28
    • 2022-07-22
    • 2023-01-24
    • 1970-01-01
    相关资源
    最近更新 更多