Hello Computer Vision

로지스틱 회귀(Logistics Regression)와 선형 회귀(Linear Regression) 본문

mathematics

로지스틱 회귀(Logistics Regression)와 선형 회귀(Linear Regression)

지웅쓰 2022. 11. 1. 11:38

최대한 시간을 활용해가면서 논문리딩을 하는 과정에서 Logistic Regression이란 말이 나왔다.

'이 말이 로지스틱 회귀인건 알겠는데.. 그래서 뭐지?' 라는 생각이 들었고 흔한 용어인만큼

당연히 알아야한다고 생각했다. 기존에 알고 있는 선형회귀와 비교해가면서 찾아봤다.

 

1. 선형회귀(Linear Regression)

키와 몸무게는 얼마나 연관되어 있을까? 키가 크면 몸무게도 클까?

이런 궁금증이 생길 수 있다. 그렇다면 일단 가지고 있는 키와 몸무게들을 좌표평면위에 나타낼 수 있고

이렇게 대략적인 선을 그을 수 있다. 보통 Y축에 있는 것이 종속변수(알고 싶은 값)

X축에 있는 값이 독립변수(활용할 변수)이다. 

이러한 선은 $ Y = \beta_{0} + \beta_{1} X_{i} $ 식으로 나타내어 지는데 최대한 오차가 없이 만드는 것이 목적이다(여기서 오차는 MSE, MAE등을 나타내는데 내가 오늘 알고 싶은 로지스틱 회귀와의 비교이므로 오차에 대한 이야기는 생략하겠습니다)

결국 선형회귀를 사용한다는 것은 한 변수와 다른 변수간의 얼마나 선형적인 관계가 있는지 알아보기 위한 기법이라고 할 수 있다.

 

2. 로지스틱 회귀(Logistics Regression)

조금 전에 설명한 선형 회귀에서 찾고자 하는 종속변수(Y)는 연속형이었다.(몸무게 : 40, 42.1, 42.11, 42.111...)

그러나 로지스틱 회귀의 종속변수는 0 or 1. 즉 연속형이 아닌 범주형이다.(Categorical)

0,1로 표현되는 어떠한 종속변수 y에 대해서 x값을 이용해 선형회귀를 이용해 그려본다면 왼쪽과 같은 이미지를 얻을 수 있다. 그러나 우리는 input값에 대해서 더 정확하게 예측할 수 있는 수식을 원하기 때문에 y값이 범주형일 경우 로지스틱 회귀식을 사용하는 것이다.  

2024.03.09 수정. Linear 함수로 범주형 값에 대해 target을 하게 되면 문제가 여러가지 생기는데, 우선 제시한 식과 타겟값의 대한 범위 차이이다. 왼쪽 식을 잘보면 알겠지만 직선이 Y 축에서 더 내려가는 것을 알 수 있고 [-무한대, 무한대] 의 범위를 갖게된다. 이러한 범위의 차이는 변수 간의 상관관계를 잘 설명하지 못한다고 볼 수 있다. 그래서 이를 해결하기 위한 것이 아래에 설명하지만 odd라는 개념을 도입하는 것이다. 그러나 odd의 그래프를 살펴보면 symmetric하지 않은데 이를 log를 취해 symmetric하게 만들어주는 것이다. 이러한 것을 logit이라고 한다. 그래서 로지스틱 회귀분석이라는 말을 붙인 것이다. 예전에 이 글을 쓸 때에는 로지스틱 회귀를 위해 odd개념도 설명하고 그랬는데 간단하게 'linear함수로는 범주형 target 값들을 잘 예측할 수 없으니 로지스틱 함수를 사용해 예측한다' 고 알고 있어도 충분할 거 같다. 

 

 

그렇다면 오른쪽의 그래프의 수식은 어떻게 될까?

$F(x) = \frac{1}{1+e^{-\beta_{0}+\beta_{1}(x)}}$ 이러한 식을 가진 그래프이다.

혹시 딥러닝을 공부하신분이라면 시그모이드를 들어보셨을텐데요, 로지스틱함수를 다른말로 시그모이드 함수

라고 부른다고 합니다. 인풋값은 어떤 값이든 받을 수 있으며 출력 결과는 0에서 1사이의 값을 내뱉습니다.

 

기존 회귀식을 살펴보면 $ Y = \beta_{0} + \beta_{1} X_{i} $ 식인데 여기서  Y값이 범주형(0,1)인 것이다.

$P(Y_{i} = 1) = \pi_{i}$, $P(Y_{i} = 0) = 1 - \pi_{i}$ 라고 한다면

