반응형
Lasso Regression이란?
Lasso Regression은 과적합(overfitting)을 방지하고 모델을 단순화하기 위해 고안된 선형 회귀의 확장 기법입니다. 특히 변수가 많은 경우, 불필요한 변수를 자동으로 제거해주기 때문에 해석 가능하고 일반화 성능이 높은 모델을 만들 수 있습니다.
Lasso Regression의 개념
Lasso는 Least Absolute Shrinkage and Selection Operator의 줄임말로, L1 정규화 항을 포함한 회귀 모델입니다.
일반 선형 회귀 식:
y = β₀ + β₁x₁ + β₂x₂ + ... + βₙxₙ + ε
Lasso 회귀의 손실 함수:
Loss = RSS + λ \* Σ|βᵢ|
RSS
: 잔차 제곱합 (Residual Sum of Squares)λ
: 규제 강도 (lambda 값이 클수록 계수가 더 줄어듦)Σ|βᵢ|
: 계수의 절댓값 합 (L1 norm)
L1 패널티는 일부 계수를 정확히 0으로 만들어, 변수 선택(feature selection)의 효과를 줍니다.
실제 예시: 집값 예측
예를 들어, 다음과 같은 변수들로 집값을 예측한다고 해봅시다:
- 면적
- 방 개수
- 엘리베이터 유무
- 건축 연도
- 단지 이름
- 관리비
- ...
이 중 일부는 예측에 큰 영향을 주지 않을 수 있습니다. Lasso Regression은 중요하지 않은 변수의 계수를 0으로 만들어 자동으로 제외시키고, 의미 있는 변수만 모델에 남깁니다.
Lasso를 사용할 때
- 변수가 많을 때
- 특히 고차원 데이터나 다중공선성이 있는 경우 유용합니다.
- 변수 선택이 필요한 경우
- 자동으로 중요 변수만 선택됩니다.
- 모델 해석이 필요할 때
- 불필요한 변수를 제거해 모델이 더 명확해집니다.
Lasso의 한계
- 변수 수가 샘플 수보다 많을 경우 불안정
- 계수가 편향될 수 있음
- 정규화로 인해 계수가 0에 더 가까워짐
- 상관관계가 높은 변수 중 하나만 선택
- 모든 관련 변수를 포착하지 못할 수 있음
비교: Lasso vs Ridge vs ElasticNet
모델 | 정규화 방식 | 변수 제거 | 특징 |
---|---|---|---|
Ridge | L2 (제곱합) | ✗ | 계수를 줄이되 제거하지 않음 |
Lasso | L1 (절댓값합) | ✓ | 일부 계수를 0으로 만들어 제거 |
ElasticNet | L1 + L2 | ✓ | Ridge와 Lasso의 장점 결합 |
Scikit-Learn 코드 예시
from sklearn.linear_model import Lasso
from sklearn.datasets import load_boston
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error
# 데이터 불러오기
X, y = load_boston(return_X_y=True)
# 학습/테스트 분할
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 모델 학습
lasso = Lasso(alpha=1.0)
lasso.fit(X_train, y_train)
# 예측 및 평가
y_pred = lasso.predict(X_test)
print("MSE:", mean_squared_error(y_test, y_pred))
print("Coefficients:", lasso.coef_)
요약
Lasso Regression은 L1 정규화를 통해 모델을 단순화하고 과적합을 줄이는 데 매우 효과적인 회귀 기법입니다. 변수 선택 기능까지 갖추고 있어 해석 가능성과 성능을 동시에 잡을 수 있는 유용한 도구입니다.
고차원 데이터나 해석 가능한 모델이 필요한 상황에서 Lasso는 꼭 알아야 할 핵심 머신러닝 기술입니다.
반응형
'개발 창고 > AI' 카테고리의 다른 글
파이썬으로 배우는 탐색적 데이터 분석 실전 가이드 (3) | 2025.06.28 |
---|---|
파이썬으로 머신러닝 시작하기: Scikit-Learn 핵심 정리 (2) | 2025.06.27 |
RNN이란? – 순서를 기억하는 인공지능 모델 (2) | 2025.06.25 |
Qwen 시리즈: Alibaba의 오픈소스 LLM 혁신 파헤치기 (2) | 2025.06.24 |
LangSmith: LLM 애플리케이션을 위한 프로덕션급 관찰·테스트 플랫폼 (1) | 2025.06.22 |