2012-06-08 79 views
3

我想找到的R用規則化迴歸是介於0預測值的包 - 雖然1。我沒有太多的運氣,已經嘗試了​​包和現在的glmnet包。[R glmnet家族=二項式預測值之外的0-1

下面是從在用於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 

我不明白爲什麼輸出不是全部在0-1範圍內。

我誤解的東西嗎?

誰能推薦一個簡單易用的軟件包正規化迴歸?

謝謝。

回答

8

檢查predict.glmnet文檔:默認情況下它是類型=「鏈接」,即鏈路轉化。

predict(cvob2,newx=x[1:5,],type="response", s="lambda.min") 
+0

這做到了。非常感謝你! – screechOwl

+0

什麼是's'?它沒有在'?predict.glm'中提到 –

+0

這是無稽之談,我從上面複製它,主要觀點是type =「response」。感謝指針!我通過預測使用部分匹配將其解釋爲se.fit = TRUE。 –