什么是二进制数据模型上的glmnet(P = 1或P = 0)

时间:2012-08-15 20:11:03

标签: models logistics lasso

我在二进制数据上运行以下弹性网模型(1 =坏,0 =好)。有没有人知道默认情况下glmnet适合哪种类型的模型:P(y = 1)或P(y = 0)。无论如何选择前者以适应模型。

cv.glmnet(x, y, family="binomial", type.measure="deviance", standardize=FALSE, nfolds=5, alpha=par)

1 个答案:

答案 0 :(得分:1)

在glmnet文档中隐藏了你的答案(在R中输入?predict.glmnet):

  

请注意,对于“二项式”模型,仅针对与因子响应的第二级对应的类返回结果。

如果您描述的二进制数据被指定为y作为简单的数字向量,那么该模型将产生P(y = 1)拟合。

> x <- matrix(rnorm(100*20),100,20)  # create some sample input
> y <- as.factor(sample(0:1, 100, replace=TRUE))
> levels(y)
[1] "0" "1"
> py1_fit <- glmnet(x, y, family="binomial")

要反转并适合P(y = 0),您只需重新排序等级:

> y0 <- factor(y, levels=rev(levels(y)))
> levels(y0)
[1] "1" "0"
> py0_fit <- glmnet(x, y0, family="binomial")