상세 컨텐츠

본문 제목

[2022-1 KUBIG 정규세션] Logistic Regression

카테고리 없음

by 최끝장1234 2022. 7. 16. 21:30

본문

오늘 포스팅은 KUBIG 정규세션 스터디의 일환으로 "Logistic Regression"에 대해 발표를 목적으로 작성하게 됐다. 스터디는 "Practical Statistics for Data Scientists" 라는 도서를 공부하고 한 주간 특정 부분을 맡아서 발표를 하는 식으로 진행된다. 따라서 지금 작성하는 포스팅의 모든 내용은 모두 이 책에 기반으로 작성되었음을 알린다.

 

우리가 머신러닝, 통계분야를 공부하면서 분류모델을 처음 접할때, 배우게 되는 첫번째 개념은 "Logistic Regression"이라고 할 수 있다. 이 "Logistic Regression"은 이름에는 Regression이 들어가지만 실제로는 분류를 위한 모델에 사용된다. 하지만 Logistic Classification이라고 하지않고, Regression이 들어가는 것은 그 원리를 이해하면 쉽게 알아챌 수 있다. 어떻게 보면 분류를 위해서 Regression을 진행한다는 점에서 핵심적인 원리는 여전히 Regression에 존재하기 때문이다.

이번 포스팅에서는 이러한 Logistic Regression을 이루고 있는 핵심적인 point들에 대해서 설명하고자 한다.

Odd and Logit

Logistic Regression은 이진분류(label이 0또는 1)인 task에 한정되어 사용되기 때문에, 포스팅에서도 task를 이진분류로 한정한다.

책 참조

우리가 회귀모델을 이용해서 분류문제를 해결하고자하면 위 표현된 식처럼 label이 1인 확률을 p라고 하고 이러한 p를 직접 회귀모델로써 predict하게 모델을 구축할 수 있다. 하지만 이러한 방식에는 문제점이 있다. 선형회귀모델과 같은 일반적인 회귀모델을 사용하면 출력이 실수 전체로 나오는데, 예측하고자하는 p는 0과 1사이에 있어야하기 때문이다. 

 

위와 같은 사실로부터 우리가 분류문제에 회귀모델을 적용하기 위해서는 회귀모델이 예측한 값의 범위를 실수전체에서 0~1사이로 만들어줄 수 있는 하나의 장치(?)가 필요하다. 이 장치가 결국 Logistic Regression의 핵심원리인 것이다.

위 장치는 다음과 같은 수학적인 스킬을 적용하면 쉽게 만들 수 있다.

 

책 참조

위와 같은 식을 이용하면 우리가 만든 회귀모델의 출력을 통과시켜 0~1사이의 실수 값으로 뽑아 낼 수 있다. 여기서 사용된 식을 Logistic response, inverse logit이라고 부른다. 

이제 위 식을 가지고 결국 회귀모델이 예측하는 것은 무엇을 나타내는 것인지 알아보자. 

일단 기본적으로 Odd라는 개념에 대해서 알아야 한다. Odd는 "ratio of sucess (1) to "not sucess (0)"로 정의한다. 식으로 표현하면 곧 p/(1-p)인 것이다. Odd는 p로 이루어져있는 식임과 동시에 가질 수 있는 값의 범위자체가 실수전체의 범위다. 여기서 눈치가 빠른 사람은 이 Odd가 위 식과 밀접한 관련이 있을 수 있다는 것을 알 것이다. p를 Odd에 대해서 정리하면 다음과 같이 표현된다.

책 참조

 

어! 위에서 살펴본 식과 거의 흡사한 형태를 띄고 있다. 이제 Odd를 위에서 본 식과 똑같이 만들어주기 위해서 Odd를 다음과 같이 표현하면된다.

 

책 참조

 

위 식을 그대로 대입하면 앞서 봤던 식과 동일하다는 것을 알 수 있다. 이제 거의 다왔다. 마지막으로 위 식의 양변에 로그를 취해주면, 우리가 찾고자한 회귀식이 곧 어떤 값을 예측한 것인지 알 수 있다. 

 

