• 카테고리

    질문 & 답변
  • 세부 분야

    딥러닝 · 머신러닝

  • 해결 여부

    해결됨

Odds(p)를 통해 선형 회귀식에 확률을 적용하는 것

21.01.02 16:58 작성 조회수 282

0

강의에서 이 부분이 이해가 잘 안가서 질문 드립니다.

Odds(p)가 뭐길래 선형 회귀식에 확률을 적용할 수 있는지, 왜 Log(Odds(p))가 w1x + w0인지 모르겠습니다.

범위가 (0,무한)이던 Odds(p)에 로그를 취하면 (-무한,무한)이 되는 건 알겠는데... 음.. 그냥 저 과정이 다 뭐하는 과정인지 모르겠습니다.

그냥 p(x) 식만 놓고 보면 회귀 결과값의 범위를 (0,1)로 바꾸기 위해 시그모이드 함수를 썼구나라고 느껴지는데...

Log(Odds)의 의미가 무엇인가요??

답변 1

답변을 작성해보세요.

5

안녕합십니다.

로지스틱 회귀의 주요 수학적 배경은 독립 변수들(feature들)이 Log odds 와 선형 관계를 이룬다는 것입니다. 일반적으로 log odds를 logit변환이라고 하며 이 logit 변환을 선형회귀에 적용한 것이 바로 로지스틱 회귀 입니다.


이 로지스틱 회귀는 선형 회귀를 적용하여 Classification(분류 확률)을 구하는 로직입니다. 이때 분류 기준 확률은 0과 1입니다.

우리가 구하고자 하는 이런 분류확률을 p라고 하고 이를 선형회귀식으로 풀어내자면 이 p는 독립변수들하고 상관관계가 있으며 p= w0+w1x1+...과 같은 식으로 표현될 수도 있습니다.


그런데 여기서 문제가 있습니다. 우리가 원하는 종속변수 p값은 0과 1사이의 값이어야 합니다. 하지만 선형회귀의 종속값은 -무한대 ~ +무한대 값입니다. 때문에 p=w0 + w1x1+.... 와 같은 선형 식으로 풀어낼 수가 없습니다. 그리고 독립변수가 어떤값이 되더라도 분류확률이 0과 1사이의 값이 될려면 특별한 선형함수가 필요합니다.(예를 들어 sigmoid 함수같은)

그래서 Log odds라는 개념을 만들어서 이를 sigmoid로 유도하는 방식을 취합니다.


먼저 odds는 어떤 이벤트가 일어날 확률이 실패할 확률보다 몇배인가를 나타내는 지표 입니다.
확률 p와 그렇지 않은 확률 1-p를 이용하여 p/(1-p)로 표현합니다. 그런 다음 로그 변환을 수행한 값(log (p/(1-p))), 즉 Log odds를 종속변수로 설정하고 회귀식을 적용합니다.
log (p/(1-p)) = w0 + w1x1 + ....  이 회귀식은 여전히 선형회귀이며 종속변수 Log odds는 -무한대 ~ +무한대로 선형 회귀의 조건을 만족합니다.

하지만 우리가 최종적으로 원하는 것은 Log odds가 아니라 p입니다. 그래서 p를 다시 변환하면 최종적으로는 p = 1/(1+e(w0+w1x1지수식)으로 sigmoid 함수식으로 생성되는 0 ~ 1 사이의 p값을 얻게 됩니다.

어떻게 보면 0~ 1사이의 값을 반환하는 sigmoid 함수식을 유도하기 위해서 odds라는 개념과 그리고 Log 변환을 적용한 거라고 보시면 더 쉬울 수도 있습니다.
그리고 이 Log odds 변환, 즉 Logit 변환이 주요 기능이므로 로지스틱 회귀라는 이름이 기원 되었습니다.

감사합니다.