Linear Discriminant Analysis(LDA, 선형 판별 분석)
LDA
선형 판별 분석(LDA)은 Supervised Machine Learning에서 Multi-Class Classification 문제를 해결하기 위해 사용되는 접근 방식이다. LDA는 여러 특성을 가진 다수의 Class를 분리하기 위해 Dimensionality Reduction(차원 축소)을 사용한다.
LDA는 정규 판별 분석(Normal Discriminant Analysis, NDA) 또는 판별 함수 분석(Discriminant Function Analysis, DFA)라고도 한다. 두 개 이상의 Class를 가장 잘 구분하거나 특징짓는 변수들의 Linear Combination of Features(선형 조합)을 찾는 방법이다. 이렇게 도출된 조합은 선형 분류기로 직접 사용되거나, 본격적인 분류 전에 Dimentionality Reduction를 수행하는 용도로 쓰인다.
LDA는 PCA와 유사하지만, LDA는 Category 사이의 Maximizing the Separability에 집중한다. 이는 다음 두 가지 조건을 동시에 만족하는 축을 찾는다는 뜻이다.
- Maximize the Distance between Means($S_B$)
- Minimize the Variation within Each Category($S_W$)
관련된 내용은 아래의 Scatter Matrix 챕터에서 이어서 언급된다.
LDA는 두 개 이상의 차원을 가진 데이터를 하나의 차원으로 Projection하여 데이터를 보다 쉽게 분류할 수 있도록 하는데, 이를 Dimentionality Reduction이라고한다. 이 덕분에 LDA는 Binary Classification으로 제한되는 로지스틱 회귀와 다르게 Multi-Class Classification 문제에도 사용할 수 있다. 따라서 LDA는 Decision Trees, Random Forest, Support Vector Machine과 같은 다른 학습 분류 알고리즘을 향상하기 위해 적용되는 경우가 많다.
Key Assumptions of LDA
LDA가 효과적으로 동작하려면 아래의 가정들이 필요하다
- Gaussian Distribution: 각 Class의 Data들이 정규분포를 따라야 한다.
- Equal Covariance Matrices: 모든 Class가 동일한 공분산 구조를 가져야한다.
- Linear Separability: 모든 Data가 직선 혹은 평면으로 분리 가능해야 한다.
Scatter Matrix
LDA에서 Scatter는 분산과 유사한 개념으로 데이터가 얼마나 퍼져 있는지를 나타내는 척도이다. Scatter를 이용해 앞서 언급한 두 가지 조건을 만족하는 축을 찾는다.
이를 위해 다음과 같은 $J(w)$를 최대화하여 두 조건의 비율을 최적화한다.
$$J(w) = \frac{w^T S_B w}{w^T S_W w} \approx \frac{(\text{Class 간 Scatter})}{(\text{Class 내 Scatter})}$$
- Between Class Scatter Matrix $S_B$: 각 Class Means 사이의 변동을 나타낸다. LDA는 이 Scatter를 최대화하여 각 Class 그룹들이 서로 멀어지게 밀어낸다.
계산 방법은 다음과 같다.
- Global Mean(Dataset 전체의 Mean)을 계산한다.
- 각 Class $i$마다 해당 Class의 Mean $(\mu_i)$과 Global Mean $(\mu)$의 차이를 구한다.
- Outer Products를 Summation 한다. $n_i$는 Class $i$에 속한 Data의 개수이다.
$$S_B = \sum_{i} n_i (\mu_i - \mu)(\mu_i - \mu)^T$$
$n_i$를 곱하는 이유
Data가 많은 Class의 영향을 더 크게 반영하기 위해 해당 Class의 Sample 개수를 가중치로하여 합산해준다.
- Within Class Scatter Matrix $S_W$: 각 Class의 Data Point들이 얼마나 떨어져 있는지를 나타낸다. LDA는 이 Scatter를 최소화하여 같은 Class 내의 Data Point들이 서로 가까이 있도록 한다.
계산 방법은 다음과 같다.
- 각 Class $i$의 Mean $(\mu_i)$을 계산한다.
- 해당 Class $i$에 속한 Data와 $(\mu_i)$의 차이의 Outer Products를 Summation 한다.
$$S_I = \sum_{x_j \in \text{Class}_i} (x_j - \mu_i)(x_j - \mu_i)^T$$
- 모든 Class에 대한 Scatter Matrics를 더한다.
LDA는 Data를 분류하기 가장 좋은 저차원 공간으로 투영하기 위해 이 $J(w)$를 최대화하는 축을 찾는다.
LDA가 성능이 낮아지는 경우
- 공분산 구조가 Class마다 다를 때
LDA의 가장 중요한 가정은 모든 Class가 동일한 공분산 행렬을 가진다는 것으로, 공분산 구조가 Class마다 다를 때는 결정 경계가 직선이 아닌 곡선 형태가 되어야 한다.
- 독립 변수들이 정규 분포를 따르지 않을 때
Data가 한쪽으로 심하게 치우쳐 있거나, Outlier가 많아 정규성이 깨지면 LDA가 계산하는 Mean과 Scatter 값이 왜곡된다.
- 다중공선성이 존재할 때
Multicollinearity는 입력 변수들 사이에 강한 상관관계가 있을 때 발생한다. 다중공선성이 존재하게 되면 모델의 Coefficient가 불안정해져 예측의 신뢰도가 떨어지고 성능이 저하된다.
- Class간 평균이 너무 가깝거나 겹칠 때
LDA의 목표는 Separability를 최대화하는 것이다. Class간 Scatter가 너무 작으면 아무리 축을 회전시켜도 Class를 분리할 수 있는 충분한 공간을 확보할 수 없다.
- 비선형 분류가 필요한 복잡한 데이터 구조
LDA는 변수들의 선형조합을 찾는 기법으로, Data가 Concentric Circles 혹은 XOR 패턴처럼 복잡하게 얽혀 있다면 직선 형태의 결정 경계로는 이를 나누는 것이 불가능하다.
References
[1] IBM: linear-discriminant-analysis
[2] WIKIPEDIA: Linear discriminant analysis
[4] THE DICISION LAB: linear-discriminant-analysis
Others
- Multi-Class vs Multi-Lable
- Latent Dirichlet Allocation(LDA, 잠재 디리클레 할당)
- Dimensionality Reduction
- Naive-Bayes
'Computer Science > Data Analysis' 카테고리의 다른 글
| Information Extraction(IE, 정보 추출) (0) | 2025.12.21 |
|---|