我在二进制数据上运行以下弹性网模型(1 =坏,0 =好)。有没有人知道默认情况下glmnet适合哪种类型的模型:P(y = 1)或P(y = 0)。无论如何选择前者以适应模型。
cv.glmnet(x, y, family="binomial", type.measure="deviance", standardize=FALSE, nfolds=5, alpha=par)
答案 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")