R의 올가미 회귀

Sheeraz Gul 2023년6월21일
R의 올가미 회귀

Lasso 회귀는 단순 모델에서 희소 및 축소를 사용하는 분류 알고리즘입니다. 이 튜토리얼은 R에서 올가미 회귀를 수행하는 방법을 보여줍니다.

R의 올가미 회귀

LASSO는 Least Absolute Shrinkage and Selection Operator로 약칭됩니다. 모델 선택의 특정 부분을 자동화하려는 경우 높은 수준의 다중 공선성을 보여주기 때문에 올가미 회귀가 좋은 선택입니다.

올가미 회귀는 2차 프로그래밍 문제이며 R 및 Matlab과 같은 언어가 솔루션을 제공합니다. R에서 lasso 회귀를 해결하는 단계별 프로세스를 살펴보겠습니다.

방정식의 이해

Lasso 회귀는 다음 기능을 최소화합니다.

RSS + λΣ|βj|

여기서 j는 1에서 예측 변수까지의 범위이고 λ ≥ 0, 두 번째 용어 λΣ|βj| 수축 페널티로 알려져 있습니다.

RSS = Σ(Yi – ŷi)2, 여기서 Σ는 합계, yii 관찰에 대한 실제 응답 값, ŷi는 예측된 응답 값입니다.

람다는 올가미 회귀에서 수행할 작업을 알고 나면 올가미 회귀에서 가능한 가장 낮은 테스트 평균 분대 오류(MSE)로 선택됩니다.

다음 단계에서 데이터를 로드해 보겠습니다.

데이터 로드

예를 들어 mtcars 데이터 세트를 사용하겠습니다. hp는 응답 변수로 사용되고 mpg, drat, wt, qsec는 예측 변수로 사용됩니다.

glmnet 패키지를 사용하여 올가미 회귀를 수행할 수 있습니다. 데이터를 로드해 보겠습니다.

# glmnet package requires to define response variable
x <- mtcars$hp

# glmnet package requires to define matrix of predictor variables
y <- data.matrix(mtcars[, c('mpg', 'wt', 'drat', 'qsec')])

데이터가 로드되면 다음은 올가미 회귀 모델을 맞추는 것입니다.

Lasso 회귀 모델 피팅

이 단계에서는 glmnet() 함수를 사용하여 올가미 회귀 모델을 맞춥니다. 올가미 회귀 모델의 경우 알파가 1로 설정됩니다. 람다 값을 결정하기 위해 k-겹 교차 검증이 수행되며, glmnet을 사용하면 k= 10 접기로 자동으로 교차 검증을 수행합니다.

아직 설치되지 않은 경우 glmnet 패키지를 설치해야 할 수도 있습니다. 예를 참조하십시오:

# k-fold cross-validation to find lambda value
cv_model <- cv.glmnet(x, y, alpha = 1)

#lambda value that minimizes test MSE
best_lambda <- cv_model$lambda.min
best_lambda

# plot the model
plot(cv_model)

위의 코드는 올가미 회귀 모델에 적합하며 최상의 람다 값과 모델 플롯을 보여줍니다.

테스트 MSE를 최소화하는 람다 값은 다음과 같습니다.

[1] 2.01841

올가미 회귀 모델 플롯:

Lasso 회귀 모델

Lasso 회귀 모델 분석

모델을 분석한다는 것은 모델의 계수를 보여줄 수 있다는 것을 의미합니다. 모델의 계수는 다음과 같습니다.

# Coefficients of the model
coef(cv_model)

코드 출력은 다음과 같습니다.

5 x 1 sparse Matrix of class "dgCMatrix"
                    s1
(Intercept) 418.277928
mpg          -4.379633
wt            .
drat          .
qsec        -10.286483

우리는 최고의 람다 값을 알고 있습니다. 모델을 피팅하는 동안 glmnet 함수에 대한 인수로 최상의 람다 값을 우회하여 최상의 모델을 생성할 수도 있습니다.

보시다시피 예측 변수 wtdrat에 대한 계수는 올가미 회귀로 인해 0으로 축소되었기 때문에 표시되지 않습니다. 이것이 모델에서 제외된 이유입니다.

작가: Sheeraz Gul
Sheeraz Gul avatar Sheeraz Gul avatar

Sheeraz is a Doctorate fellow in Computer Science at Northwestern Polytechnical University, Xian, China. He has 7 years of Software Development experience in AI, Web, Database, and Desktop technologies. He writes tutorials in Java, PHP, Python, GoLang, R, etc., to help beginners learn the field of Computer Science.

LinkedIn Facebook

관련 문장 - R Regression