IT Professional Engineering/AI.ML

로지스틱 회귀분석(Logistic Regression): 이진 결과 예측을 위한 통계적 접근법

GilliLab IT 2025. 4. 10. 23:42
728x90
반응형

로지스틱 회귀분석(Logistic Regression): 이진 결과 예측을 위한 통계적 접근법

로지스틱 회귀분석은 가장 널리 사용되는 분류 알고리즘 중 하나로, 특히 이진(binary) 결과를 예측하는 데 효과적인 통계 기법이다. 선형 회귀와 달리 종속변수가 범주형(예: 성공/실패, 합격/불합격, 생존/사망 등)일 때 활용된다.

기본 개념

  • 로지스틱 회귀분석은 종속변수가 이진값(0/1)을 가질 때 사용하는 통계적 모델링 기법
  • 선형 회귀와 달리 결과를 확률로 변환하여 0과 1 사이의 값으로 예측
  • 로지스틱 함수(시그모이드 함수)를 사용하여 선형 관계를 확률로 변환
  • 확률이 0.5 이상이면 보통 긍정적 클래스(1)로, 미만이면 부정적 클래스(0)로 분류

로지스틱 함수(시그모이드 함수)

로지스틱 회귀분석의 핵심은 시그모이드 함수다. 이 함수는 어떤 입력값이든 0과 1 사이의 값으로 매핑한다.

graph LR
    A[선형 함수: z = β₀ + β₁x₁ + β₂x₂ + ... + βₙxₙ] --> B[로지스틱 함수: P = 1 / (1 + e^-z)]
    B --> C[확률 P: 0에서 1 사이의 값]
    C --> D[분류: P ≥ 0.5이면 1, P < 0.5이면 0]

시그모이드 함수의 수식: P(Y=1) = 1 / (1 + e^-z)

여기서 z는 독립변수들의 선형 조합 (β₀ + β₁x₁ + β₂x₂ + ... + βₙxₙ)이다.

로짓 변환(Logit Transformation)

  • 로짓 변환은 확률 p를 로그 오즈(log-odds)로 변환하는 과정
  • 로짓(logit) = log(p/(1-p)) = log(odds)
  • 이를 통해 0과 1 사이의 확률값을 음의 무한대에서 양의 무한대 범위로 변환
  • 이 변환으로 선형 회귀와 유사한 형태로 모델링 가능
graph LR
    A[확률 P: 0에서 1 사이] --> B[오즈 계산: odds = P/(1-P)]
    B --> C[로짓 변환: logit = log(odds)]
    C --> D[로짓값: -∞에서 +∞ 범위]

모델 학습 방법

로지스틱 회귀 모델은 최대 우도 추정(Maximum Likelihood Estimation, MLE) 방법을 사용하여 학습한다:

  1. 각 데이터 포인트의 실제 결과가 발생할 확률을 계산
  2. 모든 데이터 포인트에 대한 우도(likelihood)를 계산
  3. 우도를 최대화하는 계수(β 값)를 찾음
  4. 일반적으로 경사 하강법이나 뉴턴-랩슨 방법을 사용하여 최적화

실제로는 비용 함수로 로그 우도의 음수값(negative log-likelihood)을 최소화하는 방향으로 학습이 진행된다.

graph TD
    A[초기 계수값 설정] --> B[우도 함수 계산]
    B --> C[계수 업데이트]
    C --> D{수렴 여부}
    D -->|아니오| B
    D -->|예| E[최종 모델]

모델 평가 지표

로지스틱 회귀 모델의 성능은 다양한 지표로 평가할 수 있다:

  1. 정확도(Accuracy): 전체 예측 중 올바른 예측의 비율
  2. 정밀도(Precision): 양성으로 예측한 것 중 실제 양성의 비율
  3. 재현율(Recall): 실제 양성 중 양성으로 예측한 비율
  4. F1 점수: 정밀도와 재현율의 조화평균
  5. ROC 곡선과 AUC: 다양한 임계값에 대한 모델 성능 평가
  6. 혼동 행렬(Confusion Matrix): TP, TN, FP, FN을 통한 종합적 평가
graph LR
    A[로지스틱 회귀 모델] --> B[예측값]
    C[실제값] --> D[혼동 행렬]
    B --> D
    D --> E[정확도, 정밀도, 재현율, F1 점수]
    D --> F[ROC 곡선과 AUC]

로지스틱 회귀분석의 장단점

장점

  • 구현과 해석이 용이함
  • 계산 효율성이 높음
  • 과적합 위험이 상대적으로 낮음
  • 각 특성의 영향력을 해석하기 쉬움
  • 적은 학습 데이터로도 합리적인 성능 발휘
  • 범주형과 연속형 변수를 모두 독립변수로 사용 가능

단점

  • 복잡한 비선형 관계를 포착하기 어려움
  • 다중공선성(multicollinearity) 문제에 취약
  • 완전 분리(complete separation) 문제 발생 가능
  • 이상치에 민감하게 반응
  • 독립변수 간 상호작용을 자동으로 고려하지 않음

