Computer Science/AI(ML, DL, RL, etc)

Linear Discriminant Analysis

카세우스 2026. 7. 27. 11:40

딱히 LDA와는 별 상관이 없는 차트다.

LDA는 Regulation이 없는 모델에서 특성 추출의 기법으로 사용 가능하다. PCA와 목표는 비슷한데, 대걍 클래스를 최적으로 구분할 수 있는 특성 부분 공간을 찾고자 하는 것이다. 참고로 PCA는 비지도 학습, LDA는 지도 학습이 된다.

 

대충 LDA 수행에 필요한 주요 단계는 아래와 같다.

  1. d차원의 데이터 셋을 표준화 전처리 한다.
  2. 각 클래스에 대해 d차원 마다 평균 벡터를 계산한다.
  3. 클래스간의 산포행렬과 클래스 내부의 산포행렬을 구성한다.
  4. (클래스간 산포행렬 inversed) * 클래스내 산포행렬의 eigenvalue와 eigenvector를 계산한다.
  5. 고윳값을 내림차순으로 정렬해서 순서를 매긴다.
  6. 가장 큰 k개의 고유 벡터를 선택해서 d times k 차원의 변환행렬을 구성한다.
  7. 변환행렬을 사용하여 샘플을 새로운 특성 공간으로 투영한다.

클래스간 산포행렬

 

참고로 목적 함수는 아래와 같으며, 클래스 내부는 min으로 -> 클래스간 산포 행렬은 max로 해주는 놈을 찾으면 된다.

 

w는 투영벡터다.

 

최대값 찾으려 미분한 것