Logistic Regression(로지스틱 회귀)란?

머신러닝은 지도학습과 비지도학습으로 나눠지고, 지도학습은 분류와 회귀(예측)으로 나눠진다. 우리는 이 글에서 지도학습의 대표적인 알고리즘인 Logistic Regression을 알아보고자 한다.

위 사진에 시간에 따른 사망률의 그래프가 있다. 여러분은 이 그래프의 데이터들을 보고 선을 그어보라고 하면 어떻게 할 건가요??

아마 전 블로그 포스팅을 봤다면 Linear Regression(선형 회귀)를 사용할 것입니다.

Linear Regression(선형 회귀)

하지만 직선 그래프는 데이터들을 정확히 대표할 수 없습니다. 또한 사망률은 음수 일 수가 없습니다. 그리고 직선이기 때문에 시간이 음의 무한대와 양의 무한대로 갈수록, 사망률 또한 무한대와 -무한대로 갈 것입니다. 이렇게 회귀에서Linear Regression(선형 회귀)를 쓸 수 없을 때, Logistic Regression(로지스틱 회귀)라는 것을 사용하게 됩니다.

logistic Regression(로지스틱 회귀)

이렇게 y값이 음수를 나타내지 않고 확률인 0과 1사이일 때 Logistic Regression(로지스틱 회귀)을 사용해서 표현한다. 먼저 로지스틱 회귀의 개념을 잡아보자. 위 사진을 보면 곡선인 함수가 있다. 이 곡선을 '시그모이드 함수'라고 부르고, S자 커브 형태의 모양을 띄게 된다.

로지스틱 회귀를 쓰는 목적을 알아보자. 먼저 성형 회귀 분석은 결과가 연속형일 때 사용한다. 하지만 로지스틱 회귀는 결과가 범주형일 때 사용한다. ex) 학생이 문제를 맞을 것인지 틀릴 것인지, 내일 비가 올지 안 올지 이렇게 분류를 할 때 사용한다. 즉 새로운 데이터가 들어왔을 때, 기존 데이터의 그룹 중 어떤 그룹에 속하는지를 분류하기 위해 로지스틱 회귀를 쓴다.

또한 로지스틱 회귀는 데이터가 특정 범주에 속할 확률을 예측하기 위해 아래와 같은 단계를 거친다.


Logistic Regression 식

y = ax + b이라는 선형 회귀식이 있다. y를 확률 값 p로 바꾸면 P = ax + b가 된다. 하지만 현재까지도 x값의 범위가 -무한대 ~ +무한대 범위이다. 앞서 말했듯이 로지스틱 회귀는 0과 1사이의 확률 값만 얻기 원한다.

x값 범위 변환

이렇게 식을 변환하기 위해 2가지가 필요한데, 그것이 바로 odds와 log이다.

1) odds

odd는 쉽게 말해 실패 확률에 대한 성공 확률의 비율이다. 성공 확률을 p라고 한다면 실패 확률은 1-p가 될 것이다. 즉 odds는 아래 식과 같이 표현 할 수 있다.

odds의 식

p는 0에서 1사이의 값을 가지므로 p에다가 0을 대입해보면, 0/1로 0값을 가진다. 또한 p에 1을 대입해보면 1/0으로 +무한대 값을 가지게 된다. 그렇게 위 식은 0 ~ +무한대의 범위를 갖게 된다. 하지만 최솟값이 0이므로 -무한대를 만족하지 못한다.

(2) log

-무한대를 범위에 포함시키기 위해 log를 취하게 되는데, 그 중 자연로그를 취해보자. 로그를 지수로 바꾸고 자연상수 e라는 값을 2.78~~~무리수 값을 갖는다. 이 e를 몇제곱 했을 때 0이 될까? 분수의 분모가 무한히 커지면 0에 가까워 질 것이고 0이 나오는 x는 -무한대가 될 것이다. (지수함수의 그래프를 생각했을 때 x가 -무한대로 갈 때 0이 가까워지는 것을 생각해보면 이해하기 쉬울 것이다)

이렇게 우리는 -무한대 부터 +무한대까지 범위를 구했고 확률 p를 찾는 것이므로 위에 P = ax + b를 응용해보자.

이 식을 p에 관한 식으로 증명해보면(증명 생략) 아래와 같은 식이 나온다.

그리고 이 함수는 로지스틱 곡선이자 시그모이드 함수라고 불리고 로지스틱 회귀에서는 쓰이는 식이다.

위 식을 아래 그래프로 그려보면 이런 형태이다.

Logistic Regression(로지스틱 회귀)의 그래프 모양


손실 함수 -> Log Loss(로그 손실)

선형 회귀에서도 말했듯이 함수에서 확률을 제대로 예측하기 위해서는 오차를 고려해야 한다. 그리고 오차가 곧 손실(loss)이다. 그리고 이 각 데이터들의 손실값들을 계산한 다음 평균화해야 모델의 '적합성'을 평가할 수 있다.

Log Loss(로그 손실)

식을 하나하나 이해하려 하지말고, 이런 함수를 활용해 로지스틱 함수의 로그 손실을 구할 수 있다는 것만 알아두자. 그리고 로지스틱 회귀 모델의 목표는, 로지스틱 함수를 구성하는 계수(w=a)와 절편(b)에 대해 Log Loss(로그 손실)을 최소화하는 값을 찾는 것인것도 각인시키자.


정리

로지스틱 회귀(Logistic Regression)는 선형회귀(Linear Regrssion)와 마찬가지로 종속 변수와 독립 변수간의 관계를 구체적인 함수로 나타내 향후 예측 모델에 사용하는 것이다. 하지만 다른 점은 선형 회귀는 종속 변수가 연속형 변수 일 때 쓰고, 로지스틱 회귀는 종속 변숙 범주형 데이터일 때 사용한다. 그래서 결과가 특정 카테고리로 분류되기 때문에 Classification 기법이라고도 할 수 있다. 종속 변수가 두 개 일때는 binoaml, 여러 개 일 때는 multinomial 등으로 나뉘게 된다.

728x90
반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 라이프코리아트위터 공유하기
  • shared
  • 카카오스토리 공유하기