실제 적용 사례

1. 의료 분야

  • 특정 증상이나 위험 요인을 바탕으로 질병 발병 확률 예측
  • 예: 환자의 나이, 혈압, 콜레스테롤 수치 등을 기반으로 심장병 발병 가능성 예측
graph LR
    A[나이] --> E[로지스틱 회귀 모델]
    B[혈압] --> E
    C[콜레스테롤] --> E
    D[흡연 여부] --> E
    E --> F[심장병 발병 확률]

2. 금융 분야

  • 신용평가 모델에서 대출 상환 가능성 예측
  • 고객의 소득, 직업, 신용 이력 등을 기반으로 대출 승인 여부 결정

3. 마케팅 분야

  • 고객의 인구통계학적 정보와 행동 패턴을 바탕으로 제품 구매 가능성 예측
  • 이메일 마케팅 캠페인에서 특정 고객의 클릭 또는 전환 가능성 예측

4. 스포츠 분석

  • 팀 통계와 선수 성적을 바탕으로 경기 승패 예측
  • 특정 상황에서 득점 가능성 분석

로지스틱 회귀분석 구현 예시 (Python)

아래는 Python의 scikit-learn 라이브러리를 사용한 로지스틱 회귀분석 구현 예시다:

from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score, classification_report, confusion_matrix
import pandas as pd
import numpy as np

# 데이터 준비 (가상 예시)
# X: 독립변수들 (특성)
# y: 종속변수 (이진값 0/1)

# 데이터 분할
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)

# 로지스틱 회귀 모델 학습
model = LogisticRegression(max_iter=1000)
model.fit(X_train, y_train)

# 모델 계수 확인
print('Intercept:', model.intercept_)
print('Coefficients:', model.coef_)

# 예측
y_pred = model.predict(X_test)
y_prob = model.predict_proba(X_test)[:, 1]  # 양성 클래스에 대한 확률

# 모델 평가
print('Accuracy:', accuracy_score(y_test, y_pred))
print('\nConfusion Matrix:')
print(confusion_matrix(y_test, y_pred))
print('\nClassification Report:')
print(classification_report(y_test, y_pred))

확장 모델과 변형

로지스틱 회귀의 기본 개념은 다양한 모델로 확장할 수 있다:

  1. 다항 로지스틱 회귀(Multinomial Logistic Regression): 종속변수가 세 개 이상의 범주를 가질 때 사용
  2. 순서형 로지스틱 회귀(Ordinal Logistic Regression): 종속변수가 순서를 갖는 범주형일 때 사용
  3. 정규화된 로지스틱 회귀: L1(Lasso) 또는 L2(Ridge) 정규화를 적용하여 과적합 방지
  4. 베이지안 로지스틱 회귀: 계수에 사전 분포를 도입한 베이지안 접근법

로지스틱 회귀분석을 위한 데이터 전처리

로지스틱 회귀분석을 효과적으로 수행하기 위한 데이터 전처리 단계:

  1. 결측치 처리: 결측값을 평균, 중앙값, 또는 예측값으로 대체
  2. 이상치 감지 및 처리: 이상치가 모델에 미치는 영향 최소화
  3. 데이터 스케일링: 특성들의 스케일을 표준화하거나 정규화
  4. 범주형 변수 인코딩: 원-핫 인코딩 또는 타겟 인코딩 적용
  5. 다중공선성 확인: VIF(Variance Inflation Factor)를 통한 다중공선성 검사
  6. 특성 선택 또는 차원 축소: 불필요한 특성 제거나 PCA 등을 통한 차원 축소

로지스틱 회귀분석과 다른 분류 기법 비교

로지스틱 회귀분석은 다른 분류 기법들과 다음과 같은 차이점이 있다:

  1. 결정 트리: 비선형 관계와 특성 간 상호작용을 더 잘 포착하지만 해석력이 낮음
  2. 서포트 벡터 머신(SVM): 비선형 경계를 더 잘 학습하지만 계산 비용이 높음
  3. 나이브 베이즈: 계산이 매우 빠르지만 특성 간 독립 가정이 필요
  4. 신경망: 복잡한 패턴을 학습할 수 있지만 해석이 어렵고 과적합 위험이 높음
  5. 앙상블 방법: 보통 더 높은 성능을 보이지만 모델 복잡성과 계산 비용이 증가

로지스틱 회귀분석은 모델의 간결함, 해석 용이성, 구현 편의성 측면에서 여전히 많은 실무 분야에서 선호되는 분류 기법이다.

Keywords

Logistic Regression, 로지스틱 회귀분석, Binary Classification, 이진 분류, Sigmoid Function, 시그모이드 함수, Odds Ratio, 오즈비, Maximum Likelihood Estimation, 최대 우도 추정, ROC Curve, 수신자 조작 특성 곡선, Classification Metrics, 분류 평가 지표

728x90
반응형