데이터분석데브코스 8/이론
8주차 9. 선형 회귀와 선형 분류
DataJ
2025. 5. 22. 18:39
1. 선형이란 무엇인가?
✅ 개념 정의
- 선형관계: 독립변수의 변화가 종속변수에 일정한 비율로 영향을 주는 관계
- 과자 (일가용: 1500원) + 우유 (1200원)을 고르면:
TotalCost = num_과자 × 1500 + num_우유 × 1200
▶️ 시간에 따라 과자와 우유의 수량이 TotalCost에 일정한 비율로 영향을 주면 "선형관계"라 부릅니다.
✅ 선형 모델 (Linear Model)
▶️ 기본 수식
- 변수:
y = w₁x₁ + w₂x₂ + ... + wₙxₙ
- 사용자 입력 값(x)과 파라미터(w)를 곱해 계산
- 이 모델은 다음과 같이 시각화됨:
- 2D: 직선
- 3D: 평면
- 고차원: 초평면 (Hyperplane)
2. 선형 회귀 (Linear Regression)
✅ 회귀 모델 수식
- ŷ = w₀ + w₁x₁ + w₂x₂ + ... + wₙxₙ
- → 편향(bias, w₀) 포함
✅ 비용 함수 (Loss Function)
- 평균 제곱 오차 (MSE):
- J(w) = (1/n) ∑(y - ŷ)²
- 회귀에서는 이 오차를 최소화하는 w 값을 찾는 것이 목표
▶️ 손실 함수: MSE (Mean Squared Error)
- 각 포인트에서 예측값과 실제값의 차이를 제곱해 평균
J(w) = (1/n) Σ (yᵢ - ŷᵢ)²
✅ 최적화 방법
- 정규방정식 (Normal Equation)
- 해를 직접 계산
- w = (XᵀX)⁻¹Xᵀy
- 경사하강법 (Gradient Descent)
- 반복적으로 기울기 방향으로 파라미터를 업데이트
- 학습률(learning rate) 설정이 중요
▶️ 예외 상황: 단순 선형 관계가 아닐 경우, 특이값 분해(SVD) 방식으로 해결 가능
✅ 확률적 경사하강법 (SGD)
- 전체 데이터가 너무 클 경우 일부 샘플을 사용해 학습
- 빠르게 수렴 가능, 특히 n ≫ p 상황에서 유리
3. 다중공선성 (Multicollinearity)
✅ 문제점
- 독립 변수 간 높은 상관관계 → 모델 불안정
- XᵀX가 역행렬을 가질 수 없음 → 정규방정식 사용 불가
✅ 해결책: SVD-OLS
- 특이값 분해(SVD)를 통해 역행렬 없이 해 구하기
- 수식: w = VΣ⁻¹Uᵀy
4. 규제가 있는 회귀 모델
✅ 과적합 방지
- 파라미터 w가 너무 커지는 것을 억제
✅ 라쏘 회귀 (Lasso, L1 규제)
- 비용 함수: J(w) + α‖w‖₁
- 변수 중 일부를 0으로 만들어 불필요한 변수 제거
✅ 릿지 회귀 (Ridge, L2 규제)
- 비용 함수: J(w) + α‖w‖²
- 변수의 크기를 줄이되 0에는 도달하지 않음
5. 로지스틱 회귀/ 선형 분류 (Logistic Regression)
✅ 개요
- 이진 분류 문제 해결에 사용
- 확률 예측 기반 분류 (예: 0.7 → Positive, 0.3 → Negative)
✅ 모델 수식
- logit = w₀ + w₁x₁ + ... + wₙxₙ
- 확률 변환 함수 (시그모이드 함수):→ 항상 0~1 사이 확률 반환
- σ(x) = 1 / (1 + exp(−x))
✅ 비용 함수
▶️ 손실 함수: Log Loss
J(w) = - [ y * log(p̂) + (1 - y) * log(1 - p̂) ]
- 전체 데이터에 대한 평균:
J(w) = (1/n) Σ - [ yᵢ log(p̂ᵢ) + (1 - yᵢ) log(1 - p̂ᵢ) ]
▶️ 파라미터 업데이트 (Gradient Descent):
w ← w - lr * (p̂ - y) * x
- Chain Rule을 사용해 계산
✅ 최적화
- 경사하강법으로 파라미터 w 업데이트→ 미분 결과: ∂J/∂w = (p̂ − y) x
- w ← w − lr × ∇J(w)
✅ 분류 확장
- 다중 클래스 분류 시:
- OvO (One-vs-One)
- OvR (One-vs-Rest)
- Softmax Regression 사용 가능
✅ OvO (One-vs-One, 일대일 분류)
- 아이디어: 모든 클래스 쌍에 대해 각각 이진 분류기를 학습시킵니다.
- 예: 클래스 A, B, C가 있다면 → A vs B, A vs C, B vs C (총 3개 분류기)
- 예측 시: 다수결로 클래스 결정
📌 장점: 각 분류기가 적은 데이터를 다루므로 빠를 수 있음
📌 단점: 클래스 수가 많아질수록 분류기 수도 급증 (n(n-1)/2)
✅ OvR (One-vs-Rest, 일대다 분류)
- 아이디어: 각 클래스를 하나의 분류기로 설정하고, 나머지 클래스를 모두 "그 외"로 둡니다.
- 예: A vs (B, C), B vs (A, C), C vs (A, B) → 총 3개 분류기
- 예측 시: 가장 높은 확률을 출력한 분류기의 클래스를 선택
📌 장점: 구현이 간단하고 직관적
📌 단점: 클래스 불균형에 민감할 수 있음
✅ Softmax Regression (다중 클래스 로지스틱 회귀)
- 아이디어: 여러 클래스를 동시에 처리할 수 있는 일반화된 로지스틱 회귀
- 모든 클래스에 대해 확률을 출력하고, 총합이 1이 되도록 정규화
- 수식:
- P(class_i) = exp(zᵢ) / Σ exp(zⱼ)
- 보통 딥러닝에서도 출력층에서 사용되는 방식
📌 장점: 확률적으로 해석 가능, 하나의 모델로 처리
📌 단점: 수학적으로 복잡하고 계산량 많음
💡 예시로 정리
클래스 OvO OvR Softmax
A, B, C | A vs B, A vs C, B vs C | A vs (B+C), B vs (A+C), C vs (A+B) | 하나의 모델로 A/B/C 확률 모두 계산 |