본문 바로가기
ISLR

Ch04 분류분석(3) - LDA & QDA

by 지식광부키우기 2019. 9. 25.

 

Discriminant Analysis

 

각 classes에서의 X의 분포를 개별적으로 모델링하한 후 Bayes 정리를 사용하여 $Pr(Y \mid X)$를 얻습니다. 

 

각 class에 대해 normal (Gaussian) 분포를 사용하고 이는 linear or quadratic discriminant analysis로 이어집니다.

 

 

로지스틱 회귀가 아닌 다른 대안을 고려하는 이유

 

class들이 잘 분리되어 있을 때 로지스틱 회귀로 모수를 추정하는 것은 매우 불안정(unstable)합니다.

 

n이 작고, 예측 변수 X의 분포가 대략적으로 정규성을 띈다면 LDA는 로지스틱 회귀보다 더 안정성을 가집니다,

 

LDA는 response classes가 두개 이상일 때 더 자주 사용됩니다.

 

 

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

 

로지스틱 회귀와 같은 목적을 수행합니다. 데이터를 범주형 변수로 분류합니다.

 

수익이 날까? 안 날까?

상품을 살까? 안 살까?

고객이 만족할까? 아닐까?

정치 정당 투표 의도 등등

 

 

▶ 왜 선형이고? 왜 판별일까?(Why Linear? Why Discriminant?)

 

LDA는 선형 방정식의 결정을 포함하는데(선형 회귀처럼요) 사례가 속하는 그룹을 예측합니다.

 

$D = v_{1}X_{1} + v_{2} X_{2} +... + v_{i} X_{i} + a$

 

D; discriminant function

v: discriminant coefficient or weight for the variable

X: variable

a: constant

 

 

▶ LDA의 목적

 

v는 다른 카테고리들의 평균 사이의 거리를 최대화 시키는 방식으로 결정됩니다.

 

좋은 예측변수는 큰 v를 갖는 경향이 있습니다(weight).

 

Different categories를 판별하는 것이 목적입니다,

 

음식 레시피를 생각합니다. 재료의 비율을 바꾸면(weights) 완성된 요리의 맛도 달라질 수 있습니다.

 

다른 type의 음식을 만들길 희망합니다.

 

 

▶ LDA의 가정

 

관측치는 무작위 표본입니다(random sample).

 

독립변수는 정규분포의 형태를 띠고 있습니다.

 

 

 

