본문 바로가기
개발/Python

Ridge, Lasso, Elastic Net

by 피로물든딸기 2025. 10. 11.
반응형

전체 링크

 

Ridge : 계수들을 작게(균등하게) 수축(shrink) → 다수의 작은 효과가 있을 때, 다중공선성에 강함.

Lasso : 계수들을 제로로 만들며(특징 선택) 희소모델을 만듦 → 해석성 및 변수 선택 목적.

Elastic Net : L1(Lasso) + L2(Ridge) 혼합 → 상관된 변수들 그룹 선택 + 희소성 확보.

 

- λ가 아주 크면 모든 가중치가 0에 가까워져 수평선 모양(데이터 평균)이 된다. (편향 증가, 분산 감소)

- 학습 종료 후 규제가 없는 지표로 평가한다.


Ridge

- 계수들을 연속적으로(부드럽게) 0 쪽으로 수축.

- 절대값 0이 되는 경우 거의 없음 → 변수 선택을 하지 않음.

- 다중공선성 문제(상관된 컬럼들)에서 분산을 줄여 예측 안정화.

- 해가 닫힌형이라 계산이 빠름(작은 p에서 특히).

- 미분할 경우 2*alpha*W -> 가중치가 작아질수록 감소 속도도 느려져서 천천히 줄어듦

- weight decay 기법

- 변수 간 상관관계가 높은 상황에서 상대적으로 예측 성능이 우수한 것은 릿지(Ridge)

 

장점

- 다중공선성, 과대적합 완화
- 계산 안정적 (닫힌 해)
- 모형이 매우 불안정하지 않음 (계수 변동 적음)


단점

- 변수 선택을 하지 못해 해석성 떨어짐
- 진짜 희소(진짜 0인 변수)를 찾고자 할 때 부적합

 

* L2 패널티는 계수를 0으로 만들지 않기 때문에 LARS를 사용하지 않는다.


Lasso

- L1 제약의 기하학적 특성(다이아몬드 형태) 때문에 많은 계수가 정확히 0이 됨 → 변수 선택, 희소 모델

- 해석성 좋음(사용된 변수만 남음)

- 상관된 변수들 중 하나만 선택하는 경향(불안정할 수 있음)

- 최적화는 좌표하강, LARS 등으로 해결 (계수 경로, piecewise linear)

- 미분할 경우, sign(W) 형태로, 항상 일정한 힘을 줌 → W를 강하게 밀어 붙여서 정확히 0으로 만드는 효과

- 0에서 미분이 불가능 해 Gradient-Based Learning 시 주의 필요, L2 대비 효과 감소

- 모델에 Sparsity를 가함

 

장점

- 자동으로 변수 선택 (모델 단순화, 해석 가능).
- 특정 변수만 중요할 때 성능·해석성 좋음.


단점

- 상관된 변수들에서 임의로 하나만 선택 → 선택 불안정성
- 큰 계수는 편향이 생김 (과도한 수축)
- 해가 존재하지만 닫힌 형식 아님 (계산 복잡도↑, 특히 p 매우 클 때)

 

* LassoLars

- Lasso 문제를 Least Angle Regression (LARS) 알고리즘으로 해결

- LARS는 계수를 점진적으로 선택하면서 경로를 따라가며 Lasso를 풀 수 있는 효율적 알고리즘

- n ≪ p (샘플 수보다 변수 수가 많을 때) 에 강점

- LassoLars는 Lasso와 결과는 동일하지만 계산 방식이 다름

- 정규화된 데이터를 사용하면 Lasso와 거의 동일한 결과

- 잡음이 많거나 변수 상관이 높으면 결과가 불안정할 수 있음


Elastic Net

- L1의 희소성 + L2의 안정성(그룹 효과) 결합

- 상관된 변수들 그룹을 함께 선택하는 경향 (grouping effect)

- p ≫ n (변수가 샘플수보다 많은) 상황에서 Lasso보다 훨씬 안정적

- Lasso의 상관 변수 선택 불안정성을 L2가 보완 → 안정적인 변수 선택 가능

 

장점

- 상관변수 그룹을 함께 선택 → 안정성 ↑
- p ≫ n 혹은 변수 그룹화 상황에서 실전에서 자주 더 좋은 성능

 

단점

- 하이퍼파라미터(λ와 α)를 둘 다 튜닝해야 해서 복잡성 ↑
- 여전히 L1에 의해 일부 편향 발생.


한계점

 

스케일 의존성 

- 모든 방법은 피처 스케일에 민감

- 반드시 각 변수(특히 Lasso/ElasticNet)는 표준화(평균 0, 표준편차 1)를 해야 함.

- 절편(intercept)은 일반적으로 패널티에서 제외.

 

하이퍼파라미터 선택(λ, α)

- 교차검증(CV)이 표준. λ의 로그 스케일 탐색(logspace) 권장

 

선택의 일관성(Consistency)

- Lasso는 변수 선택의 일관성을 보장하려면 데이터가 특정 조건 (ex. irrepresentable condition)을 만족해야 함.

- 현실 데이터에서는 불만족하는 경우가 많아 선택 불안정 발생

 

편향(Bias)

- 모든 규제는 편향을 도입 → 예측 MSE는 (편향^2 + 분산) 균형을 맞추는 것이 목적.

 

추론(inference)

- 규제된 계수에 대한 표준적 t-검정 등은 잘못된 결과를 냄

- 선택 이후 OLS 재적합, 또는 "debiased lasso"등 특별 기법 사용

 

그룹 구조

- 그룹 단위 선택이 필요하면 Group Lasso 같은 방법 고려


- 항상 표준화(평균 0, 분산 1)

- intercept는 중심화 / 제외 : y 중심화, X 컬럼 표준화 → 인터셉트는 따로

- 많은 변수(또는 컬럼 간 상관 높음) → Ridge (계수들을 균등하게 수축하여, 상관된 변수들이 함께 선택)

- Elastic Net 권장 상황 : 상관된 변수들이 많거나 p ≫ n이면 Elastic Net이 가장 무난

- 모델 선택 전략 : 일반적으로 ElasticNetCV, LassoCV, RidgeCV로 λ(및 α) CV 튜닝

- 설명력 향상 : Lasso로 변수 선택 후 선택된 변수로 OLS 재적합하면 편향을 줄일 수 있음 (단, 선택 편향 주의)

- 안정성 확인 : 변수 선택이 중요한 경우엔 Stability Selection (부트스트랩 기반) 권장

- 규제는 계수 크기에 영향을 주므로 절대값이 작아진다 = 중요도가 낮다고 해석하되, 비교는 표준화된 계수 기준으로

 

해석(변수 선택)이 주 목적 → Lasso (또는 Elastic Net)

예측 성능 / 다중공선성 문제 / 많은 작은 신호 → Ridge

변수들이 서로 강하게 상관 → 희소성도 원함 → Elastic Net 

p ≫ n (변수 > 샘플) → Elastic Net 권장

반응형

'개발 > Python' 카테고리의 다른 글

신경망 파라미터 개수  (0) 2025.10.20
차트  (0) 2025.10.14
스케일링  (0) 2025.10.11
Seq2Seq, 어텐션, 트랜스포머  (0) 2025.10.09
PCA vs LDA vs t-SNE  (0) 2025.10.09

댓글