Data miner

#(Binary)Logistic regression

carayoon 2019. 6. 24. 16:30
728x90

공대 수업에서 반복적으로 들었던 Logistic regression! 특히 이 로지스틱 그래프 모양이 완만하다는 이유로 다양한 분야에서 적용하여 쓰였다. 

 

그래프 모양에서도 확인했을 때, 가장 눈에 들어오는 특징은 그래프의 선이 완만하다는 것이다(직선이 아닌!). 여기서 0과 1사이의 값으로 y값이 나타나지는데, 이러한 특성 때문에 x값이 주어졌을 때, y값에 대한 확률값을 예측한다고 해석한다. (나는 이 부분이 이해가 되지 않아서 몇 번을 읽었다)

우리가 지금 다루고 있는 binary logistic의 경우, 우리가 예측하고자 하는 y값이 특정 값이 아니라 질적인 변수를 다룰 때 활용된다. 즉 x들의 변수를 넣었을 때 '0' (실패) / '1' (성공)의 두 가지 범주로 나누는 것을 결정하는 문제를 다룬다고 하자. 이 때, 클래스 '1'의 관점(성공)의 관점에서 어느 정도의 확률로 '1'에 속할 것인가 우리의 logistic regression이 예측하게 된다. 

이 때 위의 z값에는 x들의 선형결합으로 이뤄진 식이 들어가게 되며, 즉, 아래와 같은 beta계수들로 이뤄진 x값들의 선형 결합이 위의 로지스틱 함수의 확률변수값으로 들어가게 되는 것이다. 

x들로 예측한 '1'에 대한 확률값p(x)는 다음과 같이 나타낼 수 있다. 

이는 식의 변형에 의해서 Odds ratio로 나타낼 수 있고, Odds ratios에서 특정 x1가 한 단위 증가한다함은, Exp(b1)만큼 odds ratios가 증가한다는 것을 의미한다. 이를 log를 씌워서, 로짓이라고 불리는 log odds(logit)로 표현하면, 두 번째 식처럼 표시되며, 이는 x1가 한 단위 증가하면, b1만큼 로짓에 영향을 미친다는 것을 의미한다. 

 

위의 식으로 인해서, Logistic regression은 y=1임을 결정하는 확률의 임계점이 0.5라고 하면, 다음과 같이 표현될 수 있다.

 이를 학습하기 위해서는, likelihood가 사용되며, 예측하고자 하는 확률값을 최대화시키기 위해서 추정하고자 하는 beta들을 학습하게 된다.