책 참조

 

결국 회귀식은 label이 1인 odd(=p/(1-p))의 log를 취한 값을 예측하는 것이다. 이처럼 하나의 label에 대한 예측확률인 p를 알면 log(odd)를 대입하여 회귀식이 예측한 실수를 알 수 있다. 여기서 log(odd)라는 p에 대한 함수logit이라고 한다. 

사실상 Logistic Regression의 핵심내용은 이게 다이다. 분류문제를 Logistic response, logit 등의 개념을 통해 회귀모델로써 풀어낼 수 있다는 것이다. 

참고로 Logistic Regression와 같은 방식은 GLM(Generalized linear model)로써 분류된다. GLM에 속한 다른 방식들도 Logistic Regression처럼 확률(p)를 예측하기 위해서 link function(위에서 Logistic response, Logit)을 활용한다.

Interpreting the Coefficients and Odd Ratios

 우리가 분류문제에 Logistic Regression을 적용하여, 적절한 회귀식을 찾았다고 하자. 그렇다면 이 회귀식의 계수들은 어떤 값을 의미하고 있는 것일까? 결론부터 말하면 Odd ratio를 의미한다.

책 참조

특별한게 아니라 앞서 설명한 대로 회귀식 자체가 예측하고 있는 값이 log(odd)값이기때문에 쉽게 도출될 수 있는 사실이다. X=1인 경우는 회귀식에 회귀계수에 대응하는 X값이 존재하는 경우라고 생각할 수 있고, X=0인 경우는 X값이 회귀식에서 제외된 경우라고 생각할 수 있다. 따라서 X에 대응하는 회귀계수는 이 두 경우에 대해서 각각 계산된 Odd값이 어떤 비율로 계산되는 것인지 알 수 있다.

Linear and Logistic Regression

 

지금까지 살펴본 Logistic Regression은 우리가 흔히 아는 Linear Regression과 비슷한 듯 하면서도 다른 개념을 보인다. 먼저 비슷한 점은 둘다 최종적으로 세우는 식 자체는 linear model인 것이다. 그렇기 때문에 Linear Regression에서 사용된 다양한 모델 찾는 방식들 (stepwise, spline)은 Logistic Regression에도 그대로 적용될 수 있다. 차이점은 크게 두가지로 설명될 수 있다. 첫번째는 model이 어떻게 fitting될 수 있는지? 두번째는 residual에 대한 특징이다. 

 

첫번째 경우에 대해서 먼저 설명을 하면, 흔히 Linear Regression은 least square을 통해 모델을 fitting하고 RMSE, R-square와 같은 방식으로 평가된다. 특히 데이터만 주어지면, 행렬의 곱으로 closed-form solution을 도출할 수 있다는 점도 큰 특징이다. 불행히도 Logistic Regression은 위와같은 closed-form solution이 존재하지 않는다. 점진적인 방법을 통해 내찾고자 하는 계수들을 Optimization해야 한다. 책에서는 MLE(Maximum Likelihood Estimation)을 사용하여, 회귀모델 추정한 estimated log odd가 관찰된 outcome을 잘 describe하는 solution을 찾는다고 한다. 또한 이러한 MLE을 통해 fitting을 진행하기 때문에 deviance라는 metric을 사용한다. 식은 다음과 같고, 값이 작을 수록 좋은 fitting을 말한다.

 

책 참조

 

다음으로 두번째 경우에 대해서 설명해보겠다. residual은 실제 Y값에서 prediction을 빼면서 계산된다. Logistic Regression에서 실제 Y값은 0과 1이 두 경우인데, 이 두 값을 logit을 통해 transform하면 값이 무한대가 나오게 된다. 반면, 모델의 prediction은 제한된 실수값이 나온다. 따라서 Residual 자체가 0이 결코 될 수 없다. 이러한 이유 때문에, Residual의 개념이 Logistic Regression에서는 Linear Regression 만큼 의미있는 통계량으로 해석하진 않는다.  

댓글 영역