라쏘 회귀(Lasso Regression)는 선형 회귀(Linear Regression)에 L1 정규화(Regularization)를 추가한 모델입니다.
라쏘(Lasso)는 Least Absolute Shrinkage and Selection Operator의 약자로, 변수 선택(Feature Selection) 기능을 제공하는 것이 특징입니다.
1. 라쏘 회귀의 핵심 개념
- 선형 회귀의 과적합(Overfitting) 문제 해결
- L1 정규화(Regularization) 적용
- 일부 회귀 계수를 0으로 만들어 변수 선택 기능 제공
라쏘 회귀는 불필요한 변수의 회귀 계수를 0으로 만들어 모델을 간소화하는 역할을 합니다.
따라서 고차원 데이터에서 중요하지 않은 변수를 자동으로 제거하는 데 유용합니다.
2. 라쏘 회귀 수식
라쏘 회귀는 기존 선형 회귀의 비용 함수(손실 함수)에 L1 패널티를 추가한 형태입니다.

- 첫 번째 항: 일반적인 선형 회귀의 손실 함수(Mean Squared Error, MSE)
- 두 번째 항: L1 정규화 패널티(Regularization Term)
- λ(람다): 정규화 강도를 조절하는 하이퍼파라미터
- λ가 클수록 → 많은 변수의 가중치가 0이 되어 변수 선택 효과 발생
- λ가 작을수록 → 선형 회귀와 유사하게 동작
3. 라쏘 회귀의 특징
✅ 변수 선택(Feature Selection) 기능 제공
- 일부 회귀 계수를 0으로 만들어 불필요한 변수 제거
- 고차원 데이터에서 중요한 변수만 선택하는 데 유용
✅ 과적합 방지
- 모델이 너무 복잡해지는 것을 방지하여 일반화 성능을 향상시킴
✅ L1 정규화 적용
- 릿지 회귀(Ridge)와 달리 일부 변수의 계수를 0으로 만들기 때문에 해석이 쉬움
✅ 다중 공선성 해결 가능
- 다중 공선성이 있는 데이터에서도 효과적으로 동작
4. 릿지 회귀(Ridge) vs. 라쏘 회귀(Lasso)
비교 항목 | 릿지 회귀 (Ridge) | 라쏘 회귀 (Lasso) |
---|---|---|
정규화 방식 | L2 정규화 (제곱합) | L1 정규화 (절댓값 합) |
과적합 방지 | 가능 | 가능 |
변수 선택 기능 | 없음 | 있음 (일부 가중치를 0으로 만듦) |
다중 공선성 해결 | 효과적 | 효과적이지만 릿지보다 덜 안정적 |
모델 해석 | 복잡 (모든 변수 사용) | 간결 (불필요한 변수 제거) |
💡 릿지는 모든 변수를 사용하지만 가중치를 줄이고, 라쏘는 불필요한 변수는 완전히 제거함.
5. 라쏘 회귀의 예제 코드 (Python)
import numpy as np
import matplotlib.pyplot as plt
from sklearn.linear_model import Lasso
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.datasets import make_regression
# 데이터 생성
X, y = make_regression(n_samples=100, n_features=10, noise=10, random_state=42)
# 데이터 스케일링
scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)
# 훈련/테스트 데이터 분할
X_train, X_test, y_train, y_test = train_test_split(X_scaled, y, test_size=0.2, random_state=42)
# 라쏘 회귀 모델 학습
lasso = Lasso(alpha=0.1) # λ = 0.1
lasso.fit(X_train, y_train)
# 회귀 계수 확인
print("Lasso 회귀 계수:", lasso.coef_)
# 중요하지 않은 변수들은 계수가 0이 됨
plt.bar(range(len(lasso.coef_)), lasso.coef_)
plt.xlabel("Feature Index")
plt.ylabel("Coefficient Value")
plt.title("Lasso Regression Coefficients")
plt.show()
📌 일부 계수가 0이 되는 것을 확인할 수 있음!
즉, 불필요한 변수를 자동으로 제거하는 효과가 있음.
6. 라쏘 회귀를 사용하는 경우
✅ 변수 선택이 필요한 경우
- 중요하지 않은 변수를 자동으로 제거하여 모델을 단순화하고 해석 가능성을 높임
✅ 고차원 데이터셋을 다룰 때
- 입력 변수가 많고, 일부만 중요한 경우 효과적
✅ 과적합을 방지하고 싶을 때
- 불필요한 변수를 제거하여 모델의 복잡도를 낮춤
✅ 모델을 해석하기 쉽게 만들고 싶을 때
- 가중치가 0인 변수는 모델에 영향을 주지 않으므로 분석이 쉬워짐
7. 결론: 한 줄 요약
라쏘 회귀(Lasso Regression) 는 선형 회귀에 L1 정규화를 적용하여 불필요한 변수를 자동으로 제거하는 모델입니다.
고차원 데이터에서 변수 선택(Feature Selection)이 필요할 때 유용하며, 과적합을 방지하는 데에도 효과적입니다. 🚀