본문 바로가기
C.W.K.
Stream
Lesson 05 of 05 · published

Linear이 통할 때와 깨질 때

~26 min · linear, limitations

Level 0Scout
0 XP0/48 lessons0/11 achievements
0/120 XP to next level120 XP to go0% complete

선형 모델이 강한 조건

적절한 변환 뒤에 각 특성의 효과가 대략 더하기로 결합되고 관계가 한 방향으로 움직인다면 선형 모델은 아주 강한 선택이야. 작은 자료에서도 안정적으로 맞고, 학습과 제공이 빠르며, 계수로 동작을 설명하기 쉽지. 계산 자원과 운영 장치가 적어도 되므로 성능 차이가 작다면 복잡한 모델보다 실제 제품에서 더 나을 수 있어.

잔차가 놓친 구조를 말해줘

예측값이나 각 주요 특성에 대해 잔차를 그려. 점들이 무작위로 흩어져야 선형 구조가 대체로 맞는 거야. U자나 물결 모양이면 굽은 관계를, 부채꼴이면 값에 따라 달라지는 분산을, 집단별 띠는 빠진 범주나 상호작용을 의심해. 평균 점수 하나로는 이런 실패 모양이 보이지 않아.

효과가 다른 특성에 의존할 때

광고비의 효과가 계절에 따라 다르거나 할인 효과가 고객 등급에 따라 달라지면 단순 덧셈만으로 부족해. 도메인 지식이 분명하다면 두 특성의 곱인 상호작용 항을 추가할 수 있어. 후보를 무작정 모두 곱하면 열 수가 제곱으로 늘고 설명도 어려워지므로 가설이 있는 항부터 교차검증해.

관계가 굽거나 방향을 바꿀 때

온도가 오를수록 수요가 줄다가 어느 지점부터 다시 늘 수 있어. 구간 나누기, 스플라인, 낮은 차수 다항식으로 모양을 표현할 수 있지. 변환 뒤 잔차 패턴이 사라지는지 확인해. PolynomialFeatures의 차수를 함부로 높이면 50개 원본 열이 수만 개 항으로 폭발할 수 있어.

오차 분산이 일정하지 않을 때

예측 규모가 커질수록 잔차 폭도 커지는 이분산성은 매출과 지연 시간에서 흔해. 목표값 로그 변환, 표본별 가중 회귀, 분위수 회귀를 비교하고 원래 단위에서도 평가해. 평균 예측이 비슷해도 불확실성 구간이 크게 다를 수 있으니 중요한 규모 구간별 오차를 따로 봐야 해.

범주가 너무 많을 때

상품이나 우편번호처럼 값 종류가 수천 개면 원-핫 인코딩이 거대한 희소 행렬을 만들고 새 범주 대응도 어려워져. 누출을 막은 목표 인코딩, 빈도 인코딩, 해싱, 범주 처리를 지원하는 나무 모델을 비교해. 희귀 범주를 묶을 때 중요한 집단의 신호를 지우지 않는지도 확인하고.

정직한 업그레이드 경로

선형 모델이 깨졌다고 곧장 깊은 신경망으로 뛰지 마. 먼저 변환과 소수의 상호작용을 고치고, 그다음 그래디언트 부스팅 결정나무를 비교해. 나무는 상호작용, 비단조 관계, 결측, 다양한 열을 비교적 적은 준비로 다루면서 학습도 빠른 편이야. 같은 분할과 지표에서 얻은 향상이 유지 비용을 정당화할 때만 업그레이드해.

Code

선형 모델에 명시적인 상호작용 특성 추가·python
from sklearn.preprocessing import PolynomialFeatures
from sklearn.pipeline import Pipeline
from sklearn.linear_model import Ridge

pipe = Pipeline([
    ("poly", PolynomialFeatures(degree=2, interaction_only=True, include_bias=False)),
    ("ridge", Ridge(alpha=1.0)),
])
선형 관계가 부족할 때 그래디언트 부스팅 비교·python
import lightgbm as lgb

model = lgb.LGBMRegressor(n_estimators=500, learning_rate=0.05).fit(
    X_train, y_train, eval_set=[(X_val, y_val)], callbacks=[lgb.early_stopping(20)]
)

External links

Exercise

같은 데이터 분할에 Ridge와 LightGBM 회귀기를 맞춰 RMSE, MAE, 잔차 그림, 제공 복잡도를 비교해. LightGBM의 향상이 5%보다 작다면 어느 쪽을 배포할지 세 문장으로 정당화해.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고
💛 by 피파warm

댓글 2

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.
  1. young-hoon Kim
    young-hoon Kim

    회귀분석 강의에서 반드시 짚고 넘어가야 할 함정 있잖아. 만약 데이터가 범죄발생수(target), 연도, 인구수, 교회수 라고 하자. 회귀 분석을 한다면 해당 데이터는 범죄발생수와 교회수의 증가가 밀접한 관계를 이루게 되고 결국 "교회수가 많을수록 범죄가 많다" 는 통계적으로 유의한 양(+)의 계수가 나올수가 있잖아, 이러한 모순을 필터링하는 단계가 있을까?

    💛 by 똘이warm💛 by 피파warm
    1. 피파
      피파· seriousyoung-hoon Kimyoung-hoon Kim

      네, 이건 회귀분석에서 아주 중요한 함정이에요. 자동으로 “모순 필터”가 따로 있는 건 아니고, 모델링 전에 범죄발생수를 인구 대비 비율로 바꾸고, 연도·인구·도시화 같은 공통 원인을 함께 통제한 뒤, 그래도 교회수 계수가 남는지 봐야 해요.

      핵심은 “통계적으로 유의하다”가 곧 “원인이다”는 뜻이 아니라는 점이에요. 이 예시는 오히려 상관관계와 인과관계를 구분하는 좋은 사례라서, regression quest 안에서도 꼭 한 번 다룰 만한 함정이에요.