본문 바로가기
ML/Classification

[ML][Classification]Linear Discriminant Analysis(LDA, 선형판별분석), Quadratic Discriminant Analysis(QDA)

by 어떻게든 되겠지~ 2024. 6. 19.

Linear Discriminant Analaysis(LDA, 선형판별분석)

LDA는 주로 데이터 분포를 학습하여 새로운 데이터의 클래스를 예측하는 것과 데이터의 차원을 축소하는 두 가지 목적을 위해 사용됩니다

핵심 아이디어는 각 클래스 간의 분산을 최대화하면서, 클래스 내의 분산을 최소화하는 방향으로 데이터를 변환하는 것입니다

 

LDA의 기본가정

1. Density Function이 Gaussian Distribution을 따른다

$${\large f_k(x) = \frac{1}{\sqrt{2\pi} \sigma_k} e^{-\frac{1}{2} (\frac{x - \mu_k}{\sigma_k})^2}}$$

2.클래스의 분산은 동일하다

$${\large \sigma_k = \sigma} \; for\;all\;k$$

 

이 때, 베이즈 정리에 따라 데이터 $x$가 주어졌을 때, 이 $x$가 클래스 $k$일 확률은 아래와 같다

$${\large p_k(x) = \frac{{\pi_k \frac{1}{\sqrt{2\pi} \sigma} e^{-\frac{1}{2}(\frac{x - \mu_k}{\sigma})^2}}} {{\sum \limits_{l=1}^{K} \pi_l \frac{1}{\sqrt{2\pi} \sigma} e^{-\frac{1}{2} (\frac{x - \mu_l}{\sigma})^2}} } ,\quad \pi_k = P(X=x | Y=k) }$$


그럼 이제 분류를 위한 판별함수(Discriminant function)을 정의해야합니다

 

판별함수(Discriminant function)

판별함수($\delta_k(x)$)는 아래의 과정을 거쳐 도출되게 됩니다

 

$$\delta_k(x) = x \cdot \frac{\mu_k}{\sigma^2} - \frac{{\mu_k}^2}{2 \sigma^2} + \log(\pi_k) $$

이 때, $\hat{\pi}_k,\; \hat{\mu}_k,\; \hat{\sigma}^2$은 데이터 표본을 통해 추정하여 사용합니다

  1. $\hat{\pi}_k = \frac{n_k}{n}$
  2. $\hat{\mu}_k = \frac{1}{n_k} \sum_{i:y_i=k} x_i$
  3. $\hat{\sigma}^2 = \frac{1}{n-K} \sum \limits_{k=1}^{K} \sum_{i:y_i=k} (x_i - \hat{\mu}_k)^2$ 

따라서 판별함수($\hat{\delta}_k(x)$)는 다음과 같이 정리됩니다

$$\hat{\delta}_k(x) = x \cdot \frac{\hat{\mu}_k}{\hat{\sigma}^2} - \frac{{\hat{\mu}_k}^2}{2 \hat{\sigma}^2} + \log(\hat{\pi}_k) $$

 

그럼 이제 판별함수가 가장 큰 값을 가지는 클래스 k를 찾을 수 있습니다

$$\arg\underset{1\le k \le K}{\max} x \cdot \frac{\hat{\mu}_k}{\hat{\sigma}^2} - \frac{{\hat{\mu}_k}^2}{2 \hat{\sigma}^2} + \log(\hat{\pi}_k)  $$


Feature가 여러개인 LDA

 

LDA의 기본가정의 수정

1. Density Function이 Multivariate Gaussian Distribution을 따른다

$${\large f_k(x) = \frac{1}{\sqrt{2\pi}^{\frac{p}{2}} |\Sigma_k|^{\frac{1}{2}}} e^{-\frac{1}{2} (x - \mu_k)^T \Sigma_k^{-1}(x-\mu_k)}}$$

2.  클래스의 공분산은 동일하다

$${\large \Sigma_k = \Sigma} \; for\;all\;k$$

 

판별함수는 아래와 같습니다

$$
\begin{aligned}
\delta_k(x) &= x^T \Sigma^{-1} \mu_k - \frac{1}{2} {\mu_k}^T \Sigma^{-1} \mu_k + \log(\pi_k)\\
&= c_{k0} + c_{k1} x_1 + c_{k2} x_2 + \cdots + c_{kp}x_p
\end{aligned}
$$

 

여기서 상수항 $c_{k0} = - \frac{1}{2} {\mu_k}^T \Sigma^{-1} \mu_k + \log(\pi_k) $이고 나머지 항은 $  x^T \Sigma^{-1} \mu_k$를 전개한 것입니다

 


Quadratic Discriminant Analysis(QDA)

비선형 결정 경계를 위해서는 QDA를 사용해야 합니다

LDA의 두번째 가정(분산이 동일)을 없애고, 각 class는 각자의 Covariance Matrix를 갖는다는 가정을 합니다

 

$${\large f_k(x) = \frac{1}{\sqrt{2\pi}^{\frac{p}{2}} |\Sigma_k|^{\frac{1}{2}}} e^{-\frac{1}{2} (x - \mu_k)^T \Sigma_K^{-1} (x-\mu_k)}}$$

 

판별함수는 아래와 같습니다

$$
\begin{aligned}
\delta_k(x) &= -\frac{1}{2} (x-\mu_k)^T \Sigma^{-1} (x-\mu_k) - \frac{1}{2}\log|\Sigma_k| + \log(\pi_k)\\
&= -\frac{1}{2} x^T \Sigma_k^{-1} x + x^T \Sigma_k^{-1} \mu_k - \frac{1}{2} \mu_k^T \Sigma_k^{-1} \mu_k - \frac{1}{2}\log|\Sigma_k| + \log(\pi_k)
\end{aligned}
$$

반응형