오답노트

[ML] 로지스틱 회귀(Logistic Regression) 본문

Python/ML

[ML] 로지스틱 회귀(Logistic Regression)

권멋져 2022. 8. 23. 20:51

Logistic Regression

시그모이드 함수라고도 불려진다.

회귀는 수치형 데이터를 예측하는 사용하지만, 로지스틱 회귀는 범주형 데이터를 예측하는데 사용된다.

 

선형회귀는 데이터를 가장 잘 표현하는 직선을 찾는 것이다. 하지만 0,1 과 같은 값만 존재한다면 선형회귀로는 데이터를 예측할 수 없다. 하지만 0 또는 1로 수렴하는 함수를 만들면 이러한 문제를 해결할 수 있다.

 

(출처 : https://odsc.medium.com/logistic-regression-with-python-ede39f8573c7)

 

승산 (Odds Ratio)

승산은 사건이 일어날 가능성 대 사건이 일아나지 않을 가능성의 비다.

예를 들어 일어날 확률이 80% 라면 승산은 0.8(일어날 확률) / 0.2(일어나지 않을 확률) = 4 이다

 

일어날 확률을 계속 줄이면 어떻게 될까?

일어나지 않을 확률을 계속 늘리면 어떻게 될까?

 

1 / 999999 ...  = 0 

 

0에 근사한 값을 가지게 된다.

 

즉 승산은 0 ~ 무한대 의 범위를 갖게된다.

로그 승산 (Log-odds)

승산에 로그를 취하면 어떻게 될까?

 

로그 함수를 먼저 살펴보자 

 

로그 함수는 0으로 수렴할 수록 무한대가 되는 성질을 가지고 있다.

승산에 로그를 취한다면, 로그 승산은 -무한대 ~ 무한대 의 범위를 가지게 된다.

 

선형회귀와 같이 -무한대 ~ 무한대 범위를 가지게 된다.

우리는 지금 승산과 로그 승산을 통해

0 ~ 1 에서 -무한대 ~ 무한대 범위를 가지도록 만들었다.

그렇다면 반대로

-무한대 ~ 무한대 에서 0 ~ 1 범위를 가지도록 만들 수 있다는 의미다.

 

수학식

로지스틱 회귀의 수학식을 표현하면 위와 같다.

f(x)는 선형 판별식이다. 즉 선형회귀에서 수식이 로지스틱 회귀에 영향을 준다는 의미이다.

 

예를 들어  f(x) = w0 + w1 * x1 - w2 * x2 라고 할때

변수 x1 이 증가하면 예측 값은 1에 가까워 진다.

변수 x2 가 증가하면 예측 값은 0에 가까워 진다.

 

로지스틱 회귀는 이렇게 선형회귀의 계수들로 어떻게 영향이 끼치는지 해석할 수 있다.