▶ 베이즈 분류법(Bayes' Classifier)

 

베이즈 분류법는 최고의 표준법이지만 불행하게도 달성할 수 없습니다.

 

지금까지 배운 두 가지 방법을 다시 상기합니다.

 

KNN classifier

Logistic Regression

 

 

▶ 베이즈 분류 추정하기

 

로지스틱 회귀분석에서 k번째 class에서 Y의 확률을 구했습니다.

 

$p(X) = Pr(Y = k \mid X = x) = \frac {e^{\beta_{0}+\beta_{1} X}}{1 + e^{\beta_{0}+\beta_{1} X}}$

 

하지만 베이즈 이론은

 

$p(X) = Pr(Y = k \mid X = x) = \frac {\pi_{k} f_{k}(x)}{\sum^{K}_{l = 1}\pi_{l} f_{l}(x)}$

 

$\pi_{k}$ : Probability of coming from class k (prior probability)

 

$f_{k}(x)$ : Density function for X given that X is an observation from class k 

 

 

▶ $\pi_{k}$와 $f_{k}(x)$ 추정하기

 

$\pi_{k}$와 $f_{k}(x)$를 $p(X)$ 계산하기 위해 추정합니다.

 

$f_{k}(x)$의 가장 흔한 모델은 Normal Density입니다.

 

$f_{k}(x) = \frac {1}{\sqrt {2\pi}\sigma_{k}}exp(-\frac {1}{2\sigma_{k}^{2}}(x - \mu_{k})^{2}$

 

위 식을 사용하여 $p(X)$를 계산하기 위한 세 개의 추정이 필요합니다.

 

$\mu_{k}$    $\sigma_{k}^{2}$    $\pi_{k}$

 

 

▶ 추정을 위해 Training Data set 사용하기

 

평균 $\mu_{k}$는 k번째 class의 모든 training 관측치 평균으로 추정할 수 있습니다.

 

분산 $\sigma_{k}^{2}$는 모든 k classes의 분산의 가중 평균으로 추정할 수 있습니다.

 

$\pi_{k}$는 k번 째 class에 속하는 training 관측치의 비율로 추정할 수 있습니다.

 

$\hat {\mu_{k}} = \frac {1}{n_{k}}\sum_{i:y_{i}=k} x_{i}$ 

$\hat {\sigma^{2}} = \frac {1}{n - K}\sum^{K}_{k=1}\sum_{i: y_{i}=k}(x_{i} - \hat {\mu_{k}})^{2}$ 

$\hat {\pi_{k}} = n_{k}/n$

 

 

▶ 예측 변수가 하나일 때 (p = 1) 간단한 예제

 

하나의 예측 변수만 있다고 가정합니다.    (p = 1)

 

두 개의 정규 밀도 함수 $f_{1}(x)$과 $f_{2}(x)$가 있고 두 개의 구별된 classes를 나타냅니다.

 

두 밀도 함수가 겹치기 때문에 알려지지 않은 클래스를 가진 관측치가 속하는 클래스에 대해 약간의 불확실성이 있습니다.

 

dashed vertical line은 베이즈 결정 경계선입니다.

 

그림1

 

 

 

▶ LDA에 적용하기

 

LDA는 각 클래스가 동일한 분산을 가진 정규 분포를 따른다고 가정합니다,

 

평균과 분산은 추정된 값을 이용합니다.

 

$p_{k}$를 계산하기 위해 베이즈 이론은 사용됩니다. 관찰된 결과는 모든 k의 확률 사이에서 최대 확률로 class에 할당됩니다.

 

두 개의 클래스로부터 각각 20개의 관찰 값이 있습니다.

 

dashed vertical line은 베이즈의 결정 경계입니다.

 

solid vertical line은 LDA 결정 경계입니다.

 

Bayes' error rate: 10.6%

LDA error rate: 11.1%

 

LDA가 성능이 꽤 우수합니다!

 

그림2

 

▶ p > 1인 경우 예시

 

X가 다차원(p > 1)인 경우, 다변량 정규 밀도를 사용하여 밀도 함수 $f(x)$를 모델링한 경우를 제외하고 정확히 동일한 접근 방식을 사용합니다.

 

그림3

 

두 개의 예측 변수를 가집니다.  (p = 2)

 

세 개의 class가 있습니다.

 

각 클래스로부터 20개의 관측값이 생성되었습니다.

 

실선은 베이즈의 경계고 점선은 LDA의 경계입니다.

 

그림4

 

▶Default Data에 LDA 적용하기

 

LDA는 10000개의 예측치 중에서 252 + 23개를 잘못 분류합니다. 

 

(2.75% misclassification error rate)

 

그러나 LDA defaulters의 252/333 = 75.5%를 잘못 예측합니다.

 

default를 예측하는데 임계값으로 0.5를 사용하면 안 될 것 같나요?

 

그림5

 

▶ 임계값으로 0.2를 설정

 

전체적으로 잘 못 분류한 숫자는 235+138 = 373입니다.

 

(3.73% misclassification error rate)

 

그러나 defaulters의 138/333 = 41.4%로 잘못 예측합니다.

 

다른 임계값과 함께 error rate를 조사할 수 있습니다.

 

그림6

 

 

▶ Default Threshold Values vs Error Rates

 

검은색 실선: 전체 error rate

파란색 대시선: Fraction of defaulters missed

오렌지 점선: non defaulters incorrectly classified

 

그림7

 

▶ 이차 판별분석(Quadratic Discriminant Analysis, QDA)

 

LDA는 모든 클래스가 동일 분산/공분산을 가진다고 가정합니다.

 

그러나 LDA는 사실이 가정과 많이 다를 때 성능이 저하됩니다.

 

QDA는 각 클래스에 대해 별도의 분산/공분산을 추정한다는 점을 제외하고 LDA와 동일하게 작동합니다.

 

 

▶ LDA or QDA 어떤 게 더 좋나요?

 

QDA는 classes 사이에서 다른 분산 값을 따르기 때문에 경계 역시 quadratic이다.

 

LDA or QDA 어떤 것이 더 좋은 접근 일까?

 

QDA는 클래스 간의 분산이 매우 다르며 분산을 정확하게 추정할 수 있는 충분한 관측치가 있을 때 가장 잘 작동합니다.

 

LDA는 클래스 간의 분산이 유사하거나 분산을 정확하게 추정할 수 있는 데이터가 충분하지 않을 때 가장 잘 작동합니다.

 

 

▶ LDA와 QDA 비교

 

Black dotted: LDA boundary 

Purple dashed: Bayes’ boundary

Green solid: QDA boundary

Left: variances of the classes are equal (LDA is better fit)

Right: variances of the classes are not equal (QDA is better fit) 

그림8

 

 

▶ 분류 방법들 비교하기

 

KNN

Logistic Regression

LDA

QDA

 

 

▶ Logistic Regression vs. LDA

 

유사성

 

로지스틱 회귀 분석 및 LDA 모두 선형 경계를 생성합니다.

 

차이점

 

LDA는 관측치가 각 class의 공통 분산을 갖는 정규 분포에서 도출된다고 가정하는 반면,

 

로지스틱 회귀 분석은 이러한 가정을 가지고 있지 않습니다.

 

정규성 유지의 가정이 유지된다면 LDA는 로지스틱 회귀보다 더 효과적입니다.

 

그렇지 않으면 로지스틱 회귀가 LDA보다 성능이 더 뛰어납니다. 

 

 

▶ KNN vs. (LDA and Logistic Regression) 

 

KNN은 완전히 다른 접근법을 취합니다.

 

KNN은 완전히 비모수적입니다. 결정 경계의 모양에 대해 어떠한 가정도 있지 않습니다.

 

KNN의 장점

 

결정 경계가 매우 non-linear 할 때 KNN이 더 좋은 성능을 기대할 수 있습니다.

 

KNN의 단점

 

어떤 예측 변수가 중요한지 말해주지 않습니다(coefficients 표가 없습니다).

 

 

▶ QDA vs. (LDA, Logistic Regression, and KNN) 

 

QDA는 비모수 KNN 방식과 선형 LDA와 로지스틱 회귀의 절충안입니다.

 

만약 true decision boundary가

 

Linear: LDA and Logistic outperforms

 

Moderately Non-linear: QDA outperforms

 

More complicated: KNN is superior 

 

'ISLR' 카테고리의 다른 글

Ch05 Resampling Methods - Leave-One-Out Cross Validation(LOOCV)  (0) 2019.09.27
Ch05 Resampling Methods - The Validation Set  (0) 2019.09.26
Ch04 분류분석(2)  (0) 2019.09.24
Ch04 분류분석(1)  (0) 2019.09.23
Chap3 회귀분석(3)  (0) 2019.09.20

댓글