MetaCode(Machine Learning) 2-5 Linear Discriminant Analysis

cjun·2022년 7월 26일
0

데이터 분포를 학습해 결정경계(Decision boundary)를 만들어 데이터를 분류(classification)하는 모델

Bayes' Classifier(1)

베이즈 분류기(bayes' classifier)

  • 사후확률 P(WX)=P(XW)P(W)P(X)P(XW)P(W)P(W|X) = \frac{P(X|W)P(W)}{P(X)}\propto P(X|W)P(W) 우도확률 * 사전확률

  • P(Y=kX=x)=P(X=xY=k)P(Y=k)P(X=x)P(Y=k|X=x) = \frac{P(X=x|Y=k)P(Y=k)}{P(X=x)}
    =P(X=xY=k)P(Y=k)i=1KP(X=xY=i)P(Y=i)= \frac{P(X=x|Y=k)P(Y=k)}{\sum^K_{i=1}P(X=x|Y=i)P(Y=i)} =P(X=xY=k)P(Y=k)i=1KP(X=x,Y=i)= \frac{P(X=x|Y=k)P(Y=k)}{\sum^K_{i=1}P(X=x,Y=i)}

  • 사후 확률값을 가장 크게 만들어주는 클래스로 분류하는 것

  • argmax1kKP(Y=kX=x)argmax_{1\leq k\leq K}P(Y=k|X=x)

  • 사전 확률 πk\pi_k : 데이터가 k번째 클래스에서 뽑혔을 확률

  • Density funciton: fk(x)=P(X=xY=k)f_k(x) = P(X=x|Y=k)

  • 우도 확률 P(X|Y): 각 샘플이 i.i.d할 때, PDF(probability density function)의 곱과 동일
    P(Y=kX=x)=P(X=xY=k)P(Y=k)i=1KP(X=x,Y=i)P(Y=k|X=x)= \frac{P(X=x|Y=k)P(Y=k)}{\sum^K_{i=1}P(X=x,Y=i)}=πkfk(x)i=1Kπlfl(x)= \frac{\pi_kf_k(x)}{\sum^K_{i=1}\pi_lf_l(x)}

선형 판별 분석(linear discriminant analysis)

  • 다음의 두 가지 가정을 사용함
  1. Density function이 Normal 혹은 Gaussian density를 따른다
    fk(x)=12πσke12(xμkσk)2f_k(x) = \frac{1}{\sqrt{2\pi\sigma_k}}e^{\frac{1}{2}(\frac{x-\mu_k}{\sigma_k})^2} --> μ\mu : 평균, σ\sigma : 표준편차
  2. σk=σ\sigma_k = \sigma for all kk -->모든 표준편차가 같다.
    pk(x)=P(Y=kX=x)=πk12πσke12(xμkσk)2i=1Kπl12πσke12(xμkσk)2p_k(x) = P(Y=k|X=x)=\frac{\pi_k\frac{1}{\sqrt{2\pi\sigma_k}}e^{\frac{1}{2}(\frac{x-\mu_k}{\sigma_k})^2}}{\sum^K_{i=1}\pi_l\frac{1}{\sqrt{2\pi\sigma_k}}e^{\frac{1}{2}(\frac{x-\mu_k}{\sigma_k})^2}} --> X=x일때 Y=k클래스일 확률

판별 함수(discriminant function)

  • 데이터 X=x를 분류하기 위해 판별 함수를 정의해야 함

  • 판별 함수는 pk(x)p_k(x)에 대한 값을 뱉는 함수

  • argmax1kKPk(x)argmax_{1\leq k \leq K}P_k(x) = argmax1kKπkexp(12σ2(x22μkx+μk2)argmax_{1\leq k \leq K}\pi_kexp(-\frac{1}{2\sigma^2}(x^2-2\mu_kx+\mu_k^2)
    = argmax1kKexp(12σ2(x22μkx+μk2+log(πk))argmax_{1\leq k \leq K}exp(-\frac{1}{2\sigma^2}(x^2-2\mu_kx+\mu_k^2+log(\pi_k))
    = argmax1kKxμkσ2μk22σ2+log(πk)argmax_{1\leq k \leq K}x\cdot\frac{\mu_k}{\sigma^2}-\frac{\mu_k^2}{2\sigma^2}+log(\pi_k)

  • 두 번째 가정에 따라 quadratic 항을 삭제할 수 있어 선형 판별 함수를 갖게 됨

  • 판별 함수 δk(x)=xμkσ2μk22σ2+log(πk)\delta_k(x) = x\cdot\frac{\mu_k}{\sigma^2}-\frac{\mu_k^2}{2\sigma^2}+log(\pi_k)

  • 데이터를 통한 추정값 사용 --> 표본을 뽑아서 사용

    1. π^k=nkn\hat \pi_k = \frac{n_k}{n} --> K클래스를 가진 데이터 / 전체 데이터
    1. μ^k=1nki:yi=kxi\hat \mu_k=\frac{1}{n_k}\sum_{i:y_i=k}x_i --> 클래스 k를 가지는 데이터들의 평균
    1. σ^2=1nKk=1Ki:yi=k(xiμ^k)2\hat \sigma^2 = \frac{1}{n-K}\sum^K_{k=1}\sum_{i:y_i=k}(x_i-\hat\mu_k)^2
      (cf. 통계적 추정을 할 땐 표본 자료 중 모집단에 대한 정보를 주는 독립적인 자료를 사용)
      δ^k(x)=xμ^kσ^2μ^k22σ^2+log(π^k)\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)
  • 판별함수



--> 데이터가 선형이나 비선형이냐에 따라서 QDA ,LDA의 성능이 다르기 때문에 데이터에 따른 알맞은 모델을 사용하는 것이 중요
--> 따라서 모든 모델의 개념을 알고 상황에 따라서 골라서 쓰는 능력이 중요하다.

profile
Sometimes You gotta run before you can walk.

0개의 댓글