$E(Y_{i}) = 1 * \pi_{i} + 0 * (1 - \pi) = \pi_{i}$
(여기서 $\pi$ 값은 X값이 주어졌을 때 Y가 1의 값을 가질 확률)

이를 다른 식으로 표현해보자면 $E(Y) = \pi(X = x) = P(Y = 1 | X = x) = 1- P(Y = 0| X = x)$

그렇다면 결국 $ E(Y) = \pi(X = x) = \frac{1}{1+e^{-\beta_{0}+\beta_{1}(x)}} $

이 식의 뜻을 다시 한번 보자면 관측치 x가 범주 1에 속할 확률(독립변수 x가 1개 있을 때)

 

그런데 이 식의 경우 $\beta_{1}$ 의 역할이 직관적이지 못한데 그 이유는 선형식에서는 x가 1증가할 때의

얼마나 증가하는지에 대한 척도였다면 여기서는 비선형적으로 결합되어 있기 때문이다.

따라서 이 부분을 한번 알기 위해 Odds를 알아본다.

 

먼저 Odds 라는 용어를 살펴보자면 사전적 정의로는 가능성, 비를 나타내는데 여기서는 '비'를 사용한다.

Odds가 나타내는 의미는 '실패에 비해 성공할 확률의 비' 를 의미하는데

수식으로 나타내면

$$ odds = \frac{P(A)}{P(A^c)} = \frac{p}{1-p}$$ 로 나타낸다

예를 들어 게임에서 이길 확률이 1/5이고 질 확률이 4/5라면 Odds 값은 1/4이고 이는 4번 질 때마다

1번 이긴다 라고 해석할 수 있다. 

 

만약 $P(A)$ 가 1에 가까울수록 odds는 치솟고, 0에 가까울 수록 0에 가까워질텐데요

$P(A)$를 x축, $odds$를y축에 둔 그래프를 살펴보면 다음과 같습니다.

 

이제 Odds의 x,y 범위를 알았다면 위에있는 식을 꺼내와본다면

$$ Odds = \frac{\pi( X = x)}{1-\pi(X = x}$$ 로 위에서의 Odds 를 $P(x)$에서 표기만 바꾼 것이다.

 

여기서 양변에 log를 취해준다면 $$ log(Odds) = log(\frac{\pi( X = x)}{1-\pi(X = x})$$

이 식은 결국 아래와 같은 식이 되고(수식으로 쓰려고 했는데 잘 안되서 이미지로 대체합니다...)

 

이러한 식을 정리해본다면  $$ = \beta_{0} + \beta_{1}x$$ 

이러한 결과를 갖게 되는데 이는 선형회귀식의 우변과 같은 값임을 쉽게 알 수 있다.

 

Odds 를 알아보기 시작한 이유가 기존 로지스틱회귀함수의 $\beta_{1}$ 값이 직관적이지 않아서 였는데

Odds를 취해주고 그 위에 log를 취한다면 조금 더 직관적으로 알 수 있음을 확인하였는데

$\beta_{1}$ 는 x가 한단위 증가할 때마다 log(odds)의 증가량임을 알 수 있다.
이러한 변환을 Logit Transformation(로짓변환)이라고 한다.

 

 

지금까지 로지스틱 회귀에 대해서 한번 알아보았는데요

생각보다 내용이 더 많았고 찾아보면서 시그모이드, 소프트맥스와 관련있는 것까지도 확인하였습니다.

이번에는 로지스틱 회귀함수의 식을 유도하는 과정보다는 결과 위주로 글을 썼는데요, 현재는 제가 감당이 되지

않아 일단은 가볍게 썼습니다. 쓰다보니 로짓변환까지 쓰게 되었는데요, 이 부분은 나중에 궁금한 점이 관련되어

나온다면 추가로 보충해서 포스팅해보겠습니다.

 

틀린점 있다면 언제든 지적해주시면 감사하겠습니다.

 

자료는 이 2개의 자료를 참고하여서 작성하였습니다.

https://ratsgo.github.io/machine%20learning/2017/04/02/logistic/

 

로지스틱 회귀 · ratsgo's blog

이번 포스팅에선 범주형 변수를 예측하는 모델인 로지스틱 회귀(Logistic Regression)에 대해 살펴보려고 합니다. 이번 글은 고려대 강필성 교수님과 역시 같은 대학의 김성범, 정순영 교수님 강의를

ratsgo.github.io

https://www.youtube.com/watch?v=l_8XEj2_9rk