본문 바로가기

Theory/Statistics

Classification - Logistic Regression (1)

반응형

회귀 분석에서는 종속 변수가 연속적인 값을 가질 때 여러 독립 변수의 선형결합으로 종속 변수의 값을 예측했습니다. 하지만 종속 변수가 범주형일때, 예를 들어 남성/여성이나 나라 등 연속되지 않은 범주의 형태를 가질때에는 분류 (classification) 의 형태로 예측을 수행해야 합니다. 이번 포스트에서는 분류 분석에서 가장 기본적인 Logistic Regression에 대해 살펴보도록 하겠습니다.

Logistic Regression은 이름에 "회귀"가 붙어있는 것처럼 선형 회귀를 분류 분석으로 연장한 것으로 두 개의 범주로 나누는 binary classification 부터 세 개 이상의 범주로 분류하는 multi-class classification 모두에 대해 적용할 수 있는 가장 기본적인 분류 분석 방법입니다. 

Binary logistic regression

Binary logistic regression은 독립 변수를 이용하여 두 개의 범주를 가진 종속 변수 (0/1, alive/dead, win/loss)를 예측하는 문제로 선형 회귀로부터 시작합니다. 선형 회귀를 위해서는 어떤 연속적인 값을 가지는 변수를 예측하여야 하므로 두 개의 범주를 가진 변수에 그대로 적용할 수는 없습니다. 따라서 이진 형태의 변수를 연속적인 형태에 어떠한 변수를 먼저 예측한 뒤에 추측하여야 하는데 여기서 나오는 개념이 로짓 (logit) 입니다.

Odds 라는 말이 있습니다. Odds는 어떠한 사건이 일어나지 않은 경우에 대한 사건이 일어날 비율로 성공/실패의 경우에서는 Odds = 성공율/실패율 = 성공율/(1-성공율) 로 정의합니다. 로짓은 odds 에 자연 로그를 취한 것으로 0/1 클래스에서 1이 일어날 확률을 $p$라 했을 때 다음과 같이 정의됩니다.

$logit = ln \frac{p}{1-p}$

즉, logistic regression은 선형 회귀로부터 logit을 추정하고 logit으로부터 $p$를 계산하는 형태의 모델입니다. $x_1, x_2$ 의 예측 변수로 종속 변수 $Y$를 예측한다고 했을 때,

$logit = ln \frac{p}{1-p} = \beta_0 + \beta_1 x_1 + \beta_2 x_2$

$p = \frac{exp^{\beta_0+\beta_1 x_1 + \beta_2 x_2}}{exp^{\beta_0+\beta_1 x_1 + \beta_2 x_2}+1}=\frac{1}{1+exp^{-(\beta_0+\beta_1 x_1 +\beta_2 x_2)}}$

$Y=1$이 일어날 확률 $p$를 예측할 수 있습니다. 특히, logit으로부터 $p$를 유도할 때 나오는 $\frac{1}{1+exp^{-x}}$ 함수는 시그모이드 (sigmoid) 함수로 Figure 1과 같이 0에서 1사이의 값을 가지며 logit이 클수록 1, 작을 수록 0에 매우 가까워지는 것을 볼 수 있습니다.

Figure 1

정리하면 logistic regression은 linear regression을 통해 로짓을 추정하고 추정한 로짓을 바탕으로 확률 $p$를 계산하는 모델입니다. 따라서 linear regression (선형 회귀)의 연장선으로 볼 수 있으며, 선형 회귀가 가우시안 분포를 가정하는 것과 달리 logistic regression은 두 개의 범주를 예측하는 베르누이 분포를 가정한다고 볼 수 있습니다.

Multinomial logistic regression

One-Vs-All

