【发布时间】:2021-01-29 09:32:03
【问题描述】:
我将数据集拆分为训练和测试样本。然后我在训练数据上拟合一个 logit 模型来预测测试样本的结果。我可以通过两种方式做到这一点:
使用 Tidyverse:
logit_mod <- logistic_reg() %>%
set_mode("classification") %>%
set_engine("glm") %>%
fit(y ~ x + z, data=train)
res <- predict(logit_mod, new_data = test, type="prob")
或者使用 GLM 类:
logit_mod <- glm(y ~ x + z, data=train, family='logit')
res <- predict(logit_mod, newdata=test, type="response")
两种方法都给我不同的输出(y 的概率)。虽然模型应该是一样的。提取 logit_mod[["fit"]] 得到的系数与使用 GLM 提取 logit_mod 的系数相同。
为什么第二种方法会给我不同的预测概率?
【问题讨论】:
-
你可以试试把
family = 'logit'改成family = 'binomail'。
标签: r glm predict tidymodels