본문 바로가기
Computer Science

데이터 사이언스 입문: 로지스틱 회귀(Logistic Regression) 알아보기

by 김🍒 2023. 6. 5.

사물과 사물 사이, 현상과 현상 사이에는 항상 어떤 연결고리가 존재합니다. 이런 연결고리를 수학적으로 표현하고 예측하려는 도구 중 하나가 바로 '로지스틱 회귀'입니다. 로지스틱 회귀는 통계학과 머신러닝 분야에서 널리 사용되는 중요한 기법입니다. 이번 블로그 글에서는 이 로지스틱 회귀에 대해 자세히 알아보려 합니다. 기본적인 개념부터 실제 데이터를 가지고 모델을 생성하는 방법까지, 로지스틱 회귀에대해 알아보겠습니다.

 

목차

     

    서론

    로지스틱 회귀는 머신 러닝의 분류 문제를 해결하기 위한 강력한 도구입니다. 예를 들어, 메일이 스팸인지 아닌지, 거래가 사기인지 아닌지, 학생이 시험에 합격할지 불합격할지 등을 예측하는 데 사용됩니다. 이름에 '회귀'라는 단어가 들어가 있지만, 실제로는 분류 문제를 다루는 방법입니다.

     

    로지스틱 회귀의 이론적 배경

    로지스틱 회귀는 이름에서 알 수 있듯이, 선형 회귀와 관련이 있습니다. 하지만 주요 차이점은 로지스틱 회귀는 결과 변수가 이진 변수 (예: 예/아니오, 참/거짓)인 경우에 사용된다는 것입니다. 이러한 이진 결과를 모델링하기 위해, 로지스틱 회귀는 로지스틱 함수 또는 시그모이드 함수라는 특별한 함수를 사용합니다. 이 함수는 모든 실수 값을 0과 1 사이의 값으로 변환합니다. 이러한 특성 때문에 로지스틱 회귀는 확률을 예측하는 데 적합합니다.

    sigmoid function
    sigmoid 출처: https://en.wikipedia.org/wiki/Sigmoid_function

     

    로지스틱 회귀의 기본 구성 요소

    로지스틱 회귀는 여러 독립 변수를 기반으로 이진 종속 변수를 예측합니다. 예를 들어, 독립 변수로서 나이, 키, 몸무게 등이 있고, 종속 변수로서 특정 질병에 걸릴 확률을 예측할 수 있습니다.

    이때 로지스틱 회귀 모델은 종속 변수의 로그-오즈를 독립 변수의 선형 결합으로 나타냅니다. "오즈(odds)"는 특정 이벤트가 발생할 확률과 그렇지 않을 확률의 비율을 의미합니다. 만약 어떤 사람이 특정 질병에 걸릴 확률이 p라면, 그 사람이 그 질병에 걸리지 않을 확률은 1-p이므로, 그 사람이 그 질병에 걸릴 "오즈"는 p/(1-p)입니다.

    이 오즈에 로그를 취한 것이 "로그-오즈(log-odds)"이며, 로지스틱 회귀 모델은 이 로그-오즈를 독립 변수와 회귀 계수의 선형 결합으로 표현합니다. 즉, 로지스틱 회귀 모델의 기본적인 형태는 다음과 같습니다.

    Logistic Regression 기본 형태
    Logistic Regression의 기본적인 형태

    이 식에서 $p$는 종속 변수(특정 질병에 걸릴 확률)이고, $x_i$는 $i$번째 독립 변수(나이, 키, 몸무게 등), $β_i$는 $i$번째 독립 변수에 대한 회귀 계수입니다.

     

    로지스틱 회귀 모델의 학습 방법

    로지스틱 회귀 모델을 학습하는 방법 중 하나는 최대 우도 추정법(Maximum Likelihood Estimation, MLE)입니다. MLE는 주어진 데이터를 가장 잘 설명하는, 즉 주어진 데이터가 관찰될 확률(우도)을 최대화하는 모델의 파라미터를 찾는 방법입니다.

    로지스틱 회귀 모델에서 MLE를 사용하려면, 먼저 각 데이터 포인트에 대해 모델이 그 데이터 포인트를 올바르게 예측할 확률을 계산합니다. 그런 다음, 이 확률을 모든 데이터 포인트에 대해 곱하여 전체 데이터의 우도를 계산합니다.

    MLE는 이 우도를 최대화하는 모델의 파라미터(여기서는 회귀 계수 $β_i$)를 찾는 것입니다. 이를 위해 경사 상승법(Gradient Ascent) 또는 기타 최적화 알고리즘을 사용할 수 있습니다.

     

    로지스틱 회귀 모델의 평가

    로지스틱 회귀 모델을 평가하는 방법은 다양하지만, 가장 일반적인 방법은 혼동 행렬(Confusion Matrix)와 이를 기반으로 한 성능 지표들을 사용하는 것입니다.

    혼동 행렬은 모델의 예측 결과가 실제 값과 어떻게 비교되는지를 보여주는 행렬입니다. 이 행렬은 True Positive(TP), False Positive(FP), True Negative(TN), False Negative(FN)의 4가지 요소로 구성됩니다.

     

    혼동 행렬을 바탕으로, 다음과 같은 성능 지표들을 계산할 수 있습니다:

    - 정확도(Accuracy): 전체 예측 중 올바르게 예측한 비율을 나타냅니다.

    - 정밀도(Precision): 양성으로 예측한 경우 중 실제로 양성인 비율을 나타냅니다.

    - 재현율(Recall): 실제 양성 중 양성으로 예측한 비율을 나타냅니다.

    - F1-스코어(F1-score): 정밀도와 재현율의 조화 평균으로, 두 지표가 균형을 이룰 때 값이 높아집니다.

     

    또한, ROC 커브와 그 아래의 면적을 나타내는 AUC도 중요한 평가 지표입니다. ROC 커브는 다양한 분류 임계값에서의 모델의 성능을 그래프로 표현하며, AUC는 이 그래프의 아래 영역을 측정합니다. AUC가 1에 가까울수록 모델의 성능이 좋다고 평가합니다.

    ROC curve
    출처: https://en.wikipedia.org/wiki/Receiver_operating_characteristic

     

    로지스틱 회귀의 문제점 및 해결 방안

    • 과적합(Overfitting)은 모델이 학습 데이터에 너무 잘 맞아 새로운 데이터에 일반화하는 데 실패하는 현상입니다. 이를 방지하기 위해 교차 검증(Cross-validation), 정규화(Regularization) 등의 방법을 사용합니다.
    • 클래스 불균형(Class Imbalance)은 한 클래스의 데이터가 다른 클래스에 비해 상대적으로 적을 때 발생합니다. 이를 해결하기 위해 샘플링 방법을 적용하거나, 특정 클래스에 더 높은 가중치를 부여하는 등의 방법이 있습니다.
    • 이상치(Outlier)는 일반적인 범위에서 벗어난 데이터를 말합니다. 이상치는 모델의 성능에 부정적인 영향을 미치므로, 이를 감지하고 처리하는 과정이 필요합니다.
    • 다중공선성(Multicollinearity)은 독립 변수 간에 강한 상관관계가 존재할 때 발생합니다. 이 문제는 변수 선택, PCA, 릿지 회귀 등의 방법으로 해결할 수 있습니다.
    •  

    로지스틱 회귀의 확장

    로지스틱 회귀는 또한 확장될 수 있습니다. 다중 로지스틱 회귀(Multinomial Logistic Regression)는 종속 변수가 두 개 이상의 범주를 가질 때 사용됩니다.

    또한, 릿지(Ridge), 라쏘(Lasso), 엘라스틱넷(ElasticNet) 등의 정규화 방법은 로지스틱 회귀에도 적용할 수 있습니다. 이들 방법은 모델의 과적합을 방지하고 일반화 성능을 향상시키는 데 도움이 됩니다.

     

    실제 데이터를 이용한 로지스틱 회귀 모델 생성

    로지스틱 회귀를 이해하는 데 가장 효과적인 방법 중 하나는 실제 데이터를 사용해 모델을 만들어 보는 것입니다. 이 과정은 데이터 준비, 데이터 전처리, 모델 학습 및 예측, 결과 평가의 단계를 포함합니다.

     

    데이터 준비 단계에서는 사용할 데이터를 수집하고, 적절한 형식으로 변환하는 작업을 수행합니다.

    데이터 전처리 단계에서는 데이터의 품질을 향상시키기 위해 결측치 처리, 이상치 제거, 변수 변환 등의 작업을 수행합니다.

    모델 학습 및 예측 단계에서는 데이터를 학습 세트와 테스트 세트로 분할하고, 로지스틱 회귀 모델을 학습한 후, 테스트 세트에 대해 예측을 수행합니다.

    마지막으로 결과 평가 단계에서는 혼동 행렬, 정밀도, 재현율, F1-스코어, ROC 커브, AUC 등의 지표를 사용하여 모델의 성능을 평가합니다. 이를 통해 모델이 문제를 얼마나 잘 해결하는지, 어떤 부분에서 개선이 필요한지를 판단할 수 있습니다.