규제회귀
계수를 줄여 과적합을 막고 예측 안정화
일반적인 회귀분석에서는 데이터에 가장 잘 맞는 회귀계수를 추정합니다. 하지만 설명변수가 많거나 변수끼리 비슷한 정보를 담고 있으면 회귀계수가 불안정해질 수 있습니다. 표본에 지나치게 맞춰진 모형은 새로운 데이터에서 예측 성능이 떨어지기도 합니다.
이런 문제를 완화하기 위해 사용하는 방법이 규제회귀(Regularized Regression)입니다. 회귀계수에 제약을 주어 모형의 복잡성을 조절하는 방식입니다. 대표적인 방법은 Ridge 회귀와 Lasso 회귀이며, 두 방법을 결합한 Elastic Net도 널리 사용됩니다. 맨 위 그림의 원(Ridge)과 마름모(Lasso)가 두 방법의 차이를 요약합니다. 이 장의 그림은 고객 80명의 모의 데이터로 실제 계산한 결과입니다.
왜 규제회귀가 필요할까?
예를 들어 고객의 구매 금액을 예측하기 위해 웹사이트 방문 횟수, 상품 페이지 조회 수, 장바구니에 담은 상품 수, 구매 전 검색 횟수, 상품 페이지 체류 시간, 광고 클릭 횟수를 사용한다고 가정해 보겠습니다. 이 변수들은 서로 관련이 있을 수 있습니다. 웹사이트 방문 횟수가 많은 고객은 상품 페이지도 많이 조회할 가능성이 있기 때문입니다(예제 데이터에서 두 변수의 상관은 0.81입니다).
이처럼 비슷한 정보를 담은 변수가 많으면 회귀계수가 데이터의 작은 변화에도 크게 달라질 수 있습니다(07장). 또한 설명변수가 많을수록 우연한 패턴까지 학습할 위험이 커집니다.
그림 1은 의미 있는 변수 6개에 아무 관련 없는 무작위 변수를 하나씩 더해 가며 일반 회귀를 적합한 결과입니다. 훈련에 쓴 데이터의 오차는 변수가 늘수록 계속 줄어듭니다. 하지만 처음 보는 새 데이터의 오차는 오히려 커지고, 변수가 훈련 표본 수에 가까워지면 급격히 나빠집니다. 모형이 우연한 패턴까지 외워 버린 것, 즉 과적합입니다. 규제회귀는 회귀계수가 지나치게 커지는 것을 억제하여 이러한 문제를 완화합니다.
규제회귀가 어떻게 작동하는지 먼저 전체 흐름을 보면 다음과 같습니다. 이 장의 나머지는 이 흐름의 각 단계를 하나씩 살펴봅니다.
일반 회귀와 규제회귀의 차이
일반적인 최소제곱법(OLS)은 잔차제곱합(SSE)을 최소화합니다. 규제회귀는 여기에 회귀계수의 크기를 제한하는 페널티 항을 추가합니다. 세 방법을 나란히 놓으면 다음과 같습니다.
λ(람다)란? 페널티를 얼마나 세게 줄지 정하는 규제 강도입니다. λ = 0이면 일반 회귀와 같고, 클수록 계수가 더 작아집니다. 회귀계수와 달리 데이터에서 자동으로 계산되지 않고 분석자가 정하는 값이라, 여러 후보를 비교해 고릅니다(섹션 6).
그림 3은 계수가 하나뿐인 단순한 예입니다. 회색 곡선(λ = 0)은 SSE만 있는 경우로, β = 2에서 가장 작습니다. 여기에 β²에 비례하는 페널티를 더하면 곡선의 바닥이 0 쪽으로 옮겨 갑니다. λ = 2이면 1.33, λ = 8이면 0.67입니다. 데이터에 맞추려는 힘과 계수를 작게 유지하려는 힘 사이에서 타협점을 찾는 것입니다.
- λ = 0이면 페널티가 없어 일반적인 최소제곱법과 같은 목적함수가 됩니다.
- λ가 커지면 회귀계수에 더 강한 제약이 적용됩니다.
- 규제가 너무 강하면 중요한 관계까지 과도하게 축소되어 과소적합이 발생할 수 있습니다.
실제 분석에서는 변수의 단위가 서로 다르면 규제의 영향도 달라질 수 있으므로, 일반적으로 설명변수를 표준화한 뒤 규제회귀를 적용합니다. 예를 들어 금액을 원 단위로 쓰면 계수가 아주 작아 페널티를 거의 받지 않고, 백만 원 단위로 쓰면 계수가 커져 강하게 줄어듭니다. 절편은 보통 페널티 대상에서 제외합니다.
Ridge 회귀란?
Ridge 회귀는 회귀계수의 제곱합에 페널티를 부여하는 방법입니다. L2 규제라고도 하며, 식은 섹션 2의 파란 페널티(λ Σ βj²)입니다.
그림 4는 예제 데이터에서 λ를 아주 작은 값부터 큰 값까지 바꾸며 Ridge 계수를 계산한 경로입니다. λ가 커질수록 여섯 계수가 모두 함께 0 쪽으로 줄어들지만, 그래프 오른쪽 끝에서도 정확히 0이 되지는 않습니다. Ridge 회귀는 계수가 지나치게 커지는 것을 억제하면서 여러 변수의 정보를 함께 활용합니다.
- 회귀계수의 크기를 0에 가깝게 줄입니다.
- 일반적으로 계수를 정확히 0으로 만들지는 않습니다.
- 서로 높은 상관관계를 가진 설명변수가 많을 때 계수 추정을 안정화하는 데 도움이 될 수 있습니다.
- 변수 자체를 제거하기보다는 여러 변수의 정보를 유지하는 데 초점을 둡니다.
예를 들어 구매 금액을 예측할 때 방문 횟수와 페이지 조회 수가 모두 유용한 정보라면, Ridge는 두 변수의 계수를 함께 축소하여 모형을 안정화할 수 있습니다.
Lasso 회귀란?
Lasso 회귀는 회귀계수의 절댓값 합에 페널티를 부여하는 방법입니다. L1 규제라고도 하며, 식은 섹션 2의 주황 페널티(λ Σ |βj|)입니다.
Ridge와 달리 Lasso는 일부 회귀계수를 정확히 0으로 만들 수 있습니다. 그림 5에서 λ가 커질수록 계수가 하나씩 0에 닿아 그대로 머무릅니다. 실제로 영향이 없게 만든 체류 시간과 광고 클릭이 가장 먼저 0이 되고, 가장 중요한 장바구니가 가장 오래 남습니다. 계수가 0이 된 변수는 해당 모형의 예측식에 기여하지 않으므로, Lasso는 변수 선택에도 활용됩니다.
- 회귀계수의 절댓값을 줄입니다.
- 일부 계수를 정확히 0으로 만들 수 있습니다.
- 변수 선택과 예측을 동시에 수행할 수 있습니다.
- 서로 높은 상관관계를 가진 변수 중 어떤 변수를 선택할지는 데이터에 따라 불안정할 수 있습니다.
예를 들어 고객 구매 금액을 예측하는 데 50개의 변수가 사용되었다고 가정하겠습니다. Lasso를 적용한 뒤 18개 변수의 계수가 0이 되었다면, 나머지 32개 변수가 해당 규제 수준에서 예측식에 남은 것입니다. 다만 계수가 0이 되었다고 해서 해당 변수가 현실에서 중요하지 않다는 뜻은 아닙니다. 선택 결과는 표본, 변수 간 상관관계, 규제 강도에 따라 달라질 수 있습니다.
Ridge와 Lasso 비교
두 방법의 차이는 계수를 줄이는 방식에서 나옵니다.
그림 6은 설명변수끼리 상관이 없는 단순한 경우를 가정한 예입니다. 이때 Ridge는 모든 계수를 같은 비율로 줄입니다(예: 절반). 그래서 3은 1.5, 0.3은 0.15가 되어 작은 계수도 작게나마 남습니다. Lasso는 모든 계수에서 같은 양을 뺍니다(예: 0.6). 그래서 3은 2.4가 되지만, 0.3처럼 빼는 양보다 작은 계수는 0 아래로 내려가는 대신 정확히 0이 됩니다. 맨 위 그림에서 Lasso의 마름모 꼭짓점에 닿으면 계수가 0이 되는 것과 같은 원리입니다.
| 비교 항목 | Ridge | Lasso |
|---|---|---|
| 규제 방식 | 계수 제곱합(L2) | 계수 절댓값 합(L1) |
| 계수 축소 | 가능 | 가능 |
| 계수를 정확히 0으로 만들기 | 일반적으로 어려움 | 가능 |
| 변수 선택 | 직접적인 변수 제거 효과는 없음 | 가능 |
| 상관관계가 높은 변수 | 여러 변수의 계수를 함께 축소할 수 있음 | 일부 변수만 선택할 수 있음 |
| 적합한 상황 | 여러 변수가 함께 유용할 때 | 변수 수를 줄이고 싶을 때 |
어느 방법이 항상 더 우수한 것은 아닙니다. 예측 정확도가 목적이라면 교차검증으로 성능을 비교하고, 변수 선택과 해석 가능성이 중요하다면 선택된 변수와 계수의 안정성도 확인해야 합니다.
규제 강도 λ는 어떻게 결정할까?
규제 강도 λ는 규제회귀의 핵심 설정값입니다.
- 규제가 약할 때: 계수가 상대적으로 크게 유지되어 데이터에 더 유연하게 맞출 수 있습니다.
- 규제가 강할 때: 계수가 더 많이 축소되어 모형이 단순해질 수 있습니다.
- 규제가 지나치게 강할 때: 중요한 변수의 영향까지 축소되어 예측 성능이 나빠질 수 있습니다.
일반적으로 여러 λ 후보를 비교하고, 교차검증(Cross-validation)을 통해 적절한 값을 선택합니다. 훈련 데이터를 여러 조각으로 나눠, 한 조각을 빼고 학습한 모형으로 뺀 조각을 예측하는 일을 조각마다 반복해 평균 오차를 구합니다. 예제 데이터에서 5-겹 교차검증으로 고른 값은 Ridge λ ≈ 6.6, Lasso λ ≈ 0.11였고, 이때 Lasso는 영향이 없게 만든 체류 시간과 광고 클릭의 계수를 정확히 0으로 만들었습니다. 실무에서는 보통 다음과 같은 절차를 따릅니다.
- 훈련 데이터와 평가 데이터를 분리합니다.
- 훈련 데이터 안에서 교차검증을 수행합니다.
- 여러 규제 강도의 성능을 비교합니다.
- 선택한 설정으로 훈련 데이터를 다시 학습합니다.
- 별도로 보관한 평가 데이터에서 최종 성능을 확인합니다.
표준화와 변수 선택을 포함한 전처리도 각 교차검증의 훈련 구간 안에서 수행해야 합니다. 전체 데이터로 먼저 표준화하거나 변수를 선택하면 평가 데이터의 정보가 학습 과정에 유입되는 데이터 누수(Data Leakage)가 발생할 수 있습니다. 그러면 시험 문제를 미리 본 것처럼 성능이 실제보다 좋게 평가됩니다.
보고서에는 다음과 같이 작성할 수 있습니다.
고객 80명의 구매 금액을 6개 설명변수로 예측하기 위해 규제회귀를 적용하였다. 5-겹 교차검증으로 선택한 규제 강도는 Ridge λ ≈ 6.6, Lasso λ ≈ 0.11이었으며, 선택된 Lasso 모형에서는 체류 시간과 광고 클릭의 계수가 0으로 축소되어 방문 횟수, 상품 페이지 조회 수, 장바구니 상품 수, 검색 횟수의 4개 변수가 예측식에 남았다.
Elastic Net이란?
Elastic Net은 Ridge의 L2 규제와 Lasso의 L1 규제를 결합한 방법입니다.
여기서 λ는 전체 규제 강도이고, α는 두 규제의 상대적인 비중을 조절합니다. 이 식의 계수 정규화는 설명을 위한 일반적인 형태이며, 실제 소프트웨어에 따라 목적함수의 스케일링은 다를 수 있습니다.
- α = 1: Lasso와 같은 형태
- α = 0: Ridge와 같은 형태
- 0 < α < 1: 두 규제를 결합한 형태
Elastic Net은 설명변수가 많고 서로 높은 상관관계를 보이는 상황에서 유용한 후보가 될 수 있습니다. Lasso는 비슷한 변수 중 하나만 고르고 나머지를 버리는 경향이 있는데, Elastic Net은 L2 부분 덕분에 비슷한 변수들을 묶어서 함께 남기거나 함께 뺍니다. 변수 선택 효과를 유지하면서 상관된 변수 집합을 다루는 데 도움을 줄 수 있습니다.
실제 분석에서는 어떻게 활용할까?
예를 들어 설문조사 데이터로 고객의 전반적인 만족도를 예측한다고 가정하겠습니다. 설명변수에는 서비스 품질, 응답 속도, 사용 편의성, 신뢰도, 재이용 의향 등 여러 항목이 포함될 수 있습니다. 이 항목들은 서로 관련되어 있을 수 있고, 변수 수도 많을 수 있습니다.
| 분석 목적 | 고려할 방법 | 이유 |
|---|---|---|
| 여러 변수의 정보를 유지하면서 예측 | Ridge | 계수를 축소해 모형을 안정화 |
| 예측에 필요한 변수 수를 줄이고 싶음 | Lasso | 일부 계수를 0으로 만들 수 있음 |
| 상관된 변수가 많고 변수 선택도 필요 | Elastic Net | L1과 L2 규제를 결합 |
| 각 변수의 효과를 통계적으로 해석하고 싶음 | 일반 회귀 등과 함께 검토 | 규제회귀 계수만으로 전통적인 유의성 검정을 대체하기 어려움 |
규제회귀는 예측 성능을 개선하는 데 초점을 둔 방법입니다. 따라서 규제회귀에서 선택된 변수가 곧바로 원인 변수라는 뜻은 아닙니다. 또한 일반적인 OLS의 표준오차와 p값을 규제회귀 계수에 그대로 적용해 해석해서는 안 됩니다. 계수가 일부러 0 쪽으로 당겨져 있기 때문입니다.
규제회귀를 사용할 때 주의할 점
- 변수 표준화: 단위가 다른 변수는 표준화하지 않으면 규제의 영향이 불균형해질 수 있습니다.
- 교차검증: 훈련 데이터에 대한 성능만 보고 규제 강도를 결정하지 않습니다.
- 변수 선택의 안정성: Lasso가 선택한 변수가 표본 변화에도 계속 선택되는지 살펴볼 수 있습니다.
- 해석과 예측의 구분: 예측 성능이 좋은 모형이 반드시 인과관계를 설명하는 데 가장 적합한 모형은 아닙니다.
- 기준 모형과 비교: 규제회귀를 적용하기 전후의 성능을 단순 회귀나 OLS 등과 비교합니다.
규제를 통해 과적합을 줄이고 예측의 안정성을 높입니다.
- 규제회귀는 회귀계수에 페널티를 부여하여 모형의 복잡성을 조절합니다.
- Ridge는 계수를 축소하는 데 초점을 두며, 일반적으로 계수를 정확히 0으로 만들지는 않습니다.
- Lasso는 일부 계수를 0으로 만들어 변수 선택 효과를 낼 수 있습니다.
- Elastic Net은 L1과 L2 규제를 결합합니다.
- 규제 강도는 교차검증으로 선택하고, 표준화와 데이터 누수 방지에 주의해야 합니다.
다음은 11 로버스트 회귀와 분위회귀입니다. 극단적인 관측값이 회귀 결과에 미치는 영향을 줄이는 방법과, 평균이 아니라 중앙값이나 특정 분위수에 해당하는 관계를 분석하는 방법을 알아봅니다.
규제회귀는 SSE에 λ × 페널티를 더해 계수를 0 쪽으로 당깁니다. Ridge(제곱)는 모두 비율로 줄이고, Lasso(절댓값)는 같은 양을 빼서 작은 계수를 0으로 만듭니다. λ는 교차검증으로 고르고, 표준화는 훈련 구간 안에서 하며, 규제 계수에 OLS의 p값을 쓰지 않습니다.