답변:
예, 절편은 glmnet 모델에 포함되어 있지만 정규화되지는 않습니다 (참조 : Coordinate Descent를 통한 일반 선형 모형의 정규화 경로 , p. 13). 구현에 대한 자세한 내용은 코드를주의 깊게 살펴보면 얻을 수 있지만 (가우스 패밀리의 경우 elnet()
가 호출 하는 함수 glmnet()
임) 포트란에 있습니다.
당신은 시도 할 수 범 전달하여 절편을 제거 할 수 있습니다 패키지 unpenalized = ~0
로를 penalized()
.
> x <- matrix(rnorm(100*20),100,20)
> y <- rnorm(100)
> fit1 <- penalized(y, penalized=x, unpenalized=~0,
standardize=TRUE)
> fit2 <- lm(y ~ 0+x)
> plot((coef(fit1) + coef(fit2))/2, coef(fit2)-coef(fit1))
올가미 정규화를 얻으려면 다음과 같이 시도하십시오.
> fit1b <- penalized(y, penalized=x, unpenalized=~0,
standardize=TRUE, lambda1=1, steps=20)
> show(fit1b)
> plotpath(fit1b)
다음 그림에서 볼 수 있듯이 두 방법으로 계산 된 회귀 매개 변수 (왼쪽)에는 거의 차이가 없으며 올가미 경로 솔루션을 매우 쉽게 그릴 수 있습니다 (오른쪽).