【问题标题】:R glm table function with predict output具有预测输出的 R glm 表函数
【发布时间】:2017-05-26 23:04:55
【问题描述】:

我很好奇为什么这个简单的代码对我不起作用:

wine$taste <- ifelse(wine$quality < 6, 0, 1)
wine$taste <- as.factor(wine$taste)

set.seed(123)
samp <- sample(nrow(wine), 0.6 * nrow(wine))
train <- wine[samp, ]
test <- wine[-samp, ]

mylogit <- glm(taste ~ pH+alcohol+density, data = train, family = binomial)

pred = predict(mylogit, newdata=test)
accuracy <- table(pred, test[,"taste"])

表格给出了错误:

表中的错误(pred,test[,“taste”]):
alle Argumente müssen die selbe Länge haben

因子和数值有问题吗?所有值都是数字,但变量味道...

表函数接受哪些参数?

【问题讨论】:

    标签: r glm


    【解决方案1】:

    这些数据是否包含在一个包中,以便我可以重新创建分析?无论如何,我认为这是您指定测试集类的方式。你说test[,"taste"]可能返回一个长度为1的对象(这就是为什么你得到错误说它们必须具有相同的长度),其中一个元素是$taste ,其中又包含您要查找的类标签。

    你需要做的是直接告诉它你想要那个$taste 元素。试试:

    table(pred, test$taste)
    

    您也可能需要指定您想要的预测值的哪一部分。不同的函数返回不同类型的预测对象。 str(predict) 返回什么?你可能会发现它返回类、概率和很多东西。您可能必须指定您想要的类,而不是概率。

    【讨论】:

    • 好的,这个 helpe 使用 test$tasrte。我不知道为什么
    • 为什么 test[,"taste"] 和 test$taste 不一样?
    • 其他人可能知道原因,但根据我的经验,有时只指定数据框的一部分,这样会返回给您:“这是一个数据框,带有一个变量”,其中必须使用$ 显式调用该变量。试试看 length(pred)length(test[,"taste"]) 是什么。
    猜你喜欢
    • 2018-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-12
    • 2021-06-06
    • 2021-09-10
    • 2019-02-10
    相关资源
    最近更新 更多