본문 바로가기

ML & DM/Logistic Regression

Logistic Regression Part.1

많은 블로그들과 책들에서 로지스틱 회귀에 대해 잘 설명해 놓은것이 많다. 따라서 이 포스팅은 로지스틱 회귀방법에 대해 설명을 하겠지만 자세히 하진 않고 이 내용을 본인이 이해한 방식대로 써내려 갈것이다. 본인은 전문가는 아니기 때문에 내용이 틀릴수도 있다. Criticism은 언제나 환영이다.


Logistic Regression은 Logit function을 사용한 회귀분석이라는 말이다. 일단 처음으로 드는 생각은 우리가 아는 기존의 (단일)회귀식과 무엇이 다른가이다.



기존의 회귀식은 우리가 알다시피, 좌변과 우변에서 계산된 값이 모두 연속형인 수를 가정한다. 즉 좌변과 우변에서 계산된 값이 연속형이라는 것이다. 

그런데 로지스틱 회귀에서의 상황은 이렇다. 회귀식에서 우변은 연속형인 값이 나오지만 좌변은 이산형인 값들만 나오는것, 즉 우리가 가진 회귀식으로 0, 1 혹은 0, 1, 2, 3...을 예측하는 분류의 문제가 되는것이다. 우변값의 범위가  인 반면 좌변은 단순로지스틱 이라고 한다면 0,1 인 이산형이다. 따라서 우변의 계산값이 좌변의 계산값과 안맞아 등호가 성립할 수 없게되는 문제가 생긴다. 따라서 우리는 좌변의 y값을 어떠한 처리를 통해 범위를 맞춰주는 작업을 해줘야 하는데 이것이 Logit(Log + Odds)변환이다.

Logit변환이란 오즈에 로그를 씌운것을 말하는데, 우리는 일반회귀식으로 0 또는 1(이산형)을 바로 예측할 수는 없으므로, y값(1,0)의 확률(즉 0이 나올 확률 혹은 1이 나올 확률)을 이용해 오즈비로 변환하여, 로그를 취한다면 불가능했던 예측이 가능할 것이다. 그렇다면 구체적으로 좌변의 실제값(y)을 어떻게 변환해야 할까? 일단 처음으로 odds비를 생각해 냈다.



odds란 어떠한 일이 일어날 확률(1이 될 확률)을 일어나지 않을 확률(1-p)로 나눈것을 말한다. 이렇게 한다면 우리는 확률(p)이 1에 가까워질수록 오즈비는에 가까워지고 0에 가까워 질수록 0에 가까워지게 된다. 그러나 우변의 회귀식의 값이 음수가 나올수도 있기 때문에 우리는 좌변의 오즈비가 음수값도 나오게끔 한번 더 변환을 시켜줘야하는데 이를 log를 씌우면 가능해진다. 



이렇게 된다면 로그지수값(odd값)이 0에 가까워질수록 분모가 한없이 커지므로, log값은 점점 음수로 가게된다. 따라서 우리는 0~1사이의 값을 가지는 p(1이 될 확률)를 logit변환을 통해 사이의 값을 갖는 값으로 변환시켰다. 이제 우리는 일반 회귀식(우변)으로 logit값을 예측할수 있다. 그런데 사실 정작 우리가 알고싶은것은 p 즉 1이 될 확률이고 이 확률과 분석가가 가진 cutoff value(주로 0.5, CV로 최적값을 찾음)를 비교해 분류를 하고싶은 것이다. 그런데 우변의 회귀식을 계산해서 나온 값은 logit값이다. 따라서 우리는 식을 p에 대해서 다시 정리를 한다.

 

따라서 우리는 이제 바로 우변(일반회귀식)의 값을 받아(input) 0~ 1의 확률값(p)으로 반환(output)하는 이 함수 logistic function (sigmoid function 이라고도 함)을 통해 바로 확률을 구할 수 있다. 이제 이 확률과 cutoff 값을 비교하여 분류를 하면 분류프로세스가 끝나는 것이다.

이제 결과해석을 하자면 회귀식에서 x(독립변수) 1 단위가 늘어날때 만큼의 확률이 높아지는 것이다. 그러나 이를 실무에서는 단지 확률일뿐 그 이상의 의미를 갖지 않는다. 보통 실무에서 실험결과의 해석을 위해 우리는 다시 오즈비로 좌변을 변환하여 결과발표를 한다. 이렇게 굳이 오즈비를 사용하는 이유는 첫째 실험집단(분자)과 통제집단(분모)을 비교하기 쉬워서이고, 둘째 이를 통해 특정 요인의 노출에 따른 유의미한 효과의 유무를 판단한 수 있기 때문이다. 셋째 다양한 요인들의 강도(magnitude)를 비교할 수 있다. 이렇게 오즈비를 사용하면 그냥 확률을 사용할때보다 더 많은 정보를 얻을 수 있기 때문에 오즈비를 주로 실무에서 사용한다.




여기서 분포의 측면에서 기존의 회귀식과 다시 한번 비교를 해보자, 기존의 회귀식에서는 x에 따른 y의 분포가 정규분포를 한다고 가정을 한다. 그러나 로지스틱 회귀에서는 x(독립변수)값에 따른 로지스틱 (누적)함수값(0~1의 확률, 종속변수)의 분포가 이항분포를 따르게 된다는 가정을 한다. 사실 로지스틱 분포의 누적함수(CDF)가 우리가 위에서 쓴 로지스틱 함수이고 로짓함수(logit)의 역함수이다. 



여기서 결론적으로 나온 로지스틱 누적함수의 결과값이 확률(p)가 되는데 이 확률값을 1이 될 확률이라고 한다면, 이 확률을 가지고 종속변수에 대한 회귀값들의 확률분포는 이항분포(다수의 베르누이시행)를 따르게 된다.

여태까지의 이야기를 한 문장으로 정리하자면 로지스틱 회귀는 일반회귀식에서 나온 결과를 로지스틱 함수라는 상자를 통해서 하나의 확률값(0~1사이의 값)을 구한것이다. 


다음파트에서는 파라미터학습은 어떻게 하는지, MLE, Maximum entropy, 다항 로지스틱회귀에 대해 다루어 보겠다.

참고문헌


http://wolfpack.hnu.ac.kr/lecture/Regression/ch9_logistic.pdf

http://math.bme.hu/~nandori/Virtual_lab/stat/special/Logistic.pdf

https://ko.wikipedia.org/wiki/%EB%A1%9C%EC%A7%80%EC%8A%A4%ED%8B%B1_%ED%9A%8C%EA%B7%80

http://ishuca.tistory.com/entry/CS231n-Neural-Networks-Part-1-Setting-up-the-Architecture-%ED%95%9C%EA%B5%AD%EC%96%B4-%EB%B2%88%EC%97%AD

http://www.sigmapress.co.kr/shop/shop_image/g55612_1413878468.pdfhttp://wolfpack.hnu.ac.kr/lecture/Regression/ch1_introduction.pdf

http://www.mathteacher.pe.kr/algebra_dic/expectation.htm

http://www.ncbi.nlm.nih.gov/pmc/articles/PMC2938757/