우리가 예측해야할 범주형 변수의 클래스가 3개 이상인 경우에는 어떻게 할까요? 먼저 앞서 다룬 이진 분류기를 그대로 사용한다고 했을 때 하나의 클래스를 1, 나머지 클래스를 0으로 두는 One-Vs-All (OVA) 방법이 있습니다. 예를 들어 red/blue/green 의 3개의 클래스를 예측한다고 했을 때 1) red vs blue/green, 2) blue vs red/green, 3) green vs red/blue 를 구분하는 3개의 이진 분류기를 만들어 확률이 가장 높게 나온 범주를 선택한다는 것이죠.

이를 $K$개의 클래스로 확장하면 각 클래스 $i$마다 이진 분류기를 학습하여 $\frac{1}{1+exp(-\beta_i^T \mathbb{x})}$ 를 추출하고 $K$개의 이진 분류 문제는 서로 독립적이게 됩니다. 따라서 클래서 $i$에 대한 계수 $\beta_i$는 각 클래스마다 독립적으로 얻어지게 되며, $K$개의 이진 분류 문제에서 나온 각 범주에 대한 확률은 해당 범주 vs 나머지 범주에 대한 확률이니 각 이진 분류의 확률을 합해서 1이 되지 않습니다. 

다음 포스트의 실습에서 살펴보겠지만 OVA를 통해 나온 각 클래스의 확률은 이진 분류기로부터 나온 각 범주의 확률을 모두 더해 각각에 대해 나누어 1로 만드는 normalize 과정을 거치게 됩니다.

Multinomial

OVA 방법은 이진 분류기를 바로 적용할 수 있지만 각 클래스마다 이진 분류기를 학습하여야되고 각 클래스의 로짓을 독립적으로 다룬다는 점에서 한계가 있습니다. 또한 각 범주가 나올 확률의 합은 1이 되어야 하지만 독립적인 이진 분류를 수행하기 때문에 각 이진 분류의 확률의 합이 1이 되지 않습니다.

그렇다면 2개 클래스 대상으로 정의하던 로짓을 $K$개의 클래스 대상으로 일반화할 수는 없을까요? $K$개의 클래스가 있을 때 $K$ 클래스를 기준으로 두고 나머지 $K-1$개의 클래스에 대해 log-odds (로짓) 을 정의할 수 있습니다. ($\beta, X$는 벡터입니다)

$ln\frac{Pr(Y=1)}{Pr(Y=K)}=\beta_1^T X$

$...$, $ln\frac{Pr(Y=K-1)}{Pr(Y=K)}=\beta_{K-1}^T X$

$K$ 범주에 대한 확률의 합은 1이어야 하므로 $Pr(Y=K)=1-\sum_{k=1}^{K-1}Pr(Y=k)$ 임을 이용하면,

$Pr(Y=K)=\frac{1}{1+\sum_k^{K-1} e^{\beta_k^T X}}$

와 같이 되고 이를 이용해 

$Pr(Y=1)=\frac{e^{\beta_1^T X}}{1+\sum_k^{K-1} e^{\beta_k^T X}}$

$...$, $Pr(Y=K-1)=\frac{e^{\beta_{K-1}^T X}}{1+\sum_k^{K-1} e^{\beta_k^T X}}$

임을 알 수 있습니다. $K=2$라면 이진 분류의 sigmoid 함수로 변하는 것을 알 수 있습니다. 이를 일반화해서 특정 클래스를 기준으로 삼지 않고 다음과 같이 softmax 함수 형태로 사용합니다.

$Pr(Y=k)=\frac{e^{\beta_k^T X}}{e^{\beta_1^T X}+...+e^{\beta_K^T X}}$

OVA 방법에 비해 softmax 함수의 장점은 무엇일까요? 각 클래스의 확률을 합치면 분모와 같아지게 되어 1이 되게 되며 모든 클래스에 대한 로짓을 한 번에 같이 다룰 수 있는 장점이 있습니다. 자연스럽게 각 클래스의 확률 중 가장 높은 확률을 가진 클래스가 정답 클래스가 되는 것이죠.

 


Classification - Logistic Regression (2)

반응형