R glmnet family =二项式预测值在0-1之外

scr*_*Owl 4 regression r glmnet regularized

我正在尝试在R中找到一个用于正则化逻辑回归的包,它可以预测0到1之间的值.虽然我已经尝试过这个lars包,但现在已经尝试了glmnet包.

下面是glmnet包参考手册中的示例代码,我不明白输出.

library(glmnet)

set.seed(1010)
n=1000;p=100
nzc=trunc(p/10)
x=matrix(rnorm(n*p),n,p)
beta=rnorm(nzc)
fx= x[,seq(nzc)] %*% beta
eps=rnorm(n)*5
y=drop(fx+eps)
px=exp(fx)
px=px/(1+px)
ly=rbinom(n=length(px),prob=px,size=1)
set.seed(1011)
cvob2=cv.glmnet(x,ly,family="binomial")
plot(cvob2) # had to add this comment to allow edit
coef(cvob2)
predict(cvob2,newx=x[1:5,], s="lambda.min")

             1
[1,] -1.721438
[2,]  0.914219
[3,]  1.111685
[4,]  1.805725
[5,] -4.200433
Run Code Online (Sandbox Code Playgroud)

我不明白为什么输出不在0-1范围内.

我在这里误解了什么吗?

任何人都可以推荐一个易于使用的包进行正则化逻辑回归吗?

谢谢.

Die*_*nne 9

检查predict.glmnet docs:默认情况下,它是type ="link",即链接转换.

predict(cvob2,newx=x[1:5,],type="response", s="lambda.min")
Run Code Online (Sandbox Code Playgroud)

  • @jabberwocky,这是指`?predict.glmnet`,而不是`?predict.glm`.`s`指的是这种`glmnet`模型的lambda参数. (3认同)