로지스틱 회귀 (Logistic Regression)

강승구·2023년 1월 26일
0

로지스틱 회귀는 회귀를 사용하여 데이터가 어떤 범주에 속할 확률을 0에서 1 사이의 값으로 예측하고 그 확률에 따라 가능성이 더 높은 범주에 속하는 것으로 분류해주는 지도 학습 알고리즘이다.

로지스틱 회귀의 대표적인 예시로는 스팸 메일 분류기가 있다.
어떤 메일을 받았을 때 그것이 스팸일 확률이 0.5 이상이면 spam으로 분류하고, 확률이 0.5보다 작은 경우 ham으로 분류하는 것이다.
이렇게 데이터가 2개의 범주 중 하나에 속하도록 결정하는 것을 2진 분류(binary classification)라고 한다.

로지스틱 회귀 수행 과정

  1. 모든 coefficients와 intercept를 0 으로 초기화한다.
  2. 각각의 feature를 이에 상응하는 coefficient와 곱한 값과 intercept를 모두 더해 log-odds를 계산한다.
  3. 계산한 log-odds 값을 sigmoid 함수에 전달하여 0 과 1 사이의 확률값을 구한다.
  4. 계산한 확률값과 실제 label을 비교하여 Loss를 계산하고, gradient descent로 최적화된 coefficients와 intercept를 계산한다.
  5. 최적화된 파라미터를 구했다면 classification threshold 값을 조절하여 positive class와 negative class를 어떻게 나눌지를 설정한다.

Log-odds

Linear Regression에서는 각 feature를 이에 상응하는 coefficient와 곱한 값과 intercept를 모두 더해 결과를 예측한다. Logistic Regression에서도 비슷한 방식을 사용하지만 log-odds를 계산한다.

우선 Odds는 특정 사건이 일어나는 횟수가 특정 사건이 일어나지 않는 횟수보다 얼마나 더 많은지를 의미하는 변수로 다음과 같이 계산할 수 있다.

Odds=P(특정사건이발생하는경우)/P(특정사건이발생하지않는경우)=P(A)/1P(A)Odds=P(특정 사건이 발생하는 경우)/P(특정 사건이 발생하지 않는 경우)=P(A)/1−P(A)

만약 특정 학생이 시험에서 pass할 확률이 0.7이라면, pass하지 못 할 확률은 1 - 0.7 = 0.3 이고, 이 경우 odds를 다음과 같이 계산할 수 있다.

Odds=0.7/0.3=2.33Odds=0.7/0.3=2.33

Odd는 0과 양의 무한대의 값을 범위로 갖는다. log-odds는 odds에 log를 취한 것입니다. (이때 로그는 자연로그 lnln)

이로써 odds를 음의 무한대부터 양의 무한대까지의 범위를 갖는 log-odds를 계산할 수 있다.

Log odds=log(2.33)=0.847Log~odds=log(2.33)=0.847

Logistic Regression 모델에서, 우리는 아래와 같이 z 값으로 나타내지는 log-odds 값을 계산할 수 있습니다.

log(P(A)1−P(A))=z=b0+b1x1+b2x2+⋯+bnxnlog(\cfrac{P(A)}{1 - P(A)}) = z = b_0 + b_1x_1 + b_2x_2 + \cdots + b_nx_nlog(1−P(A)P(A))=z=b0+b1x1+b2x2+⋯+bnx**n

profile
강승구

0개의 댓글