-
로지스틱회귀(Logistic_Linear_Regression)Math for data science 2019. 11. 21. 17:58
Classifier
Logistic Regression(LR)은 대표적인 binary classification 알고리즘이다.
일단 회귀분석의 첫번째 목적은 일반회귀모델(Ordinary Linear Model : OLM)을 만드는 것이다. 일반회귀모델은 최소제곱법을 이용하여 가장 이상적인 직선을 만든다.
하지만! Logistic Regression(LR)은 그 회귀에다가 특정 x를 집어 넣었을 때 특정 y를 도출하는데 의미가 있다. 근데 그 결과값은 이항분포를 따르게 된다. 이항분포를 따른다는 것은 1이냐 0이냐에 관한 것. 즉 Classification이다. 예를 들어 사망 or 생존, 성공 or 실패 와 같이 두개로 나눠지는 것을 말한다.
그런데 만약 데이터의 분포가 이런식으로 구성돼 있다면 직선으로 해결이 가능한 것 일까?
왼쪽 그림에서 볼 수 있듯이 확실히 새로운 x가 주어졌을 때 y를 예측하는 것에 어려움을 겪을 것이다. 그래서 오른쪽의 그래프를 도출시킬 수 있는데, 이 것은 함수에 로그를 취하여 만든 그래프이다
$$1. \ \ \ln(y) = \alpha + \beta_1 x \ 2. \ \ y = e^{\alpha + \beta_1 x}$$
$$1. \ \ \overline{y} = \beta_1 \ 2. \ \ \overline{y} = e^{\beta_1}$$
1번 그래프에서 y의 변화량은 B_1이지만, 2번 그래프에서 y의 변화량은 e^{B_1}임을 알 수 있다. 위 모델을 일반화 선형 모델(Generalized Linear Model : GLM)이라 한다.
로지스틱 함수(Logistic Function)
이 모델을 조금 더 develop 시켜보자.
LR은 출력결과가 항상 0과 1이 나와야 하기 때문에 이런 식으로 표현 할 수 있다.
$$y = \frac{1}{1+e^{-x}}$$
그리고 승산(Odds)라는 개념을 살펴봐야 한다. 승산이란 임의의 A가 발생하지 않을 확률 대비 일어날 확률의 비율을 의미한다. 아래와 같은 식으로 표현 할 수 있다.
$$odds = \frac{P(A)}{P(A^c)} = \frac{P(A)}{1-P(A)}$$
위의 식을 그래프로 나타내면 아래와 같다.
이항 로지스틱 회귀
이제 이항 로지스틱 회귀 식을 도출 해보자. 일단 확률 값으로 표현하기 위해서 y값이 1이 될 확률을 아래와 같은 식으로 나타냈다.
$$P(Y=1 | X= \overrightarrow { x } ) = { \beta }_{ 0 } + { \beta }_{ 1 } { x }_{ 1 }+{ \beta }_{ 2 } { x }_{ 2 }+...+{ \beta }_{ p } { x }_{ p } \ = { \overrightarrow { \beta } }^{ T } \overrightarrow { x }$$
- 위 식을 보면 좌변은 0~1 의 범위를 갖고, 우변은 음의 무한대에서 양의 무한대를 갖는다. 범위를 똑같이 설정해줘야 한다. 그래서 아래와 같은 식을 만들 수 있다.
$$\frac { P(Y=1|X=\overrightarrow { x } ) }{ 1-P(Y=1|X=\overrightarrow { x } ) } ={ \overrightarrow { \beta } }^{ T }\overrightarrow { x }$$
- 이렇게 되면 좌변은 0에서 양의 무한대, 우변은 음의 무한대에서 양의 무한대의 범위를 갖는다. 다시 조정이 필요하다.
$$\log { (\frac { P(Y=1|X=\overrightarrow { x } ) }{ 1-P(Y=1|X=\overrightarrow { x } ) } ) } ={ \overrightarrow { \beta } }^{ T }\overrightarrow { x }$$
- 위와 같이 로그를 취해 주면 아래와 같은 그래프를 보이게 되고 좌변, 우변 모두 음의 무한대에서 양의 무한대의 범위를 갖게 된다.
그래서 마지막 식을 x가 주어졌을 때 범주 1이 될 확률을 정리하면 최종 식이 이렇게 도출된다.
$$\therefore P(Y=1|X=\overrightarrow { x } ) = \frac { 1 }{ 1+{ e }^{ -{ \overrightarrow { \beta } }^{ T } \overrightarrow { x } } }$$
그렇다면 이 1과 0 사이는 어떻게 결정하게 되는 것일까? P(Y=1 | X = x(벡터))를 p(x)라고 한다면, 아래와 같이 나타낼 수 있다.
$$p(x) > 1-p(x) \ \log{\frac{p(x)}{1-p(x)}} > 1 \ \therefore { \overrightarrow { \beta } }^{ T }\overrightarrow { x } >0$$
반대로 $$ \beta^T x < 0 $$이면 해당 데이터의 범주를 0으로 분류한다. 따라서 로지스틱모델의 결정경계(decision boundary)는 $$ \beta^T x = 0 $$인 하이퍼플레인(hyperpalne)이다. 입력벡터가 2차원인 경우 아래와 같이 나타낼 수 있다.
그럼 더 구체적으로 알아보자. 만약 $$ \beta = {\beta}_0 - {\beta}_1 $$ 처럼 beta 벡터를 차로 나타낼 수 있다고 하자. beta_0와 beta_1로 나타내기 위해서 분모와 분자에 $$ { e }^{ -{ \overrightarrow { \beta } _1}^{ T } \overrightarrow { x } } $$를 곱해주고 간단히 하면 아래와 같은 식이 성립된다.
$$y = \frac { exp(-{ \beta }_{ 1 }^{ T }x) }{ exp(-{ \beta }_{ 1 }^{ T }x)+exp(-{ \beta }_{ 0 }^{ T }x) } \ \ \ , 1 - y = \frac { exp(-{ \beta }_{ 0 }^{ T }x) }{ exp(-{ \beta }_{ 1 }^{ T }x)+exp(-{ \beta }_{ 0 }^{ T }x) }$$
위 식을 보면 분모가 같은 것을 알 수 있다. 그렇기 때문에 분자가 결정적인 역할을 하고 $$ {\beta}_0 $$ 값이 중요한 것이다. 아래 그림을 보면 쉽게 이해할 수 있다.
여기서 문제가 생기는데 두 클래스의 데이터가 같은 방향에 존재할 경우 아래와 같이 분류하기 어려워질 수 있다. ( $$ \beta = \theta $$, 단어 빈도 벡터의 값이 모두 양수인 경우 )
- bias term은 클래스를 잘 구분하도록 입력변수 x를 평행이동 시킨다.
$$\exp (\theta^T x) = \exp(\theta_0 + \theta_1 + ... + \theta_p x_p) \ \ \ = \exp(\theta_1(x_1-k_1) + \theta_2(x_2-k_2) + ... + \theta_p(x_p - k_p)$$
Neural network
클래스별로 데이터가 분산되어 있을 경우 밑에 그림처럼 linear inseperable한 경우가 발생한다.
이 경우에는 Sigmoid함수를 이용하여 feed-forward neural network를 사용한다. 그러면 linear inseperable한 공간을 seperable한 공간으로 바뀌게 된다.
Neural network를 통해 seperable한 공간으로 바꾼 뒤 boolean representation을 해줘서 classification을 해준다.
Regularization
- Regularization은 다른 포스팅을 통해서 다뤄 보도록 하겠다.
다항 로지스틱회귀와 소프트맥스
- 추후 공부 필요
참고자료
- 이기창. 로지스틱 회귀. [Online].Available at: https://ratsgo.github.io/machine learning/2017/04/02/logistic/ [Accessed 22 Nov. 2019]
- 박진우. [손실함수] Binary Cross Entropy. [Online].Available at: https://curt-park.github.io/2018-09-19/loss-cross-entropy/ [Accessed 25 Nov. 2019]
- 이영훈. 비정형데이터분석. [Graduate Class at Seoultech]